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 | |
| parent | 96d5c1ef8ce3c9525acbf3a00fc609f65c1e7d4c (diff) | |
| download | nova-bef369dd1d80e1854f61716e17ac3201966cb8ae.tar.gz nova-bef369dd1d80e1854f61716e17ac3201966cb8ae.tar.xz nova-bef369dd1d80e1854f61716e17ac3201966cb8ae.zip | |
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')
| -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 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 |
