Tracking current introspection state

Registered by Dmitry Tantsur

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

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/244733
    [WIP] Track introspection state for nodes

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.