Thanks Fabian. I have a look at igor. It's very powerful. From what I
understand, Jenkins invokes igor client to upload the test plan to
igord. igord starts VMs and let cobller setup the guest OS, then the
igor guest agent inside guest OS download the test from igord and run
them. The igor guest agent will upload the test result after each test
step. The communication is through HTTP. igord implements a REST-like
web interface. Extra parameters can be passed to the guest agent by
appending the kernel arguments of the guest OS.
If I want to setup several VMs and run a cluster test plan on them, igor
will be very helpful. I think igor is a little too heavy for the current
VDSM functional tests. For now we just run the tests on single node. I
think it's easier to do this using the libvirt-slave plugin for Jenkins.
It enables Jenkins start VM as a slave and shutdown after use. The slave
can be put behind the NAT using the default libvirt network. I have
already configured this environment and test it in my lab. It seems good
enough for this task.
We have some proposals for a cluster test plan in our team. I will learn
more about igor and see if we can leverage it. It will be very useful if
igor is integrated to the oVirt infrastructure. We can re-use this
service to more high level tests.
on 03/05/2013 18:20, Fabian Deutsch wrote:
Am Dienstag, den 05.03.2013, 14:30 +0800 schrieb Zhou Zheng Sheng:
> I setup a virtual machine running in QEMU snapshot mode. Then add it
> to
> Jenkins as a slave. There is a plugin for Jenkins to start and stop
> slave using libvirt. So I configure Jenkins to start the VM slave to
> build, install and run VDSM tests, then shutdown. Jenkins slave gets
> the
> root privileges of the guest OS and do whatever it needs to. Since the
> VM slave is in snapshot mode, it restores the original state after
> shutdown. I also make a small script to switch snapshot mode on/off
> when
> I needs to manage the configuration and packages for the guest OS.
>
> Which plan do you prefer? Could someone help me setup this
> environment?
> (I only get access to Jenkins.)
Hey,
with oVirt Node we've got similar problems of how to do the functional
tests.
That's why we came up with igor [0]. Igord integrates nicely with
Jenkins and does all the VM management for you.
What igor does is creating and setting up an OS (by passing
kernelarguments - currently only oVirt Node is tested) and running a
testsuite on the OS itself - so maybe this is interesting for you too!
You could even run vdsm on a Node build (a Node ISO is build is
triggered by every vdsm fedora package build).
Currently Igor uses libvirt to run the VMs and requires cobbler to setup
the VMs, but we might drop this dependency.
This document describes how to setup an Igor env on Fedora 18 [1].
Besides that we are also looking how we can integrate Igor into the
oVirt infrastructure.
Greetings
fabian
--
[0]
https://gitorious.org/ovirt/igord
[1]
https://etherpad.mozilla.org/VXrJkQBNhq
--
Thanks and best regards!
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou(a)linux.vnet.ibm.com
Telephone: 86-10-82454397