From: Scott Baker Date: Tue, 19 Aug 2014 22:49:27 +0000 (-0700) Subject: fix failed dependencies not taking type of objects into account X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=0652f4e589dd85d3632219af5dc90f40418a6fc1;p=plstackapi.git fix failed dependencies not taking type of objects into account --- diff --git a/planetstack/openstack_observer/syncstep.py b/planetstack/openstack_observer/syncstep.py index dcfea7d..c77c8d5 100644 --- a/planetstack/openstack_observer/syncstep.py +++ b/planetstack/openstack_observer/syncstep.py @@ -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\ +), 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)