add support for non-openstack drivers, rename step_dir config param
diff --git a/planetstack/observer/event_loop.py b/planetstack/observer/event_loop.py
index e1dda0e..bdf5ce3 100644
--- a/planetstack/observer/event_loop.py
+++ b/planetstack/observer/event_loop.py
@@ -72,6 +72,10 @@
order.extend(set(steps)-set(order))
return order
+class NoOpDriver:
+ def __init__(self):
+ self.enabled = True
+
class PlanetStackObserver:
#sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivileges,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
sync_steps = []
@@ -82,7 +86,13 @@
self.load_sync_step_modules()
self.load_sync_steps()
self.event_cond = threading.Condition()
- self.driver = OpenStackDriver()
+
+
+ self.driver_kind = getattr(Config(), "observer_driver", "openstack")
+ if self.driver_kind=="openstack":
+ self.driver = OpenStackDriver()
+ else:
+ self.driver = NoOpDriver()
def wait_for_event(self, timeout):
self.event_cond.acquire()
@@ -97,8 +107,8 @@
def load_sync_step_modules(self, step_dir=None):
if step_dir is None:
- if hasattr(Config(), "step_dir"):
- step_dir = Config().step_dir
+ if hasattr(Config(), "observer_steps_dir"):
+ step_dir = Config().observer_steps_dir
else:
step_dir = "/opt/planetstack/observer/steps"
@@ -239,8 +249,11 @@
raise StepNotReady
def run(self):
- if not self.driver.enabled or not self.driver.has_openstack:
+ if not self.driver.enabled:
return
+ if (self.driver_kind=="openstack") and (not self.driver.has_openstack):
+ return
+
while True:
try:
logger.info('Waiting for event')