A proposal for the new Ironic system lifecycle state machine.

Registered by vlowther

This proposal describes the updated Ironic system lifecycle state machine. It includes new states for handling initial system enrollment and discovery, adds a couple of new states to make handling in-band and out-of-band system configuration easier, and adds a per-system wait flag to indicate that an external automated system (such as a CMDB, Heat, Crowbar, or Foreman) is taking action on the system.

Blueprint information

Status:
Complete
Approver:
aeva black
Priority:
Essential
Drafter:
vlowther
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Informational Informational
Milestone target:
milestone icon 2015.1.0
Started by
aeva black
Completed by
aeva black

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/139215
    Add fsm.py module

Gerrit topic: https://review.openstack.org/#q,topic:bp/new-ironic-state-machine,n,z

Addressed by: https://review.openstack.org/139216
    Begin using the state machine for node deploy/teardown

Addressed by: https://review.openstack.org/139217
    Refactor async helper methods in conductor/manager.py

Addressed by: https://review.openstack.org/140868
    Enable async callbacks from task.process_event()

Addressed by: https://review.openstack.org/140869
    Convert check_deploy_timeout to use process_event

Addressed by: https://review.openstack.org/140883
    Start using process_event() within drivers

Addressed by: https://review.openstack.org/142303
    Issue with FSM's _target_state

Addressed by: https://review.openstack.org/145389
    Minor fixes to state model

Addressed by: https://review.openstack.org/145929
    Improve testing of state transitions

Addressed by: https://review.openstack.org/147700
    Remove unused state transitions

Gerrit topic: https://review.openstack.org/#q,topic:rename-nostate,n,z

Addressed by: https://review.openstack.org/149754
    Rename NOSTATE to AVAILABLE

Addressed by: https://review.openstack.org/150073
    Add MANAGEABLE state and associated transitions

Addressed by: https://review.openstack.org/150603
    Improve testing of the Node's REST API

Addressed by: https://review.openstack.org/150821
    Add support for API microversions

Addressed by: https://review.openstack.org/151727
    Add :raises: for Version constructor docstring

Gerrit topic: https://review.openstack.org/#q,topic:bp/ironic-node-properties-discovery,n,z

Addressed by: https://review.openstack.org/162607
    Fix typo in ironic-specs/specs/kilo/new-ironic-state-machine.rst

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.