Extensible Engine Architecture

Registered by Renat Akhmerov

We need to redesign workflow engine and make it more flexible, easier to understand and easier to extend. In particular, we need to come up with an abstract model that would allow us to treat workflow controls uniformly so that we could easily plug a particular implementation of flow control.

Blueprint information

Status:
Complete
Approver:
Renat Akhmerov
Priority:
High
Drafter:
Renat Akhmerov
Direction:
Needs approval
Assignee:
Renat Akhmerov
Definition:
New
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 0.1
Started by
Renat Akhmerov
Completed by
Renat Akhmerov

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/mistral-extensible-engine-architecture,n,z

Addressed by: https://review.openstack.org/107574
    Initial commit for the new engine

Addressed by: https://review.openstack.org/107658
    Sketching out main engine methods

Addressed by: https://review.openstack.org/108301
    Adding state transitions

Addressed by: https://review.openstack.org/108302
    Sketching out engine methods

Addressed by: https://review.openstack.org/108332
    Adding a TODO to rpc.py to add rpc servers for engine and executor

Addressed by: https://review.openstack.org/108339
    Working on reverse workflow handler

Addressed by: https://review.openstack.org/109197
    Initial commit for the new engine

Addressed by: https://review.openstack.org/109541
    Switching from dicts to regular objects in DB API

Addressed by: https://review.openstack.org/109542
    Getting rid of dictionaries in DB API

Addressed by: https://review.openstack.org/109546
    Switching from dicts to regular objects in DB API

Addressed by: https://review.openstack.org/110207
    Implementing DSL specification v2 (partially)

Addressed by: https://review.openstack.org/111218
    Preparing DB objects for the new engine

Addressed by: https://review.openstack.org/111928
    Unit tests for v2 DB model

Addressed by: https://review.openstack.org/111955
    Working on reverse workflow: fixing specification version injection

Addressed by: https://review.openstack.org/111957
    Replacing NotImplemented with NotImplementedError

Addressed by: https://review.openstack.org/111974
    Working on reverse workflow: implementing method start_workflow()

Addressed by: https://review.openstack.org/112247
    Working on reverse workflow: on_task_result()

Addressed by: https://review.openstack.org/112491
    Adding implementation of method __repr__ for DB models

Addressed by: https://review.openstack.org/112526
    Moving TaskResult and states to 'workflow' package

Addressed by: https://review.openstack.org/112607
    Working on engine implementation

Addressed by: https://review.openstack.org/113468
    Renaming base class for DB models

Addressed by: https://review.openstack.org/113490
    Working on engine implementation: on_task_result()

Addressed by: https://review.openstack.org/114461
    Working on linear workflow: start_workflow()

Addressed by: https://review.openstack.org/114893
    Working on linear workflow: on_task_result()

Addressed by: https://review.openstack.org/114922
    Fixing validation schemy for action specifications ('output' property)

Addressed by: https://review.openstack.org/115171
    Implementing subworkflows (one workflow calls another one)

Addressed by: https://review.openstack.org/116211
    Renaming 'linear' workflow to 'direct'

Addressed by: https://review.openstack.org/116567
    Removing 'namespaces' section from DSL

Addressed by: https://review.openstack.org/116621
    Introducing 'workflow' as an individual entity

Addressed by: https://review.openstack.org/116783
    Removing obsolete db.api module in favor of db.v1.api

Addressed by: https://review.openstack.org/116819
    Unit tests for services/workbooks

Addressed by: https://review.openstack.org/116857
    Adding unit tests for workflow DB model

Addressed by: https://review.openstack.org/116872
    Adding new methods to DB API v2 (load_xxx and create_or_update_xxx)

Addressed by: https://review.openstack.org/117092
    Fixing services/workbooks.py to use create_or_update_workflow()

Addressed by: https://review.openstack.org/117094
    Renaming 'start_task' to 'start-task' in workflow spec

Addressed by: https://review.openstack.org/117095
    Renaming 'class' to 'base' in action spec

Addressed by: https://review.openstack.org/117120
    Fixing processing subworkflow result

Addressed by: https://review.openstack.org/117469
    Small optimizations and fixes

Addressed by: https://review.openstack.org/117477
    Renaming 'workflow_parameters' to 'workflow-parameters'

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.