use hrn to re-create pubsub groups
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Sat, 31 Jul 2010 10:56:03 +0000 (12:56 +0200)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Sat, 31 Jul 2010 10:56:03 +0000 (12:56 +0200)
omf/reset_xmpp_pubsub_nodes.py

index 1fe359c..81f50a4 100644 (file)
@@ -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