X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fec2_observer%2Fsyncstep.py;h=31fec043106cdbea66acf08be5dff4897c99515c;hb=7121285de503199c2d94c057b7c24fd62414b650;hp=dcfea7db80316457798b540fd0991aef9534f14c;hpb=3e32835c1d93b074eb53322936e1bc0b1ff70730;p=plstackapi.git diff --git a/planetstack/ec2_observer/syncstep.py b/planetstack/ec2_observer/syncstep.py index dcfea7d..31fec04 100644 --- a/planetstack/ec2_observer/syncstep.py +++ b/planetstack/ec2_observer/syncstep.py @@ -60,7 +60,10 @@ 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): + + # peer_object can be None, and if so there + # is no object-level dependency + if (peer_object and peer_object.pk==failed.pk): raise FailedDependency def call(self, failed=[], deletion=False): @@ -83,7 +86,8 @@ class SyncStep: except: o.backend_status = str(e) - o.save(update_fields=['backend_status']) + if (o.pk): + o.save(update_fields=['backend_status']) logger.log_exc("sync step failed!") failed.append(o)