vm state and task state management

partially implements bp task-management
fixes bug 997867

also see http://wiki.openstack.org/VMState

Refactored the following API/state:
* rebuild
* migrate
* resize
* start
* stop
* delete
* soft delete
* rework sync_power_state in compute/manager.

fix broken tests, add transition diagram in dot

Change-Id: I3c5a97508a6dad7175fba12828bd3fa6ef1e50ee
This commit is contained in:
Yun Mao
2012-06-05 14:55:34 -04:00
parent 82a78b8729
commit bc1f6f3375
4 changed files with 152 additions and 6 deletions

View File

@@ -8,6 +8,143 @@ Preconditions for commands
The following diagrams show the required virtual machine (VM) states and
task states for various commands issued by the user:
.. graphviz::
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
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
}
.. image:: /images/PowerStates1.png