Virtual Machine States and Transitions¶
The following diagrams and tables show the required virtual machine (VM) states and task states for various commands issued by the user.
Allowed State Transitions¶
![digraph states {
graph [pad=".35", ranksep="0.65", nodesep="0.55", concentrate=true];
node [fontsize=10 fontname="Monospace"];
edge [arrowhead="normal", arrowsize="0.8"];
label="All states are allowed to transition to DELETED and ERROR.";
forcelabels=true;
labelloc=bottom;
labeljust=left;
/* states */
building [label="BUILDING"]
active [label="ACTIVE"]
paused [label="PAUSED"]
suspended [label="SUSPENDED"]
stopped [label="STOPPED"]
rescued [label="RESCUED"]
resized [label="RESIZED"]
soft_deleted [label="SOFT_DELETED"]
shelved [label="SHELVED"]
shelved_offloaded [label="SHELVED_OFFLOADED"]
deleted [label="DELETED", color="red"]
error [label="ERROR", color="red"]
/* transitions [action] */
building -> active
active -> active [headport=nw, tailport=ne] // manual layout
active -> soft_deleted [tailport=e] // prevent arrowhead overlap
active -> suspended
active -> paused [tailport=w] // prevent arrowhead overlap
active -> stopped
active -> shelved
active -> shelved_offloaded
active -> rescued
active -> resized
soft_deleted -> active [headport=e] // prevent arrowhead overlap
suspended -> active
suspended -> shelved
suspended -> shelved_offloaded
paused -> active
paused -> shelved
paused -> shelved_offloaded
stopped -> active
stopped -> stopped [headport=nw, tailport=ne] // manual layout
stopped -> resized
stopped -> rescued
stopped -> shelved
stopped -> shelved_offloaded
resized -> active
rescued -> active
shelved -> shelved_offloaded
shelved -> active
shelved_offloaded -> active
}](../_images/graphviz-fa8a74bb135d06ccb43a311b6e3dcbaaf9041e3c.png)
Requirements for Commands¶
Command |
Req’d VM States |
Req’d Task States |
Target State |
---|---|---|---|
pause |
Active, Shutoff, Rescued |
Resize Verify, unset |
Paused |
unpause |
Paused |
N/A |
Active |
suspend |
Active, Shutoff |
N/A |
Suspended |
resume |
Suspended |
N/A |
Active |
rescue |
Active, Shutoff |
Resize Verify, unset |
Rescued |
unrescue |
Rescued |
N/A |
Active |
set admin password |
Active |
N/A |
Active |
rebuild |
Active, Shutoff |
Resize Verify, unset |
Active, Shutoff |
force delete |
Soft Deleted |
N/A |
Deleted |
restore |
Soft Deleted |
N/A |
Active |
soft delete |
Active, Shutoff, Error |
N/A |
Soft Deleted |
delete |
Active, Shutoff, Building, Rescued, Error |
N/A |
Deleted |
backup |
Active, Shutoff |
N/A |
Active, Shutoff |
snapshot |
Active, Shutoff |
N/A |
Active, Shutoff |
start |
Shutoff, Stopped |
N/A |
Active |
stop |
Active, Shutoff, Rescued |
Resize Verify, unset |
Stopped |
reboot |
Active, Shutoff, Rescued |
Resize Verify, unset |
Active |
resize |
Active, Shutoff |
Resize Verify, unset |
Resized |
revert resize |
Active, Shutoff |
Resize Verify, unset |
Active |
confirm resize |
Active, Shutoff |
Resize Verify, unset |
Active |
VM states and Possible Commands¶
VM State |
Commands |
---|---|
Paused |
unpause |
Suspended |
resume |
Active |
set admin password, suspend, pause, rescue, rebuild, soft delete, delete, backup, snapshot, stop, reboot, resize, revert resize, confirm resize |
Shutoff |
suspend, pause, rescue, rebuild, soft delete, delete, backup, start, snapshot, stop, reboot, resize, revert resize, confirm resize |
Rescued |
unrescue, pause |
Stopped |
rescue, delete, start |
Soft Deleted |
force delete, restore |
Error |
soft delete, delete |
Building |
delete |
Rescued |
delete, stop, reboot |
Create Instance States¶
The following diagram shows the sequence of VM states, task states, and power states when a new VM instance is created.