← Back to team overview

openstack team mailing list archive

nova state machine simplification and clarification

 

Hi,

There are vm_states, task_states, and power_states for each VM. The
use of them is complicated. Some states are confusing, and sometimes
ambiguous. There also lacks a guideline to extend/add new state. This
proposal aims to simplify things, explain and define precisely what
they mean, and why we need them. A new user-friendly behavior of
deleting a VM is also discussed.

A TL;DR summary:
* power_state is the hypervisor state, loaded “bottom-up” from compute worker;
* vm_state reflects the stable state based on API calls, matching user
expectation, revised “top-down” within API implementation.
* task_state reflects the transition state introduced by in-progress API calls.
* “hard” delete of a VM should always succeed no matter what.
* power_state and vm_state may conflict with each other, which needs
to be resolved case-by-case.

It's not a definite guide yet and is up for discussion. I'd like to
thank vishy and comstud for the early input. comstud: the task_state
is different from when you looked at it. It's a lot closer to what's
in the current code.

The full text is here and is editable by anyone like etherpad.

https://docs.google.com/document/d/1nlKmYld3xxpTv6Xx0Iky6L46smbEqg7-SWPu_o6VJws/edit?pli=1

Thanks,

Yun


Follow ups