nova/nova/compute/vm_states.py

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]