Skip to main content

No project description provided

Project description

OAutom

oautom is educational workflow engine implementation able to run step by step treatment using directed acyclic graph (dag).

It's not designed to use in production environment :

  • this workflow engine is not safe because all the state are stored in-memory
  • this workflow engine does not support Flow execution concurrency
  • this workflow engine does not support to give parameter to an execution
  • this workflow engine does not implement variable forwarding between execution step
  • this workflow engine does not implement dag integrity checking

if you are looking for a mature workflow engine, you should take a look to airflow from which oautom reuse the declarative API.

Getting started

oautom = OAutom(mode=OAutomMode.background)

flow = Flow('flow 1', app=oautom)
step1 = BashExecution('execution 1', flow=flow, command='touch /tmp/file1')
step2 = BashExecution('sleep', flow=flow, command='sleep 60')
step3 = BashExecution('execution 2', flow=flow, command='touch /tmp/file2')
step2.depends(step1)
step3.depends(step2)

more examples in oautom/examples

Concepts

  • Execution should run async command in run and check completion through check
    • BashExecution allows to run shell command
  • a Flow is a directed acyclic graph of steps
  • a Vect is a running instance of a Flow
  • only one instance of each Flow may run in same time

System requirements

The following requirements has to be setup on your host before running the command from this repository.

Install the python dependencies

make install_requirements_dev
make start

The latest version

You can find the latest version to ...

git clone https://github.com/FabienArcellier/oautom.git

more information on how to use oautom in oautom/examples

Usage

pip install https://github.com/FabienArcellier/oautom.git

Contributing

Install development environment

Use make to instanciate a python virtual environment in ./venv3 and install the python dependencies.

make install_requirements_dev

Freeze the library requirements

If you want to freeze all the packages, use this procedure

make freeze_requirements

Activate the python environment

When you setup the requirements, a venv3 directory on python 3 is created. To activate the venv, you have to execute /

make activate

Run the linter and the unit tests

Before commit or send a pull request, you have to execute pylint to check the syntax of your code and run the unit tests to validate the behavior.

make lint
make tests

Contributors

  • Fabien Arcellier

License

A short snippet describing the license (MIT, Apache, etc.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oautom-1.0.1.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file oautom-1.0.1.tar.gz.

File metadata

  • Download URL: oautom-1.0.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9

File hashes

Hashes for oautom-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0abeedf0a7285c993f622e006e30ee804facb8693f82c9a225f254fc5dfa71fa
MD5 3687216c9168f60cba07fdad03ac851c
BLAKE2b-256 7f41124867923b5d60a233a5119328e2ef5ecb5985ba182f265911dfd338efee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page