Hi Tino,

A lot of this is covered in the state registry (which I'll copy below for you) but comments inline nonetheless.

On Mon, Apr 20, 2009 at 12:35 PM, Tino Vazquez <tinova@fdi.ucm.es> wrote:
Howdy everyone,

Excellent thread. My three cents:

1) I think we should define clearly the semantics of the states. for
instance, what is the difference between STOPPED and SUSPENDED? Is it
that with SUSPENDED the state is saved and not with STOPPED?

Yes, it's exactly that. From the state registry: STOPPED = "The resource is inactive and has no saved state" and SUSPENDED="The resource is inactive and has saved state"
 
2) I really think we need an entry state like "PENDING" or "DEFINED".
It will help in implementation relying on a best-effort scheduler to
match VMs and hosts, like EC2 does. This will be the state where
machines will wait for a host to be available to run on. Also, I don't
really think that a machine entering its life cycle in SUSPENDED state
is a good idea.

I tend to agree, but I'd like the terminology to be completely unambiguous... something like "NEW" [for this AS].
 
3) +1 to the "CRASHED", "ERROR" or "FAILED" state.

ABORT[ING|ED] = "The resource encountered an error and is aborting/has aborted".

What do you think?

Some of these transitions take a while so some way of indicating progress (especially interesting for long tasks like live migrations) would be useful. Would prefer a mechanism that worked universally for the API.

Sam

Extensions

State control

StateTransitionsDescription
abortingabortedThe resource encountered an error and is aborting
abortedn/aThe resource encountered an error and has aborted
activepause, restart, stop, suspendThe resource is active
resumingaborting, activeThe resource is becoming active and restoring state
pausingaborting, pausedThe resource is preparing to refuse new requests
pausedaborting, resumeThe resource is refusing new requests
startingaborting, activeThe resource is becoming active
stoppedstartThe resource is inactive and has no saved state
stoppingstopped, abortingThe resource is becoming inactive and destroying state
suspendedresume, stopThe resource is inactive and has saved state

Note: Stable states and user transitions in bold.