From 0652f4e589dd85d3632219af5dc90f40418a6fc1 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Tue, 19 Aug 2014 15:49:27 -0700 Subject: [PATCH] fix failed dependencies not taking type of objects into account --- planetstack/openstack_observer/syncstep.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) -- 2.43.0