diff options
| author | Brian Lamar <brian.lamar@rackspace.com> | 2011-08-22 17:17:39 -0400 |
|---|---|---|
| committer | Brian Lamar <brian.lamar@rackspace.com> | 2011-08-22 17:17:39 -0400 |
| commit | 3ad42eea208a85619efe0096be8388526b5ffe3b (patch) | |
| tree | 3ba1155357219588ac35ae7678b721fc0899a4e9 /nova/api | |
| parent | ea3684d2a2e60f19bdea6b3117be613103a605dc (diff) | |
| parent | 393c9375626812ecb904d9048c833b0d110e9aa8 (diff) | |
Merge and fix tests.
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/cloud.py | 27 | ||||
| -rw-r--r-- | nova/api/openstack/common.py | 61 | ||||
| -rw-r--r-- | nova/api/openstack/views/servers.py | 2 |
3 files changed, 57 insertions, 33 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 8bddf3032..a7a343938 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -84,17 +84,16 @@ def _gen_key(context, user_id, key_name): _STATE_DESCRIPTION_MAP = { None: 'pending', vm_states.ACTIVE: 'running', - vm_states.BUILD: 'pending', - vm_states.REBUILD: 'pending', - vm_states.REBOOT: 'reboot', - vm_states.DELETE: 'terminated', - vm_states.STOP: 'stopped', - vm_states.MIGRATE: 'migrate', - vm_states.RESIZE: 'resize', + vm_states.BUILDING: 'pending', + vm_states.REBUILDING: 'pending', + vm_states.DELETED: 'terminated', + vm_states.STOPPED: 'stopped', + vm_states.MIGRATING: 'migrate', + vm_states.RESIZING: 'resize', vm_states.VERIFY_RESIZE: 'verify_resize', - vm_states.PAUSE: 'pause', - vm_states.SUSPEND: 'suspend', - vm_states.RESCUE: 'rescue' + vm_states.PAUSED: 'pause', + vm_states.SUSPENDED: 'suspend', + vm_states.RESCUED: 'rescue' } @@ -1065,8 +1064,8 @@ class CloudController(object): def _format_attr_instance_initiated_shutdown_behavior(instance, result): vm_state = instance['vm_state'] - state_to_value = {vm_states.STOP: 'stop', - vm_states.DELETE: 'terminate'} + state_to_value = {vm_states.STOPPED: 'stop', + vm_states.DELETED: 'terminate'} value = state_to_value.get(vm_state) if value: result['instanceInitiatedShutdownBehavior'] = value @@ -1645,7 +1644,7 @@ class CloudController(object): vm_state = instance['vm_state'] # if the instance is in subtle state, refuse to proceed. - if vm_state not in (vm_states.ACTIVE, vm_states.STOP): + if vm_state not in (vm_states.ACTIVE, vm_states.STOPPED): raise exception.InstanceNotRunning(instance_id=ec2_instance_id) if vm_state == vm_states.ACTIVE: @@ -1654,7 +1653,7 @@ class CloudController(object): # wait instance for really stopped start_time = time.time() - while vm_state != vm_states.STOP: + while vm_state != vm_states.STOPPED: time.sleep(1) instance = self.compute_api.get(context, instance_id) vm_state = instance['vm_state'] diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 778c1e514..90b2095b8 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -40,32 +40,57 @@ XML_NS_V11 = 'http://docs.openstack.org/compute/api/v1.1' _STATE_MAP = { - vm_states.ACTIVE: 'ACTIVE', - vm_states.BUILD: 'BUILD', - vm_states.REBUILD: 'REBUILD', - vm_states.REBOOT: 'REBOOT', - vm_states.HARD_REBOOT: 'HARD_REBOOT', - vm_states.STOP: 'STOPPED', - vm_states.MIGRATE: 'MIGRATING', - vm_states.RESIZE: 'RESIZE', - vm_states.VERIFY_RESIZE: 'VERIFY_RESIZE', - vm_states.PAUSE: 'PAUSED', - vm_states.SUSPEND: 'SUSPENDED', - vm_states.RESCUE: 'RESCUE', - vm_states.ERROR: 'ERROR', + vm_states.ACTIVE: { + 'default': 'ACTIVE', + task_states.REBOOTING: 'REBOOT', + task_states.HARD_REBOOTING: 'HARD_REBOOT', + task_states.PASSWORD: 'PASSWORD', + }, + vm_states.BUILDING: { + 'default': 'BUILD', + }, + vm_states.REBUILDING: { + 'default': 'REBUILD', + }, + vm_states.STOPPED: { + 'default': 'STOPPED', + }, + vm_states.MIGRATING: { + 'default': 'MIGRATING', + }, + vm_states.RESIZING: { + 'default': 'RESIZE', + }, + vm_states.VERIFY_RESIZE: { + 'default': 'VERIFY_RESIZE', + }, + vm_states.PAUSED: { + 'default': 'PAUSED', + }, + vm_states.SUSPENDED: { + 'default': 'SUSPENDED', + }, + vm_states.RESCUED: { + 'default': 'RESCUE', + }, + vm_states.ERROR: { + 'default': 'ERROR', + }, } -def status_from_state(_vm_state, task_state=None): +def status_from_state(vm_state, task_state='default'): """Given vm_state and task_state, return a status string.""" - if _vm_state == vm_states.ACTIVE and task_state == task_states.PASSWORD: - return "PASSWORD" - return _STATE_MAP.get(_vm_state, "UNKNOWN_STATE") + LOG.debug("Generating status for vm_state=%(vm_state)s " + "task_state=%(task_state)s." % locals()) + task_map = _STATE_MAP.get(vm_state, dict(default='UNKNOWN_STATE')) + return task_map.get(task_state, task_map['default']) def vm_state_from_status(status): """Map the server status string to a vm state.""" - for state, status_string in _STATE_MAP.iteritems(): + for state, task_map in _STATE_MAP.iteritems(): + status_string = task_map.get("default") if status.lower() == status_string.lower(): return state diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 0d8eeb752..05d6b32c0 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -61,7 +61,7 @@ class ViewBuilder(object): def _build_detail(self, inst): """Returns a detailed model of a server.""" - vm_state = inst.get('vm_state', vm_states.BUILD) + vm_state = inst.get('vm_state', vm_states.BUILDING) task_state = inst.get('task_state') inst_dict = { |
