Core module containing code to run PyFarm's agent.
Core module containing code to run PyFarm’s agent. This will allow a remote host to:
- Inform the master about itself
- Request, receive and execute work via job types
- Track and control individual processes
- Measure and limit system resource usage
Python Version Support
This library supports Python 2.6 and Python 2.7 only for the moment. Coding practices have been geared towards supporting Python 3 when the underlying library, Twisted, is ported to Python 3.
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 nose pip install -e . --egg make -C docs html
Tests are run on Travis for every commit. They can also be run locally too using trial. Currently, the agent tests require:
- Access to https://httpbin.pyfarm.net for HTTP client testing. This is configurable however and could be pointed to an internal domain using the agent_unittest configuration variable.
- The pyfarm.master module to run the API. So all the setup steps that apply to the master will apply here as well. This includes the requirement to run Redis, RabbitMQ or another backend that supports celery.
- Linux or OS X since the master is designed to operate on these platforms. The below setup may work on Windows with a few configuration tweaks too.
Newer tests are being designed to be lighter weight so eventually most of the above may no longer be required for testing. For now however these are the basic steps to run the tests and are based on the steps in .travis.yml:
virtualenv env . env/bin/activate pip install pyfarm.master uwsgi mock pyfarm-tables uwsgi resources/uwsgi.ini pip install -e . --egg trial tests # in a new shell with the same virtualenv