[RFE] introduce "inspect wait" provision state
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
Wishlist
|
Kaifeng Wang | ||
Ironic Inspector |
Fix Released
|
Wishlist
|
Kaifeng Wang |
Bug Description
The in-band inspection is an asynchronous process that isn't currently protected by a timeout but rather relies on the Inspector inspect interface's periodic task[1] to eventually set the appropriate node state.
This however has the downside of "locking" the node in the inspecting state for periods indefinitely long[2].
Another disadvantage of current implementation is the absence of an operator interface to abort the running introspection and a tricky way of wrapping the asynchronous nature of the ironic-inspector's abort REST API endpoint[3].
Last but not least, this approach isn't future-proof: we want to eventually handle the node inspection state solely thru ironic[4].
Let's therefore have a new passive state in the ironic state machine, the inspect-wait state, protected by a configurable timeout, that:
* node state is navigated to, from the inspecting state,
upon the _start_
* upon a (periodically-
inspect-failed state (and the node is, if configured so, powered off)
* upon the abort request, the node is kept in the same inspect-wait state till either:
* the (current) periodic task[2] moves the node state to the inspect-failed state
* the inspection timeout checking periodic task moves the node state into the
inspect-
[1] https:/
[2] https:/
[3] https:/
[4] https:/
[5] https:/
Changed in ironic-inspector: | |
status: | New → Confirmed |
Changed in ironic-inspector: | |
importance: | Undecided → Wishlist |
tags: | added: needs-spec |
Changed in ironic: | |
assignee: | nobody → Kaifeng Wang (kaifeng) |
tags: |
added: rfe-approved removed: rfe |
Changed in ironic: | |
status: | In Progress → Fix Released |
Changed in ironic-inspector: | |
status: | In Progress → Fix Released |
I'm good with this. Note that it will need a fix in ironic-inspector to treat "inspect wait" as a valid state OR we'll have to guard this new state with a microversion.