aboutsummaryrefslogtreecommitdiff
blob: d32c41f12fd3f0018339604a24e802edbda3d9a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
---- DESCRIPTION ----
- This code is currently in alpha-mode. Doing anything useful with the code
  requires a certain level of knowledge of the underlying code. However, this
  file aims to allow a person unacquainted with the project to test it for
  purposes of arch testing etc without understanding the purpose of the project
  [see ./PURPOSE] ;)

---- STRUCTURE ----
The project consists of two parts; a master server and a slave which runs jobs.
The master-server will be put up on a centralized server and will manage jobs by
distributing them to slaves.

The master server is written in django and the slave in python. Currently, the
project has only been tested on Linux, but it *should* work on UNIX-like systems
as well.

The deps of each component are as follows:
- Master:
    * Django-1.0 with sqlite3 support
- Slave:
    * Python 2.5 with inbuilt sqlite support

---- SETUP ----
The master has a runtime dependency on the modules in the slave, and the slave
itself requires the master to do any real work. If you wish, you can install the
slave using the standard `python setup.py`. However, that is not required for
testing.

The master can be setup by executing `python setup-master.py` and following the
instructions. However, you will need to point the PYTHONPATH env variable to the
"autotua/slave/" directory while running the setup if you chose not to install
the slave modules. The same will have to be done while executing manage.py after
setup.

---- CONFIG ----
If you did not use the defaults, you might want to edit autotua/slave/config.py (or
/etc/autotua/slave.cfg if you installed the slave modules) and point it to the
URL where you setup the master.


---- TESTING ----
The master-server and the slave are both tested by running the tests in the
slave. The whole system can be tested in one go by executing
`su -c 'PYTHONPATH=<abs path>/autotua/slave python autotua/slave/autotua/__init__.py'`

Yes. The slave needs to be run as root :p
This is because all the work done by a jobuild is done inside a disposable chroot

---- BUGS ----
If you find something wrong, feel free to file a bug report at
http://soc.gentooexperimental.org/projects/autotua/issues