summaryrefslogtreecommitdiff
path: root/nova/api/openstack/common.py
diff options
context:
space:
mode:
authorYun Mao <yunmao@gmail.com>2012-06-28 10:24:05 -0400
committerYun Mao <yunmao@gmail.com>2012-06-28 16:58:54 -0400
commitbef369dd1d80e1854f61716e17ac3201966cb8ae (patch)
tree1a0929a441a8f858500bde7bbd3b3faab2524144 /nova/api/openstack/common.py
parent96d5c1ef8ce3c9525acbf3a00fc609f65c1e7d4c (diff)
downloadnova-bef369dd1d80e1854f61716e17ac3201966cb8ae.tar.gz
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
Diffstat (limited to 'nova/api/openstack/common.py')
-rw-r--r--nova/api/openstack/common.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py
index eacd9b8cb2..4dbfa51ff8 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