
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@linux.vnet.ibm.com Telephone: 86-10-82454397