From 986d203cca0badb565708ab4dfad5620eea0b969 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Tue, 12 Jun 2012 12:58:34 +1000 Subject: [PATCH] Make sure the 'nova_instance' is refreshed when ever the state changes Change-Id: Ifadfb12bcd933ac66681fc94335c1ddd83fc31be Signed-off-by: Angus Salkeld --- heat/engine/resources.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/heat/engine/resources.py b/heat/engine/resources.py index 2a2d12f6d9..e2f6d99176 100644 --- a/heat/engine/resources.py +++ b/heat/engine/resources.py @@ -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 = {}