diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-06-25 18:24:30 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-06-25 18:24:30 +0000 |
| commit | aa802e0204f4f3d96b94866ec42478353796c759 (patch) | |
| tree | 9d2d01859ef4d755ec1e9dd588df85f315d145c3 /nova/api | |
| parent | bf368360cb089a1db0b7a2bf6a7ba87c6f46a882 (diff) | |
| parent | 129b87e17d3333aeaa9e855a70dea51e6581ea63 (diff) | |
Merge "vm state and task state management"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/cloud.py | 23 | ||||
| -rw-r--r-- | nova/api/ec2/inst_state.py | 2 | ||||
| -rw-r--r-- | nova/api/openstack/common.py | 27 |
3 files changed, 23 insertions, 29 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index c3022e546..1bb505659 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -71,26 +71,22 @@ _STATE_DESCRIPTION_MAP = { None: inst_state.PENDING, vm_states.ACTIVE: inst_state.RUNNING, vm_states.BUILDING: inst_state.PENDING, - vm_states.REBUILDING: inst_state.PENDING, vm_states.DELETED: inst_state.TERMINATED, - vm_states.SOFT_DELETE: inst_state.TERMINATED, + vm_states.SOFT_DELETED: inst_state.TERMINATED, vm_states.STOPPED: inst_state.STOPPED, - vm_states.SHUTOFF: inst_state.SHUTOFF, - vm_states.MIGRATING: inst_state.MIGRATE, - vm_states.RESIZING: inst_state.RESIZE, vm_states.PAUSED: inst_state.PAUSE, vm_states.SUSPENDED: inst_state.SUSPEND, vm_states.RESCUED: inst_state.RESCUE, + vm_states.RESIZED: inst_state.RESIZE, } -def _state_description(vm_state, shutdown_terminate): +def _state_description(vm_state, _shutdown_terminate): """Map the vm state to the server status string""" - if (vm_state == vm_states.SHUTOFF and - not shutdown_terminate): - name = inst_state.STOPPED - else: - name = _STATE_DESCRIPTION_MAP.get(vm_state, vm_state) + # Note(maoy): We do not provide EC2 compatibility + # in shutdown_terminate flag behavior. So we ignore + # it here. + name = _STATE_DESCRIPTION_MAP.get(vm_state, vm_state) return {'code': inst_state.name_to_code(name), 'name': name} @@ -1454,11 +1450,10 @@ 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.SHUTOFF, - vm_states.STOPPED): + if vm_state not in (vm_states.ACTIVE, vm_states.STOPPED): raise exception.InstanceNotRunning(instance_id=ec2_instance_id) - if vm_state in (vm_states.ACTIVE, vm_states.SHUTOFF): + if vm_state == vm_states.ACTIVE: restart_instance = True self.compute_api.stop(context, instance) diff --git a/nova/api/ec2/inst_state.py b/nova/api/ec2/inst_state.py index 68d18c8ad..1451bbfba 100644 --- a/nova/api/ec2/inst_state.py +++ b/nova/api/ec2/inst_state.py @@ -30,7 +30,6 @@ STOPPING = 'stopping' STOPPED = 'stopped' # non-ec2 value -SHUTOFF = 'shutoff' MIGRATE = 'migrate' RESIZE = 'resize' PAUSE = 'pause' @@ -47,7 +46,6 @@ _NAME_TO_CODE = { STOPPED: STOPPED_CODE, # approximation - SHUTOFF: TERMINATED_CODE, MIGRATE: RUNNING_CODE, RESIZE: RUNNING_CODE, PAUSE: STOPPED_CODE, diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 93b5a36ab..eacd9b8cb 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -48,25 +48,26 @@ _STATE_MAP = { task_states.REBOOTING: 'REBOOT', task_states.REBOOTING_HARD: 'HARD_REBOOT', task_states.UPDATING_PASSWORD: 'PASSWORD', - task_states.RESIZE_VERIFY: 'VERIFY_RESIZE', + task_states.REBUILDING: 'REBUILD', + task_states.REBUILD_BLOCK_DEVICE_MAPPING: 'REBUILD', + task_states.REBUILD_SPAWNING: 'REBUILD', + task_states.MIGRATING: 'MIGRATING', + task_states.RESIZE_PREP: 'RESIZE', + task_states.RESIZE_MIGRATING: 'RESIZE', + task_states.RESIZE_MIGRATED: 'RESIZE', + task_states.RESIZE_FINISH: 'RESIZE', }, vm_states.BUILDING: { 'default': 'BUILD', }, - vm_states.REBUILDING: { - 'default': 'REBUILD', - }, vm_states.STOPPED: { 'default': 'STOPPED', }, - vm_states.SHUTOFF: { - 'default': 'SHUTOFF', - }, - vm_states.MIGRATING: { - 'default': 'MIGRATING', - }, - vm_states.RESIZING: { - 'default': 'RESIZE', + vm_states.RESIZED: { + 'default': 'VERIFY_RESIZE', + # Note(maoy): the OS API spec 1.1 doesn't have CONFIRMING_RESIZE + # state so we comment that out for future reference only. + #task_states.RESIZE_CONFIRMING: 'CONFIRMING_RESIZE', task_states.RESIZE_REVERTING: 'REVERT_RESIZE', }, vm_states.PAUSED: { @@ -84,7 +85,7 @@ _STATE_MAP = { vm_states.DELETED: { 'default': 'DELETED', }, - vm_states.SOFT_DELETE: { + vm_states.SOFT_DELETED: { 'default': 'DELETED', }, } |
