initial checkin. Fills in null sliver ips
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 17 Apr 2013 14:45:12 +0000 (10:45 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 17 Apr 2013 14:48:38 +0000 (10:48 -0400)
plstackapi/openstack/sliveragent.py [new file with mode: 0644]

diff --git a/plstackapi/openstack/sliveragent.py b/plstackapi/openstack/sliveragent.py
new file mode 100644 (file)
index 0000000..322cdfd
--- /dev/null
@@ -0,0 +1,29 @@
+import os
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plstackapi.planetstack.settings")
+import time
+from plstackapi.core.models.sliver import Sliver
+from plstackapi.openstack.client import OpenStackClient    
+
+class SliverAgent:
+
+    def run(self):
+        client = OpenStackClient()
+        while True:
+            # fill in null ip addresses 
+            slivers = Sliver.objects.filter(ip=None)
+            for sliver in slivers:
+                servers = client.nova.servers.findall(id=sliver.instance_id)
+                if not servers:
+                    continue
+                server = servers[0]
+                ips = server.addresses.get(sliver.slice.name, [])
+                if not ips:
+                    continue
+                sliver.ip = ips[0]['addr']
+                sliver.save()
+            time.sleep(7)
+                
+                                        
+if __name__ == '__main__':
+    SliverAgent().run()
+