* in case MISTRAL_REST_ACTION we add Mistral-specific
headers, in case REST_ACTION - we are not.
* new class for this type of action is unnecessary,
all of these are Rest, only properties can be edited
in factories methods
Change-Id: I431e5009a531da6bea191e7253d43b4cd58c46fb
* Access to new task properties:
input, onSuccess, OnError; any task property
* 'dependsOn' is renamed to 'requires' and returns dict object
which contains conditions of task transition.
DSL can be defined either:
task3:
requires: [task1, task2]
or:
task3:
requires:
task1: condition1 (or empty)
task2: condition2 (or empty)
Change-Id: Ic3ab5754443100e101f04260d9054b0a604fcd6d
* Moved iethods start_workflow_execution and convey_task_result into
abstract engine
* Refactored existing local engine unit tests
* Added simple unit tests for scalable engine
* Minor cosmetic changes (imports, blank lines)
Change-Id: Ic781b134068f52ed5827b945fb57b202239fe9c4
* Action definition was combined in actions module
* workflow from both single and scalable engines were deleted
* task from single engine was deleted
* unit test 'test_workflow' was deleted due to deleting workflow
* minor fixes to single engine
Next step will be extracting and combining common parts
of scalable and single engine.
Change-Id: I15fbbb7f9d5e453c17625423eeb1bf841a19db18
* New engine for running workflow (w/o rabbit)
* Engine constructs a workflow
* REST API action
* AMQP action (not finished)
* Task and execution state update
* Added unit tests for this engine
Partially implements blueprint: mistral-poc
Partially implements blueprint: mistral-workflow-execution
Change-Id: I0e2b1a25f4281f77dad07a6f5241025be0963ed7
* Workbook events creation is now called from a REST controller rather
than from DB API. This is more proper place (level of abstraction).
* Fixed workbook definition controller and evets tests.
Change-Id: Ib17d0b0dae614c474c161cd12ecbb1b05aea74a8
* Simple server
* expose one endpoint - /tasks
* recieve correct signal from mistral
about task execution, log 'task N started,
task N finished'
* logging
Change-Id: I230eac12319be820d64612d242b9190a10be946e
* Fixed several problems in scalable engine
* Fixed engine interface
* Fixed several problems in REST API
* Changed task DB model
* Fixed DSL parser
* Added scripts for end-to-end testing
Change-Id: Icbcc46d11a6c687d0ae3aad339ca5f5134c50195
* Added methods on DB API for explicit transaction demarcation
* Added @session_aware() decorator maker
* Refactoring SqlAlchemy implementation of DB API
* Added all tests for DB API
* Added methods to access thread local variables in mistral/utils.py
* Fixed API Resource class to ignore unset values in transformations
Change-Id: I5fae196f89c77a5e355207907bd08983969922c3
* Fix unit tests
* Fix event model
* Fix using engine module
* Added sending signal to run workflow in events
* Creating events when WB definition is uploaded
Change-Id: Ica7a5c0d0c367f3c7396ed1650753f1570f797b7
* Workflow in scalable engine
* find tasks to run
* find workflow tasks
* Added unit tests
* Fix events test
Change-Id: Ib3a97f976b101a68cbbde9d2117f5b2ca5eab5cd
* Asynchronous tasks
* Separate stateless task executors
* Notification of task executors via RabbitMQ
TODO:
* DB transaction management
* Analyzing graph of tasks to identify what should be started
* Thorough automated tests
Partially implements blueprint: mistral-poc
Partially implements blueprint: mistral-workflow-execution
Partially implements blueprint: mistral-engine-ha
Change-Id: I022e1b73b9a3c58f1fbc259ba3e5995acd2bf6c3