fix failed dependencies not taking type of objects into account
authorScott Baker <smbaker@gmail.com>
Tue, 19 Aug 2014 22:49:27 +0000 (15:49 -0700)
committerScott Baker <smbaker@gmail.com>
Tue, 19 Aug 2014 22:49:27 +0000 (15:49 -0700)
planetstack/openstack_observer/syncstep.py

index dcfea7d..c77c8d5 100644 (file)
@@ -60,8 +60,9 @@ class SyncStep:
         for dep in self.dependencies:
             peer_name = dep[0].lower() + dep[1:]    # django names are camelCased with the first letter lower
             peer_object = getattr(obj, peer_name)
-            if (peer_object.pk==failed.pk):
-                raise FailedDependency
+            if (peer_object and peer_object.pk==failed.pk and type(peer_object)==type(failed)):
+                raise FailedDependency("Failed dependency for %s:%s peer %s:%s failed  %s:%s" % (obj.__class__.__name__, str(obj.pk\\r
+), peer_object.__class__.__name__, str(peer_object.pk), failed.__class__.__name__, str(failed.pk)))
 
     def call(self, failed=[], deletion=False):
         pending = self.fetch_pending(deletion)