From: Sapan Bhatia Date: Fri, 22 Aug 2014 07:05:13 +0000 (-0400) Subject: Propagate backend_status to failed dependent objects X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=7e482ded46c064ef3822af4a2a78e0b4ba56537f;p=plstackapi.git Propagate backend_status to failed dependent objects --- diff --git a/planetstack/openstack_observer/syncstep.py b/planetstack/openstack_observer/syncstep.py index 6968d2a..bca2d58 100644 --- a/planetstack/openstack_observer/syncstep.py +++ b/planetstack/openstack_observer/syncstep.py @@ -66,8 +66,10 @@ class SyncStep: peer_object = None 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))) + if (obj.backend_status!=peer_object.backend_status): + obj.backend_status = peer_object.backend_status + obj.save(update_fields=['backend_status']) + 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)