-
-
Notifications
You must be signed in to change notification settings - Fork 751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement with items for Orquesta workflows #4400
Conversation
Refactor workflow engine and service to add support of with items for orquesta workflows. The orquesta conductor adds more data when retrieving the next set of tasks for execution. The extra data includes one or more rendered action specs. Previously, there is only one action spec and it is rendered directly into the task spec. The workflow service is refactored to request the number of action executions as specified in the set of tasks returned from the conductor. Additional field is added into the DB model for task execution to indicate if it is with items. The action execution result for each item is stored differently in the task execution.
…items For a task with items schedules multiple action executions concurrently, there is a conflict in updating the DB record for the task execution. Add the retry decorator for requesting action executions to retry on conflict. Refactor with items tests to allow more granular control of concurrency.
Refactor the workflow inspection unit tests to accomodate change in the workflow schema.
…h items Add integration tests to cover cancellation, pause, and resume of orquesta workflows that have tasks with items.
e723a25
to
bfe3ff5
Compare
Would it be possible to support an option When a parent workflow uses I have a workflow where the sub-workflow upgrades machine packages, reboots the machine and checks the monitoring staus is OK. If in a single If we had support for asynchronous |
@nzlosh This implementation is already operating as you described. The Orquesta conductor will schedule the next item(s) as soon as there are free slots as defined by concurrency. Also, you may want to recheck Mistral, I don't recall it working batch like. |
❤️ great news! Silly question, is there an option for synchronous |
@nzlosh yep, concurrency=None 😜 |
Nice job, that's awesome!! 🥇 Thanks for the great work! |
bfe3ff5
to
de58582
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved, just an obligatory reminder to clean up orquestra branch path.
Update the commit hash for orquesta in requirements to reference the required changes for with items task.
de58582
to
e062c29
Compare
@bigmstone Thanks. I just updated requirements. |
Add support of with items and concurrency in the task spec of Orquesta workflows. This PR is dependent on changes in the Orquesta engine at StackStorm/orquesta#94. Unit and integration tests are written to cover single and multiple items list, with or without concurrency, and additional operations such as pause, resume, and cancel of workflow while the task is being executed. The following examples are different variations of how workflow authors can define with items for a task.