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-9808234d14264ae1335b53093f1ef6bf30ed2de5.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 |
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.