Skip to content
legastero edited this page May 22, 2011 · 6 revisions

Installation

First install SleekXMPP using:

$ git clone git://github.com/fritzy/SleekXMPP
$ cd SleekXMPP
$ git checkout develop
$ sudo python setup.py install

Note: For now, use revision 7f8179d91e4f8ae3d58448e57f2

Then install Kestrel using:

$ sudo easy_install -U kestrel

Configuration:

Kestrel stores its configuration files in the directory ~/.kestrel. The files ~/.kestrel/worker.rc and ~/.kestrel/user.rc are responsible for managing the worker and client modes for Kestrel.

Sample User Config

[XMPP]
method=client
jid=user@example.com
server=example.com
password=user

[user]
manager=manager.example.com

Sample Worker Config

[XMPP]
method=client
jid=worker_314@example.com
server=example.com
password=worker

[worker]
manager=pool@manager.example.com
profile=EXPERIMENTAL PYTHON PYTHON2.6 LINUX GCC4.5
        FEDORA FEDORA12

Job Management

Jobs are created by writing a short description file, similar to Condor’s job classad.

Sample Job File

[job]
queue=50
command=./run_task.sh
cleanup=./cleanup.sh
requires=PYTHON FOO

Submitting

Submitting the job is done with:

$ kestrel submit path_to_job_file

The job’s ID will be returned.

Cancelling

Cancelling a job is done with:

$ kestrel cancel job_id

Status

Checking a job’s status is done with:

$ kestrel status job_id

Checking the status of all jobs is done with:

$ kestrel status

Checking the status of the workers in the pool is done with:

$ kestrel status pool

Using the latest development version of Kestrel:

Here is the new configuration file format, which can be placed at ~/.kestrelrc and may include the settings for clients, workers, and the manager:

<config xmlns="kestrel:config">
  <manager>
    <xmpp>
      <jid>manager.example.com/jid>
      <password>hunter2</password>
      <port>8889</port>
      <server>example.com</server>
    </xmpp>
    <redis>
      <host>example.com</host>
    </redis>
    <jobs>submit@manager.example.com</jobs>
    <pool>pool@manager.example.com</pool>
  </manager>
  <client>
    <xmpp>
      <jid>user@example.com</jid>
      <password>hunter2</password>
    </xmpp>
    <submit>submit@manager.example.com</submit>
    <pool>pool@manager.example.com</pool>
  </client>
  <worker>
    <xmpp>
      <jid>worker_1@example.com</jid>
      <password>hunter2</password>
    </xmpp>
    <manager>pool@manager.example.com</manager>
    <feature>DEMO</feature>
  </worker>
</config>