nova/nova/compute/vm_states.py
Ryan Rossiter 7e435fa8f3 Removed enum duplication from nova.compute
There are many state constants held within nova.compute. Because these
now need to be used in versioned notifications, they were converted into
enums within nova.objects.fields. In order to prevent duplication, the
constants in nova.compute were converted over to use the enums created
for the notifications.

Also, because the comments in nova.compute.vm_states were not the best,
they were rearranged to more appropriately fit the lines they were
attempting to comment.

The object hash changes are ignored as it is only caused by the new
sentinel enum value _UNUSED which is not intended to be used.

Change-Id: I4c147a1a1145295b6ccfe9680706abe34cb35170
2016-09-02 07:30:44 +00:00

79 lines
2.5 KiB
Python

# Copyright 2010 OpenStack Foundation
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Possible vm states for instances.
Compute instance vm states represent the state of an instance as it pertains to
a user or administrator.
vm_state describes a VM's current stable (not transition) state. That is, if
there is no ongoing compute API calls (running tasks), vm_state should reflect
what the customer expect the VM to be. When combined with task states
(task_states.py), a better picture can be formed regarding the instance's
health and progress.
See http://wiki.openstack.org/VMState
"""
from nova.objects import fields
# VM is running
ACTIVE = fields.InstanceState.ACTIVE
# VM only exists in DB
BUILDING = fields.InstanceState.BUILDING
PAUSED = fields.InstanceState.PAUSED
# VM is suspended to disk.
SUSPENDED = fields.InstanceState.SUSPENDED
# VM is powered off, the disk image is still there.
STOPPED = fields.InstanceState.STOPPED
# A rescue image is running with the original VM image attached
RESCUED = fields.InstanceState.RESCUED
# a VM with the new size is active. The user is expected to manually confirm
# or revert.
RESIZED = fields.InstanceState.RESIZED
# VM is marked as deleted but the disk images are still available to restore.
SOFT_DELETED = fields.InstanceState.SOFT_DELETED
# VM is permanently deleted.
DELETED = fields.InstanceState.DELETED
ERROR = fields.InstanceState.ERROR
# VM is powered off, resources still on hypervisor
SHELVED = fields.InstanceState.SHELVED
# VM and associated resources are not on hypervisor
SHELVED_OFFLOADED = fields.InstanceState.SHELVED_OFFLOADED
# states we can soft reboot from
ALLOW_SOFT_REBOOT = [ACTIVE]
# states we allow hard reboot from
ALLOW_HARD_REBOOT = ALLOW_SOFT_REBOOT + [STOPPED, PAUSED, SUSPENDED, ERROR]
# states we allow to trigger crash dump
ALLOW_TRIGGER_CRASH_DUMP = [ACTIVE, PAUSED, RESCUED, RESIZED, ERROR]
# states we allow resources to be freed in
ALLOW_RESOURCE_REMOVAL = [DELETED, SHELVED_OFFLOADED]