Virtual Machine States and Transitions

Preconditions for commands

The following diagrams show the required virtual machine (VM) states and task states for various commands issued by the user:

digraph states {
  node [fontsize=10 fontname="Monospace"]
  /* 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"]
  deleted [label="DELETED"]
  error [label="ERROR"]

  /* apis */
  create [shape="rectangle"]
  create -> active
  create -> error
  building -> create

  delete [shape="rectangle"]
  delete -> deleted
  building -> delete
  paused -> delete
  suspended -> delete
  stopped -> delete
  rescued -> delete
  soft_deleted -> delete
  error -> delete

  soft_delete [shape="rectangle"]
  soft_delete -> soft_deleted
  soft_delete -> error
  active -> soft_delete
  stopped -> soft_delete

  restore [shape="rectangle"]
  restore -> active
  restore -> error
  soft_deleted -> restore

  pause [shape="rectangle"]
  pause -> paused
  pause -> error
  active -> pause

  unpause [shape="rectangle"]
  unpause -> active
  unpause -> error
  paused -> unpause

  suspend [shape="rectangle"]
  suspend -> suspended
  suspend -> error
  active -> suspend

  resume [shape="rectangle"]
  resume -> active
  resume -> error
  suspended -> resume

  start [shape="rectangle"]
  start -> active
  start -> error
  stopped -> start

  stop [shape="rectangle"]
  stop -> stopped
  stop -> error
  active -> stop
  error -> stop

  rescue [shape="rectangle"]
  rescue -> rescued
  rescue -> error
  active -> rescue
  stopped -> rescue

  unrescue [shape="rectangle"]
  unrescue -> active
  rescued -> unrescue

  resize [shape="rectangle"]
  resize -> resized
  resize -> error
  active -> resize
  stopped -> resize

  confirm_resize [shape="rectangle"]
  confirm_resize -> active
  confirm_resize -> error
  resized -> confirm_resize
  confirm_resize [shape="rectangle"]

  revert_resize -> active
  revert_resize -> error
  resized -> revert_resize

  snapshot [shape="rectangle"]
  snapshot -> active
  snapshot -> stopped
  snapshot -> error
  active -> snapshot
  stopped -> snapshot

  backup [shape="rectangle"]
  backup -> active
  backup -> stopped
  backup -> error
  active -> backup
  stopped -> backup

  rebuild [shape="rectangle"]
  rebuild -> active
  rebuild -> error
  active -> rebuild
  stopped -> rebuild

  set_admin_password [shape="rectangle"]
  set_admin_password -> active
  set_admin_password -> error
  active -> set_admin_password

  reboot [shape="rectangle"]
  reboot -> active
  reboot -> error
  active -> reboot
  stopped -> reboot
  rescued -> reboot

  live_migrate [shape="rectangle"]
  live_migrate -> active
  live_migrate -> error
  active -> live_migrate
}

../_images/PowerStates1.png ../_images/PowerStates2.png

Create instance states

The following diagram shows the sequence of VM states, task states, and power states when a new VM instance is created.

../_images/run_instance_walkthrough.png

Table Of Contents

Previous topic

Threading model

Next topic

Internationalization

This Page