Allow rerunning introspection on stored data

Registered by Dmitry Tantsur

It's nice to allow to rerun introspection on the previously received data without rerunning the whole introspection, e.g. because people might make mistakes in rules.

Modify process function:
1. Get a deepcopy of the whole data right after receiving it
2. After looking up the node, store this unprocessed data in swift (if it's enabled)

New API: POST /v1/introspection/<UUID>/data/apply
Forces re-processing of node *stored data*, namely:
1. Run preprocessing hooks
2. Run postprocessing hooks
3. Run introspection rules
This will NOT run:
1. Node not found hook, even if it was run originally
2. Any power operations
3. Rollback for any actions done by hooks. Rollback for rules will run as usual.

Like the introspection API itself (and unlike the /v1/continue endpoint), this API will be asynchronous, i.e. it will return 202 Accepted, except for 2 cases when it will fail fast:
1. when storing introspection data is disabled,
2. when introspection is already running for a given node.

Blueprint information

Status:
Not started
Approver:
Dmitry Tantsur
Priority:
Medium
Drafter:
Dmitry Tantsur
Direction:
Approved
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

dtantsur: Original suggestion was to only rerun introspection rules. On IRC we decided to increase the scope.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.