Instead of only storing injected atom arguments in memory allow for specifying those to be persisted; so that users who desire this feature can persist them (it defaults to being transient to retain the old API behavior). This also reworks the validating of engine dependencies to be more correct. It removes the validation of these dependencies from the prepare() method and moves them to a new engine validate() method; this allows users to prepare() the engine, then inject there atom non-transient arguments and then validate(); the validation would fail prior to this at preparation time since no injected arguments would exist and the user would not have the ability to inject any that target a specific atom, since the atom detail would not have been created yet (since that is populated in the prepartion method). Change-Id: I2846d0334db32a115592f850d85b206d9e6a3f07
TaskFlow
A library to do [jobs, tasks, flows] in a highly available, easy to understand and declarative manner (and more!) to be used with OpenStack and other projects.
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/taskflow
- Source: http://git.openstack.org/cgit/openstack/taskflow
- Bugs: http://bugs.launchpad.net/taskflow/
Join us
Testing and requirements
Requirements
Because this project has many optional (pluggable) parts like
persistence backends and engines, we decided to split our requirements
into three parts: - things that are absolutely required (you can't use
the project without them) are put into requirements-pyN.txt
(N being the Python major version number used to
install the package). The requirements that are required by some
optional part of this project (you can use the project without them) are
put into our tox.ini file (so that we can still test the
optional functionality works as expected). If you want to use the
feature in question (eventlet or the
worker based engine that uses kombu or the sqlalchemy persistence backend or
jobboards which have an implementation built using kazoo ...), you should add that
requirement(s) to your project or environment; - as usual, things that
required only for running tests are put into
test-requirements.txt.
Tox.ini
Our tox.ini file describes several test environments
that allow to test TaskFlow with different python versions and sets of
requirements installed. Please refer to the tox documentation to understand how
to make these test environments work for you.
Developer documentation
We also have sphinx documentation in docs/source.
To build it, run:
$ python setup.py build_sphinx