]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Make sure the 'nova_instance' is refreshed when ever the state changes
authorAngus Salkeld <asalkeld@redhat.com>
Tue, 12 Jun 2012 02:58:34 +0000 (12:58 +1000)
committerAngus Salkeld <asalkeld@redhat.com>
Tue, 12 Jun 2012 02:58:34 +0000 (12:58 +1000)
Change-Id: Ifadfb12bcd933ac66681fc94335c1ddd83fc31be
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
heat/engine/resources.py

index 2a2d12f6d90385fe7f659582ee9aecd3eff0988e..e2f6d99176d00554aa88fdd23e786769ca8aafdd 100644 (file)
@@ -121,8 +121,16 @@ class Resource(object):
         self.instance_id = inst
 
     def state_set(self, new_state, reason="state changed"):
-        if new_state is self.CREATE_COMPLETE or \
-           new_state is self.CREATE_FAILED:
+        if self.id is not None:
+            try:
+                rs = db_api.resource_get(self.stack.context, self.id)
+                rs.update_and_save({'state': new_state,
+                                    'nova_instance': self.instance_id})
+                if rs.stack:
+                    rs.stack.update_and_save({'updated_at': datetime.utcnow()})
+            except Exception as ex:
+                logger.warn('db error %s' % str(ex))
+        elif new_state in [self.CREATE_COMPLETE, self.CREATE_FAILED]:
             try:
                 rs = {}
                 rs['state'] = new_state
@@ -139,14 +147,6 @@ class Resource(object):
 
             except Exception as ex:
                 logger.warn('db error %s' % str(ex))
-        elif self.id is not None:
-            try:
-                rs = db_api.resource_get(self.stack.context, self.id)
-                rs.update_and_save({'state': new_state})
-                if rs.stack:
-                    rs.stack.update_and_save({'updated_at': datetime.utcnow()})
-            except Exception as ex:
-                logger.warn('db error %s' % str(ex))
 
         if new_state != self.state:
             ev = {}