Skip to content
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

Support for dynamic workflows #112

Merged
merged 1 commit into from
Feb 19, 2018
Merged

Support for dynamic workflows #112

merged 1 commit into from
Feb 19, 2018

Conversation

erwinvaneyk
Copy link
Member

@erwinvaneyk erwinvaneyk commented Feb 19, 2018

This commit makes a lot of changes in order to allow support for dynamic workflows. Dynamic workflows are workflows that can be passed as inputs or outputs of functions. This allows many interesting new features to be implemented as functions, such as loops, wrapped functions, etc. To this end, this change....

  • added the workflow fnenv; basically allowing the workflow engine to recursively call it self to execute nested (dynamic) workflows.

  • Added an integration test which uses a workflow as an input value.

  • Introduced the TASK_ADDED and AddDynamicTask API action, which allow injecting a new task into a workflow.

  • Added support for resolving tasks within a inner workflow in the Resolver. Also removed the too broad WorkflowSpec as a an parameter in the Resolver, in favor of just a map[string]*TaskSpec; more is not needed.

  • Enabled the YAML parser to deal with workflowSpecs

  • Removed old validator package in favor of the new, improved one (introduced in a previous PR)

Aside from the dynamic workflow implementation, some code quality improvements:

  • Actions and Filters have been extracted from the monolithic controller in an attempt to make the controller better understandable and testable.

  • Scheduler now uses the gonum-based dependency graph package to determine the task horizon.

  • Implemented the missing FAILED event for invocations (before invocations could only be aborted, which assumes external/user influence rather than errors)

  • Added a variety of helper functions and extensions to the pb models in the types package.

@erwinvaneyk erwinvaneyk force-pushed the dynamic-workflows branch 3 times, most recently from 15627fe to 64a0933 Compare February 19, 2018 11:57
@erwinvaneyk erwinvaneyk removed the wip label Feb 19, 2018
@erwinvaneyk erwinvaneyk merged commit af88eaf into master Feb 19, 2018
@erwinvaneyk erwinvaneyk deleted the dynamic-workflows branch February 19, 2018 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant