1 This is a rewrite of TestResources
3 Like for TestResources, this expects that you install in /root/LocalSubstrate.py a definition of your local hardware and related IP pools; see LocalSubstrate.inria.py for an example
5 it takes care of everything that has to do with provisioning a test on the local substrate
6 it can handle multiple vserver-ready PLC boxes
7 it can handle multiple qemu/kvm-ready QEMU boxes
8 Each of these is declared with a maximum number of instances
10 You should make sure that your substrate can at least hold all the nightly tests, so you can inspect stuff right away the following day
12 Also you can use 'run' manually in a given test directory (/root/<buildname>)
13 This is safe as long as you make sure to not restart a running plc or node;
14 trying to start the plc again is rather harmless, as vserver <> start will fail
15 OTOH running qemu_start again will probably run another qemu instance, and things can get messy
17 You can monitor the status of the local substrate by running your LocalSubstrate.py
18 this would sense the local substrate and display its status
19 this is a replacement for a former script named manage-infrastructure.py that was local to onelab
20 although it does not support hard/soft rebooting of the underlying plc/qemu boxes yet
22 This implementation is tracker-less; mostly everything is sensed using pings/ssh/ps or whatever;
23 however there's a shared file named /root/starting that's used to inform concurrent test instances about the IP addresses that were assigned but not yet started;
24 when all the tests are over this file should be empty
28 The inria sample gives an example, with currently
29 (*) 3 build boxes (one per fedora flavour)
30 (*) 1 PLC box that can host 20 myplcs
31 (*) 6 QEMU boxes that can host 3 nodes each
33 What we do in the nightlies is to run in parallel on all 3 boxes
34 . a 32bits build, with a single myplc (and so a single node)
35 . a 64bits build with a triangle setup (3 plcs and 3 nodes)
38 (*) at around midnight, 3 single-myplc builds in parallel
39 this uses 3 myplcs and 3 nodes
40 (*) at around 1, 3 triangle-myplc builds in parallel
41 this in turn uses 9 myplcs and 9 nodes
43 so the substrate can basically hold builds from one day and a half...