LAVA Celery Setup Notes
=======================

LAVA celery sets up a celery environment in which LAVA can execute celery_
tasks on remote systems.

.. _celery: http://celeryproject.org/

Terminology:

control node
  This is node set up by lava-deployment-tool. Its running the web app,
  database, and important to this the RabbitMQ server.

worker node
  A node (remote or local) that will handle celery job requests from the
  control node.

Setting Up The Worker Node
^^^^^^^^^^^^^^^^^^^^^^^^^^

lava-deployment-tool currently does not have support for configuring a
celery instance. For now it can be configured using virtualenv and pip:

::

 $ virtualenv workernode ; cd workernode
 $ . ./bin/activate
 $ pip install lava-tool
 $ bzr branch lp:lava-celery
 $ cd lava-celery ; ./setup.py install ; cd ..

You'll probably also want something like the dispatcher set up in your
worker node:

::

 $ pip install lava-dispatcher

You can then run your worker in the virtualenv with:

::

 $ lava celryd [--url <broker url>]

Testing the Setup
^^^^^^^^^^^^^^^^^

You can test that your worker node responds to job requests by running the
following from your control node:

::

 $ . /srv/lava/<INSTANCE>/bin/activate
 $ lava celery run-remote hello-world
