Refactor to /opt/planetstack, final tweaks to make sure planetstack can run in non-openstack mode, adjustments to GUI for model focus changes
diff --git a/planetstack/openstack/sliveragent.py b/planetstack/openstack/sliveragent.py
new file mode 100644
index 0000000..b2f29cf
--- /dev/null
+++ b/planetstack/openstack/sliveragent.py
@@ -0,0 +1,39 @@
+import os
+import sys
+#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+import time
+from core.models.sliver import Sliver
+from openstack.manager import OpenStackManager
+
+class SliverAgent:
+
+    def run(self):
+        manager = OpenStackManager()
+        # exit if openstack is disable or unavailable
+        if not manager.enabled or not manager.has_openstack:
+            sys.exit()
+
+        while True :
+            # fill in null ip addresses 
+            slivers = Sliver.objects.filter(ip=None)
+            for sliver in slivers:
+                # update connection
+                manager.client.connect(username=manager.client.keystone.username,
+                               password=manager.client.keystone.password,
+                               tenant=sliver.slice.name)  
+                sliver.os_manager = manager
+                servers = manager.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()
+