Make sure the 'nova_instance' is refreshed when ever the state changes

Change-Id: Ifadfb12bcd933ac66681fc94335c1ddd83fc31be
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
This commit is contained in:
Angus Salkeld 2012-06-12 12:58:34 +10:00
parent 014566935a
commit 986d203cca
1 changed files with 10 additions and 10 deletions

View 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 = {}