79 lines
2.5 KiB
Python
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]
|