CORD-2964 Any class that descends from SyncStep is a syncstep
Change-Id: Idf7a528948f537e8d4057317a35332cee47730c6
diff --git a/xos/synchronizers/new_base/backend.py b/xos/synchronizers/new_base/backend.py
index 679fc5e..e9a9a56 100644
--- a/xos/synchronizers/new_base/backend.py
+++ b/xos/synchronizers/new_base/backend.py
@@ -87,10 +87,11 @@
# make sure 'c' is a descendent of SyncStep and has a
# provides field (this eliminates the abstract base classes
# since they don't have a provides)
-
+
if inspect.isclass(c):
- base_names = [b.__name__ for b in c.__bases__]
- if ('SyncStep' in base_names or 'OpenStackSyncStep' in base_names or 'SyncInstanceUsingAnsible' in base_names) and (hasattr(c,"provides") or hasattr(c,"observes")) and (c not in sync_steps):
+ bases = inspect.getmro(c)
+ base_names = [b.__name__ for b in bases]
+ if ('SyncStep' in base_names) and (hasattr(c,"provides") or hasattr(c,"observes")) and (c not in sync_steps):
sync_steps.append(c)
self.log.info("Loaded sync steps", steps = sync_steps)