27
27
from nova import log as logging
28
28
from nova import quota
29
29
from nova.api.openstack import wsgi
30
from nova.compute import power_state as compute_power_state
30
from nova.compute import vm_states
31
from nova.compute import task_states
33
34
LOG = logging.getLogger('nova.api.openstack.common')
38
39
XML_NS_V11 = 'http://docs.openstack.org/compute/api/v1.1'
43
compute_power_state.NOSTATE: 'BUILD',
44
compute_power_state.RUNNING: 'ACTIVE',
45
compute_power_state.BLOCKED: 'ACTIVE',
46
compute_power_state.SUSPENDED: 'SUSPENDED',
47
compute_power_state.PAUSED: 'PAUSED',
48
compute_power_state.SHUTDOWN: 'SHUTDOWN',
49
compute_power_state.SHUTOFF: 'SHUTOFF',
50
compute_power_state.CRASHED: 'ERROR',
51
compute_power_state.FAILED: 'ERROR',
52
compute_power_state.BUILDING: 'BUILD',
45
task_states.REBOOTING: 'REBOOT',
46
task_states.UPDATING_PASSWORD: 'PASSWORD',
47
task_states.RESIZE_VERIFY: 'VERIFY_RESIZE',
52
vm_states.REBUILDING: {
58
vm_states.MIGRATING: {
59
'default': 'MIGRATING',
67
vm_states.SUSPENDED: {
68
'default': 'SUSPENDED',
56
def status_from_power_state(power_state):
57
"""Map the power state to the server status string"""
58
return _STATUS_MAP[power_state]
61
def power_states_from_status(status):
62
"""Map the server status string to a list of power states"""
64
for power_state, status_map in _STATUS_MAP.iteritems():
65
# Skip the 'None' state
66
if power_state is None:
68
if status.lower() == status_map.lower():
69
power_states.append(power_state)
82
def status_from_state(vm_state, task_state='default'):
83
"""Given vm_state and task_state, return a status string."""
84
task_map = _STATE_MAP.get(vm_state, dict(default='UNKNOWN_STATE'))
85
status = task_map.get(task_state, task_map['default'])
86
LOG.debug("Generated %(status)s from vm_state=%(vm_state)s "
87
"task_state=%(task_state)s." % locals())
91
def vm_state_from_status(status):
92
"""Map the server status string to a vm state."""
93
for state, task_map in _STATE_MAP.iteritems():
94
status_string = task_map.get("default")
95
if status.lower() == status_string.lower():
73
99
def get_pagination_params(request):