: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.


From MozillaWiki
Jump to: navigation, search

Application Description

Slavealloc is a client-server application. The client is runslave.py. Communication is via a very basic HTTP request to http://slavealloc.build.mozilla.org/gettac/$slavename, where the response is expected to be a buildbot.tac file suitable for use to start buildslave.

The slavealloc server is a implemented as a small Twisted application (source) which serves the tac generator, a JSON REST interface, and a client-side JavaScript interface.

The same source code also implements a command-line frontend to the REST interface.


The server depends on

  • MySQL database
  • Python
    • Twisted
    • SQLAlchemy


First, install build/tools in a virtualenv:

cd tools
virtualenv sandbox
sandbox/bin/pip install -e .

Then you can run the slavealloc daemon locally from the root of the tools repository with a simple:

sandbox/bin/twistd -noy lib/python/slavealloc/contrib/slavealloc-combined.tac

Note that due to what I believe to be a bug in pip, you may need to explicitly install Twisted to get the twistd executable installed:

pip install -U twisted

To set up a fresh database, use

sandbox/bin/slavealloc dbinit -D sqlite:///slavealloc.db

This configuration will use SQLite to access {{{slavealloc.db}}} in the current directory. You can hack on the static web content while the daemon is running.

Production Instance

Deployment Requests

To request an update to the code for slavealloc, file a bug in "Infrastructure & Operations - WebOps: IT-Managed Tools" with the following information (bugzilla template):

  • Name of the cluster ("releng cluster") pre-entered
  • Short name of the site (e.g., "slavealloc") pre-entered
  • Revision to update to REVISION_NUMBER in template
  • Any limitations on timing ("not before", etc.) TIME_CRITERIA in template
  • Link to the relevant mana page pre-entered

See Also