Tracking current introspection state
This blueprint aims to help fix the bug #1457226: we need to prevent situation when e.g. network retry on the ramdisk causes introspection processing to happen twice in parallel. To avoid locking the whole process() call, we need a way to mark a node as already being processed.
Introduce a new field 'state' in 'nodes' table of type string with the following values:
0. 'starting' when NodeInfo record was already created, but the ramdisk was not started yet
1. 'waiting' when the node is waiting for the ramdisk to return
2. 'processing' when hooks and rules are run on the node
3. 'finishing' when processing is done, but before we call the whole introspection done (e.g. we're waiting for IPMI credentials update)
4. 'finished' introspection is done.
Global locking may be required during lookup, so that 2 processes don't both set a node to 'processing' state, thus this blueprint supersedes bug #1457226.
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- High
- Drafter:
- Dmitry Tantsur
- Direction:
- Approved
- Assignee:
- milan k
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Dmitry Tantsur
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
[WIP] Track introspection state for nodes
Work Items
Dependency tree
* Blueprints in grey have been implemented.