Reversion strategies

Registered by Joshua Harlow

Instead of always reverting all tasks it would be nice to have a way to associate a policy/strategy with how reverting will be done (likely per flow/engine?) that may involve retrying then reverting or another similar strategy.

For example:

Flow A: revert all tasks after retrying tasks 2-3 (if they fail) two times.
Flow B: never revert.
Flow C: revert using X function instead of reverting individual tasks.
....

I would think that we can provide a pretty minimal way to do this, possibly via a attribute (which may be a object) on a flow that decides if and when the flow (and contained tasks) should be retried and how. This attribute could be a 'retry' object (which would signal to the engine to retry X times), or the attribute could be a 'no-fail' object (which would signal to the engine to silence failures - if they occur in the tasks in the flow - TBD what to do with expected task outputs here).

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Anastasia Karpinska
Definition:
Discussion
Series goal:
Accepted for 0.2
Implementation:
Implemented
Milestone target:
None
Started by
Ivan Melnikov
Completed by
Anastasia Karpinska

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/43972
    Add a prototype of reverting strategies

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

Addressed by: https://review.openstack.org/71621
    Flow smart revert with retry controller

Gerrit topic: https://review.openstack.org/#q,topic:checkpoints,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.