-
Notifications
You must be signed in to change notification settings - Fork 32
Slave Description XML Format
This page needs reviewing!
Machine configuration, i.e., <machine_config>
tag, contains all the information lnst-ctl
needs to know about the individual slave machines in order to perform the test.
At the moment this includes things such as a hostname, list of interfaces, libvirt_domain etc. These information describe a single machine that you have available for testing. We are working on adding more options that you can specify to make these machine configuration files as descriptive as possible, such as hardware information or operating system version.
The convention is to create a machine pool that contains files each containing one machine configuration. LNST will then be able to use this machine pool to automatically match machines specified in a recipe. There is also the possibility to include the machine configuration directly into the recipe file, but we recommend NOT to do this.
This is the parent tag of the entire machine configuration. If being used in the pool, there can only be one in every file, if used in recipe directly you can only use one for every machine specified.
The difference of this tag compared to the <machine_requires>
tag is that here the children elements are required so that LNST can use the machine properly.
||||||=ELEMENT: <machine_config>
[=#element:machine_config] =||
||||||Parent tag of the machine configuration. ||
||||||= Attributes =||
|| Required:||||None ||
|| Optional:||||None ||
||||||= Children =||
|| Required:||||[#element:info ] ||
|| || [#element:netdevices ] ||
|| Optional:||||None ||
Again, this tag is very similar to how it is used the <machine_requires>
tag, but now the attribute hostname is mandatory, and some other optional attributes are allowed.
||||||=ELEMENT: <info>
[=#element:info] =||
||||||General information about the machine.||
||||||= Attributes =||
|| Required:||[string] hostname: ||hostname or IP address of the machine's controller interface BR Example: peanut.test-slave.co.uk, 192.168.1.2 ||
|| Optional:||[string] libvirt_domain: ||libvirt domain identifier, if the slave is virtual and can be modified by LNST||
|| ||[integer] rpcport: ||port number on which the slave is listening for rpc connections||
|| ||[boolean] skip_cleanup: ||if True, machine will not be cleaned up before initial configuration||
||||||= Children =||
|| Required:||||None ||
|| Optional:||||None ||
||||||=ELEMENT: <netdevices>
[=#element:netdevices] =||
||||||List of netdevices that are available on the machine||
||||||= Attributes =||
|| Required:||||None ||
|| Optional:||||None ||
||||||= Children =||
|| Required:||||[#element:netdevice ]||
|| Optional:||||None||
When describing the network interfaces available for testing, it is important that LNST has all the information available about them. The attributes of the <netdevice>
tag are therefore all mandatory.
||||||=ELEMENT: <netdevice>
[=#element:netdevice] =||
||||||Attributes of a netdevice that can be used for testing ||
||||||= Attributes =||
|| Required:||[string] phys_id ||unique identifier of the device||
|| ||[string] network ||network segment this netdevice is connected to||
|| ||[enum] type ||device type BR Values: eth ||
|| ||[string] hwaddr ||device MAC address BR Format: 12:34:56:78:90:AB ||
|| Optional:|||| None ||
||||||= Children =||
|| Required:|||| None ||
|| Optional:|||| None ||
<machineconfig>
<info hostname="192.168.122.109"/>
<netdevices>
<netdevice type="eth" network="tnet1" hwaddr="52:54:00:12:ad:01" phys_id="1"/>
<netdevice type="eth" network="tnet2" hwaddr="52:54:00:12:ad:02" phys_id="2"/>
<netdevice type="eth" network="tnet3" hwaddr="52:54:00:12:ad:03" phys_id="3"/>
</netdevices>
</machineconfig>