From 5dc031b09f8cf21ddc88b245bcc2fb8935fac516 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Bar=C4=B1=C5=9F=20Metin?= <Talip-Baris.Metin@sophia.inria.fr>
Date: Sat, 31 Jul 2010 12:56:03 +0200
Subject: [PATCH] use hrn to re-create pubsub groups

---
 omf/reset_xmpp_pubsub_nodes.py | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/omf/reset_xmpp_pubsub_nodes.py b/omf/reset_xmpp_pubsub_nodes.py
index 1fe359c1..81f50a40 100644
--- a/omf/reset_xmpp_pubsub_nodes.py
+++ b/omf/reset_xmpp_pubsub_nodes.py
@@ -10,16 +10,24 @@ xmlrpc = xmlrpclib.ServerProxy("http://localhost:5053")
 xmppserver = config.PLC_OMF_XMPP_SERVER
 xmppuser = "@".join([config.PLC_OMF_XMPP_USER, xmppserver])
 xmpppass = config.PLC_OMF_XMPP_PASSWORD
-pubsub = PubSubClient(xmppuser, xmpppass, verbose=True)
+pubsub = PubSubClient(xmppuser, xmpppass, verbose=False)
 
 
 def delete_all_nodes(iq):
     global pubsub
-    print "called"
+    print "Deleting PubSub groups..."
     for i in iq.query.elements():
         node = i['node']
         reactor.callLater(1, pubsub.delete_node, node)
 
+def is_local_node(node_id, slice_name):
+    try:
+        return GetNodes({'node_id': node_id}, ['peer_id'])[0]['peer_id'] == None
+    except IndexError:
+        print "WARNING: can not find the node with node_id %s" % node_id
+        print "WARNING: node_id %s was referenced in slice %s" % (node_id, slice_name)
+        return False
+
 if __name__ == "__main__":
     pubsub.add_result_hook("discover", delete_all_nodes)
     reactor.callLater(1, pubsub.discover)
@@ -30,12 +38,14 @@ if __name__ == "__main__":
     reactor.connectTCP(pubsub.id.host, 5222, pubsub.factory)
     reactor.run()
 
+    print "Re-creating PubSub groups..."
     slices = GetSlices()
     for slice in slices:
         xmlrpc.createSlice(slice['name'])
         for node_id in slice['node_ids']:
-            node = GetNodes(node_id)[0]['hostname']
-            xmlrpc.addResource(slice['name'], node)
-            
-
-    
+            try:
+                hrn = GetNodeTags({'tagname':'hrn', 'node_id': node_id})[0]['value']
+                xmlrpc.addResource(slice['name'], hrn)
+            except IndexError:
+                if is_local_node(node_id, slice['name']):
+                    print "WARNING: missing hrn tag for node_id: %s" % node_id
-- 
2.47.0