From bef369dd1d80e1854f61716e17ac3201966cb8ae Mon Sep 17 00:00:00 2001 From: Yun Mao Date: Thu, 28 Jun 2012 10:24:05 -0400 Subject: Deal with unknown instance status. Fix bug 1019020: UNKNOWN_STATE is not a valid status response according to the OS API specification, UNKNOWN should be returned. Change-Id: If5f55051fc0f433f11c371f80f403ededf2b4c46 --- nova/api/openstack/common.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index eacd9b8cb..4dbfa51ff 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -93,10 +93,15 @@ _STATE_MAP = { def status_from_state(vm_state, task_state='default'): """Given vm_state and task_state, return a status string.""" - task_map = _STATE_MAP.get(vm_state, dict(default='UNKNOWN_STATE')) + task_map = _STATE_MAP.get(vm_state, dict(default='UNKNOWN')) status = task_map.get(task_state, task_map['default']) - LOG.debug("Generated %(status)s from vm_state=%(vm_state)s " - "task_state=%(task_state)s." % locals()) + if status == "UNKNOWN": + LOG.error(_("status is UNKNOWN from vm_state=%(vm_state)s " + "task_state=%(task_state)s. Bad upgrade or db " + "corrupted?") % locals()) + else: + LOG.debug(_("Generated %(status)s from vm_state=%(vm_state)s " + "task_state=%(task_state)s.") % locals()) return status -- cgit