Add Inspect Wait State¶
The spec proposes adding a new
inspect wait state to ironic state machine.
The in-band inspection is an asynchronous process 1 that isn’t currently handled through a “waiting” state. This is a discrepancy from the rest of the asynchronous ironic states and may comprise a problem for future features such as aborting the introspection 2 or merging ironic and ironic-inspector 3;
Let’s therefore have a new passive state in the ironic state machine, the
inspect wait state.
For asynchronous inspection like ironic inspector driver, ironic conductor
will move node from
inspecting state when an inspect
request is issued, then the ironic conductor moves node to
INSPECTWAIT. The behavior of returning
INSPECTING will be
deprecated and logged as a warning. After deprecation period, returning
INSPECTING will cause node be moved to
inspect failed state.
Add a new option
[conductor]inspect_wait_timeout to guard the
inspect wait state, the default value is 1800 seconds as same as
[conductor]inspect_timeout. If the hardware inspection is timed out in the
inspect wait, node will be moved from
inspect wait to
[conductor]inspect_timeout will be deprecated.
inspect wait state will be set as an allowed state when updating
ironic node, port and portgroup.
As ironic-inspector checks node provision state before starting inspection,
inspect wait state needs to be added to ironic-inspector as a valid
There are no alternatives to this feature.
Data model impact¶
State Machine Impact¶
A new unstable state
inspect wait will be added to ironic state machine.
Following state transitions will be added:
inspect waitwith event
inspect failedwith event
REST API impact¶
API microversion will be bumped to hide the new
inspect wait state to
clients with older microversion, this will be done in the
Node related API endpoints will be affected:
For clients with older microversion, the provision state of
will be changed to
inspecting, there is no other impact to API behaviors.
Client (CLI) impact¶
As the compatibility is handled at ironic API, CLI is not affected.
“openstack baremetal” CLI¶
RPC API impact¶
Driver API impact¶
Nova driver impact¶
Other end user impact¶
Other deployer impact¶
Add a new option
[conductor]inspect_wait_timeout to guard timeout of state
inspecting, defaults to 1800 seconds.
This feature has no impact on synchronous inspection, that includes most of OOB drivers. For in-band inspection, the new state has to be considered.
After this spec is implemented, drivers based on asynchronous inspection have to be changed accordingly, that includes in-band inspection and out-of-band inspection (if there is any).
OneViewInspect in the tree is implemented based on ironic inspector
interface, its state transition from
inspect wait is
handled by ironic inspector, but
inspect wait state needs to be added to
- Primary assignee:
- Other contributors:
inspect waitstate and state transitions to ironic state machine.
Apply state change in the
_check_statusof ironic inspector and
Add new option
inspect_wait_timeout, and deprecate
Handle timeout of state
inspect waitin the conductor periodic task
_check_inspect_timeouts, allow updating node, port and portgroup when node is in the
Handle API microversion compatibility.
inspect waitto ironic-inspector as a valid state.
Update documents, see Documentation Impact for details.
Unit tests will be added, API change will be covered by tempest tests.
Upgrades and Backwards Compatibility¶
The API backwards compatibility is guarded by microvision.
The state diagram will be automatically generated from source.
Update ironic states document to address the new state, and the semantic
change of current