Sub-library which contains the code necessary to communicate with the database via a REST api.


License
Apache-2.0
Install
pip install pyfarm.master==0.7.0-dev3

Documentation

PyFarm Master

build status (master) coverage

Sub-library which contains the code necessary to run an instance of the master server. The primary purposes of the master including serving a REST API, running the scheduler and serving the web interface.

Python Version Support

This library supports Python 2.7 and Python 3.3+ in one code base. Python 2.6 and lower is not supported due to syntax differences and support for 2.6 in external libraries.

Documentation

The documentation for this this library is hosted on Read The Docs. It's generated directly from this library using sphinx (setup may vary depending on platform):

virtualenv env
. env/bin/activate
pip install sphinx sphinxcontrib-httpdomain
pip install -e . --egg
make -C docs html

Testing

Note

A broker is required for most of the tests due to pyfarm.master's dependency on celery. Redis is recommended because it's the default, least persistent and easiest to setup.

General Testing

Tests are run on Travis for every commit. They can also be run locally too (setup may vary depending on platform):

virtualenv env
. env/bin/activate
pip install nose
pip install -e . --egg
nosetests tests/

Testing Specific Databases

By default tests are run against sqlite. While this is sufficient in many cases it's generally best to test against the database type you wish to use. Setup wise the only difference will be in the call to nosetests:

PYFARM_DATABASE_URI="dialect+driver://username:password@host:port/database" nosetests tests/

For more information on database URIs see sqlalchemy's documentation or the Travis configuration.