user's can't set/unset site in Login Details without the proper authorization
[plstackapi.git] / planetstack / ec2_observer / syncstep.py
index dcfea7d..31fec04 100644 (file)
@@ -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)