Rename observer to openstack_observer, making room for more convenient
[plstackapi.git] / planetstack / openstack_observer / steps / sync_external_routes.py
diff --git a/planetstack/openstack_observer/steps/sync_external_routes.py b/planetstack/openstack_observer/steps/sync_external_routes.py
new file mode 100644 (file)
index 0000000..334d19d
--- /dev/null
@@ -0,0 +1,18 @@
+import os
+import base64
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+
+class SyncExternalRoutes(OpenStackSyncStep):
+    # XXX what does this provide?
+    provides=[]
+    requested_interval = 86400 # This step is slow like a pig. Let's run it infrequently
+
+    def call(self, **args):
+        routes = self.driver.get_external_routes()
+        subnets = self.driver.shell.quantum.list_subnets()['subnets']
+        for subnet in subnets:
+            try:
+                self.driver.add_external_route(subnet, routes)
+            except:
+                logger.log_exc("failed to add external route for subnet %s" % subnet)