Merged plcorebase
[plstackapi.git] / planetstack / observer / steps / sync_network_slivers.py
index 3870924..09dc7ed 100644 (file)
@@ -1,12 +1,18 @@
 import os
 import base64
+from django.db.models import F, Q
 from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.network import *
 
 class SyncNetworkSlivers(OpenStackSyncStep):
-       requested_interval = 3600
-       provides=[NetworkSliver]
+    requested_interval = 3600
+    provides=[NetworkSliver]
 
-       def call(self):
+    def fetch_pending(self):
+        return NetworkSliver.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+
+    def call(self, failed=[]):
         networkSlivers = NetworkSliver.objects.all()
         networkSlivers_by_id = {}
         networkSlivers_by_port = {}
@@ -24,7 +30,7 @@ class SyncNetworkSlivers(OpenStackSyncStep):
         for sliver in slivers:
             slivers_by_instance_id[sliver.instance_id] = sliver
 
-        ports = self.manager.driver.shell.quantum.list_ports()["ports"]
+        ports = self.driver.shell.quantum.list_ports()["ports"]
         for port in ports:
             if port["id"] in networkSlivers_by_port:
                 # we already have it
@@ -64,7 +70,7 @@ class SyncNetworkSlivers(OpenStackSyncStep):
                 print "port", port["id"], "has no fixed_ips"
                 continue
 
-#            print "XXX", port
+#             print "XXX", port
 
             ns = NetworkSliver(network=network,
                                sliver=sliver,