dont save sliver model here
[plstackapi.git] / planetstack / observer / steps / sync_sliver_ips.py
index 50ec6ad..e2212d1 100644 (file)
@@ -1,5 +1,6 @@
 import os
 import base64
+from django.db.models import F, Q
 from planetstack.config import Config
 from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
@@ -7,12 +8,14 @@ from core.models.sliver import Sliver
 class SyncSliverIps(OpenStackSyncStep):
     provides=[Sliver]
     requested_interval=0
+
     def fetch_pending(self):
         slivers = Sliver.objects.filter(ip=None)
         return slivers
 
     def sync_record(self, sliver):
-        driver = self.driver.client_driver(tenant=sliver.slice.name)  
+        driver = self.driver.client_driver(tenant=sliver.slice.name, 
+                                           deployment=sliver.node.deployment.name)  
         servers = driver.shell.nova.servers.findall(id=sliver.instance_id)
         if not servers:
             return
@@ -21,5 +24,6 @@ class SyncSliverIps(OpenStackSyncStep):
         if not ips:
             return
         sliver.ip = ips[0]['addr']
-        sliver.save()
-        logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))
+        if sliver.ip:
+            sliver.save()
+            logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))