diff options
author | Yun Mao <yunmao@gmail.com> | 2012-06-28 10:24:05 -0400 |
---|---|---|
committer | Yun Mao <yunmao@gmail.com> | 2012-06-28 16:58:54 -0400 |
commit | bef369dd1d80e1854f61716e17ac3201966cb8ae (patch) | |
tree | 1a0929a441a8f858500bde7bbd3b3faab2524144 /nova/api/openstack/common.py | |
parent | 96d5c1ef8ce3c9525acbf3a00fc609f65c1e7d4c (diff) | |
download | nova-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.py | 11 |
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 |