This patch series introduces full provisioning support to LNST.
It allows you to create a pool of machines at the controler and then
create tests that can provision machines from that pool and run tests
on them instead of supplying their own configuration for machines.
This idea is useful, because it separates the hardware configuration
from the recipe, so you don't need to rely on any specific hardware
details other than that are important for your test.
To use provisioning, all you need to do is set the 'provisioned' parameter
of the <machineconfig> that you want to have provisioned. It is vital to
point out, that mixing of provisioned machines with your own machineconfigs
is not supported at the moment (and probably will never be). You can chose
either to provision the whole setup or none of it.
Here is an example of provisioned machine's config:
<machineconfig provisioned="true">
<netdevices>
<netdevice network="ttnet" phys_id="1"
type="eth"/>
<netdevice network="ttnet" phys_id="2"/>
</netdevices>
</machineconfig>
This machineconfig indicates, that it wants a machine that has two interfaces
plugged into the same network and at least one needs to be of type ethernet.
You can specify even more information about the machine, such as,
* hostname (do this when you want a specific machine from the pool)
* libvirt_domain
* device hwaddr
* device type
More of these parameters will probably be added in the future.
LNST will take this config, find a suitable provisioner machine and run your
test there.
The pool of machines is a set of directories (can be configured in the
lnst.conf file) with a machineconfig per file.
For instance this is a machine from my pool fedora16-clone.xml:
<machineconfig>
<info hostname="192.168.122.10"
libvirt_domain="Fedora16-clone"
rootpass="redhat"/>
<netdevices>
<netdevice network="tnet" phys_id="1"
type="eth" hwaddr="52:54:00:e4:75:16"/>
<netdevice network="tnet" phys_id="2"
type="eth" hwaddr="52:54:00:91:01:9c"/>
<netdevice network="tnet" phys_id="3"
type="eth" hwaddr="52:54:00:94:b7:32"/>
<netdevice network="tnet" phys_id="4"
type="eth" hwaddr="52:54:00:f3:a1:b4"/>
</netdevices>
</machineconfig>
I will write some more detailed documentation and how to to the wiki next
week.
I hope I didn't break anything, if so, please let me know and I'll fix it
as soon as I can :).
Cheers,
Radek
Radek Pazdera (7):
XmlProcessing: Normalize paths in XmlDomTreeInit
XmlProcessing: Adding possition info to DOM root
XmlProcessing: Adding default handler to XmlParser
NetTestSlave: Adding method for turning of ifaces
MachinePool: Adding provisioning support
NetTestController: Adding support for provisioning
NetTestParse: Adding support for provisioning
Common/XmlProcessing.py | 16 +-
NetTest/MachinePool.py | 488 +++++++++++++++++++++++++++++++++++++++++-
NetTest/NetTestController.py | 31 +++
NetTest/NetTestParse.py | 153 +++++++++++++-
NetTest/NetTestSlave.py | 9 +
5 files changed, 680 insertions(+), 17 deletions(-)
--
1.7.7.6