A library to complete workflows/tasks in HA manner
Go to file
Joshua Harlow 2cd90745ea Tweak the WBE diagram (and present it as an svg)
Adjust parts of the WBE to reflect a little better what
the components do and explain better arrows mean and turn it
into an svg to scale and present better (and just in generally look
better on all svg supporting browsers; which is all browsers
now-a-days).

* Changes the diagram to add 'executor' to engine block.
* Adjusts communication for engine -> proxy -> workers is
  composed of task requests to revert/execute.
* Adjusts communication for worker -> proxy -> engine is
  more of capabilities, notifications and results (from
  prior execute/revert) requests.
* Adds endpoints into worker box. 
* Changes to using 'executor' + threads in worker; the thing
  that the worker uses to actually execute work (this is
  different than the executor in the engine box, although they
  are somewhat related in what they do...).

Change-Id: I068bdd4f912ac05f2416eb03fc07cd68656b9a43
2015-02-05 01:12:04 +00:00
doc Tweak the WBE diagram (and present it as an svg) 2015-02-05 01:12:04 +00:00
taskflow Use class constants during pformatting a tree node 2015-02-01 22:16:40 -08:00
tools Add a WBE request state diagram + explanation 2015-01-22 23:25:35 -08:00
.coveragerc Coverage calculation improvements 2013-11-22 11:25:03 +04:00
.gitignore Merge "Ignore doc build files" 2014-01-07 18:10:43 +00:00
.gitreview Update .gitreview after repo rename 2014-02-07 20:45:32 +00:00
.mailmap Remap the emails of the committers 2013-09-17 13:27:27 -07:00
.testr.conf Fix up python 3.3 incompatabilities 2013-11-21 18:38:44 +04:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:41 +00:00
LICENSE Move the code over for now 2013-05-07 10:49:44 -07:00
MANIFEST.in Move to using pbr. 2013-07-07 21:46:32 -07:00
openstack-common.conf Move over to using oslo.utils [reflection, uuidutils] 2014-12-18 13:55:41 -08:00
pylintrc Remove error code not found in strict version of pylint. 2013-05-22 18:19:45 -07:00
README.rst Update the README.rst with accurate requirements 2015-01-10 20:10:38 -08:00
requirements-py2.txt Updated from global requirements 2015-01-13 00:16:34 +00:00
requirements-py3.txt Updated from global requirements 2015-01-13 00:16:34 +00:00
run_tests.sh Switch to just using tox 2014-01-02 10:38:15 -08:00
setup.cfg Allow just specifying 'workers' for WBE entrypoint 2015-01-23 15:00:00 -08:00
setup.py Updated from global requirements 2014-05-01 12:43:52 +00:00
test-requirements.txt Updated from global requirements 2015-01-27 17:26:00 +00:00
tox.ini Fix coverage environment 2015-01-23 14:14:53 +03:00

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.

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