2. One queue TOTAL. One queue may seem like a bottleneck, but I don't think it has to be in practice. One process can monitor that queue, then launch a process or thread to handle each new job that comes in.
I think RabbitMQ message can have the ability to include the board information in it to use one queue, and also we can use different queues for different types of boards.
Job description:
I'd like to see some more detail here. Can you provide an example of a job file that would illustrate how you see it working? We also need to specify the underlying mechanisms that will handle parsing what's in the job file, and calling [something?] to do those tasks. What we have here feels like it might be a bit cumbersome.
I added an detailed one on the spec, like:
[Beagle-1, http://snapshots.linaro.org/11.05-daily/linaro-hwpacks/imx51/20110131/0/images/hwpack/hwpack_linaro-imx51_20110131-0_armel_unsupported.tar.gz, http://snapshots.linaro.org/11.05-daily/linaro-headless/20110131/0/images/tar/linaro-natty-headless-tar-20110131-0.tar.gz, 900, ["abrek", "LTP", 180], ["none", "echo 100 > abc", 1], ... ]
[IMX51-2, 20100131, 900, ["abrek", "LTP", 180], ["none", "echo 100 > abc", 1], ... ]
Other questions...
What if we have a dependency, how does that get installed on the target image? For example, if I want to do a test that requires bootchart be installed before the system is booted, we should be able to specify that, and have it installed before booting.
What about installing necessary test suites? How do we tell it, in advance, what we need to have installed, and how does it get on the image before we boot, or before we start testing?I think validation tools, test suites and necessary files are likely to install after test image deployment.