Enable the testing of multiple computing devices from a single job file.

Registered by Tyler Baker on 2013-04-24

Extend LAVA scheduler to:

* Accept a single job that requests multiple computing devices
* Deploys software to each computing device individually
* Executes test cases concurrently.

Blueprint information

Tyler Baker
Antonio Terceiro
Senthil Kumaran S
Series goal:
Accepted for trunk
Informational Informational
Milestone target:
milestone icon 2013.05
Started by
Senthil Kumaran S on 2013-05-09
Completed by
Senthil Kumaran S on 2013-05-29


Headline: Work on multi node testing with a single job file started.
Acceptance: Have a POC ready for demonstrating multi node testing with single job file.
Roadmap id: CARD-367

https://blueprints.launchpad.net/linaro-ci-dashboard/+spec/ci-dashboard-slave-runtime should achieve most, if not all of this. Suggest we migrate that BP to this one, or use the other.

https://docs.google.com/a/linaro.org/document/d/17L18W07Q2LJAuk49OVAXtEHSQGK8fiYPa70vR5wwrlM/edit -Discussion from Tuesday

[stylesen, 2013-05-17] Sample job file used for testing is added to the document mentioned above.

[stylesen, 2013-05-23] Sample jobs used for testing are available here - https://code.launchpad.net/~stylesen/+junk/multi-node-jobs

[stylesen, 2013-05-29] Due to the nature of this BP, which involves much of POC stuff, we do not merge it and release it in production yet. This BP serves as an initial step for the feasibility study of multi-node testing. There will be a follow up BP in next cycle which will be eligible for release. As far as this BP is concerned we have a working POC code which does multi-node in a desired way.


Work Items

Work items:
Add a device_group parameter to job json schema: DONE
Make use of device type and count parameters to allocate required number of devices: DONE
For each target device call one job from scheduler: DONE
Run deploy_linaro_image action from the job file on multiple devices: DONE
Make use of the role property: DONE
Deploy images based on roles in target devices: DONE
Run lava-test-shell tests based on different roles: DONE
For each device_group submissions, spawn one job per device: DONE

This blueprint contains Public information 
Everyone can see this information.