----- Original Message -----
From: "Zhou Zheng Sheng"
<zhshzhou(a)linux.vnet.ibm.com>
To: "Eyal Edri" <eedri(a)redhat.com>
Cc: "infra" <infra(a)ovirt.org>
Sent: Friday, April 19, 2013 4:42:45 AM
Subject: Re: Need help to setup an slave for VDSM functional tests
on 04/17/2013 21:21, Eyal Edri wrote:
>
>
> ----- Original Message -----
>> From: "Zhou Zheng Sheng" <zhshzhou(a)linux.vnet.ibm.com>
>> To: "infra" <infra(a)ovirt.org>
>> Sent: Wednesday, April 17, 2013 12:44:18 PM
>> Subject: Need help to setup an slave for VDSM functional tests
>>
>> Hi,
>>
>> I got a Jenkins power user account. I want to configure a job to run
>> VDSM functional tests on a Fedora 18 slave. The functional tests need
>> some prerequisites that can not be done in Jenkins, for example,
>> installing dependency packages (git, python-pep8, pyflakes, autoconf,
>> gcc...), configuring sudo (Jenkins needs root privilege to
>> install/start/stop VDSM), configuring glusterfs. Since the functional
>> tests actually install VDSM on the slave's OS, the slave is better to be
>> a virtual machine.
>
> i believe the current f18 slaves already have those, if not please open a
> ticket/email to infra.
>
Great!
>>
>> In all, to run VDSM functional tests, we need a VM that is ready to
>> build and install VDSM. There are already some slaves running jobs for
>> building VDSM and unit tests, the environment is almost the same for
>> functional tests. The VM slave needs not be online all the time. There
>> is a Jenkins plugin named "libvirt slave", it can start the VM when
the
>> job is triggered, and shutdown it when it's idle for some time. I do not
>> have the privilege to install that plugin. Could you install libvirt
>> slave plugin as well?
>
> we currently don't have ability to start/stop vms or launching any
> non-amazon vms as slaves.
> (we're working on adding new vms on ovirt-engine instance, which will give
> us more flexibility with that).
>
> is shutting down the vm part of the test?
>
Thanks Eyal! The functional tests install VDSM rpms, start/stop
services, add/delete iSCSI LUNs and NFS exports, and if we want to do
glusterfs tests, selinux must be turned off. These actions needs root
privilege. If we give Jenkins slave process these privilege, it results
some security wholes in the slave OS, so I think we'd better run the
tests in a VM slave on demand, and shutdown when idle. As you said, we
do not have the ability to start VMs, so I think if the slave is behind
a NAT and can not be accessed from the public network, we can give the
Jenkins slave process those privileges. Otherwise I have to investigate
some other means to run functional tests safely. I tried libvirt-sandbox
but it seems very complicated to configure a system to run VDSM in
libvirt-sandbox. What do you think?
i think that your best option will be to wait till we have a working ovirt-engine instance
running
that runs jenkins slaves.
we'll then be able to create vms on it via restapi/sdk/cli. (which i think there might
be some code for it
already that will work for ovirt, i'll have to check and get back to you).
we're also working on installing foreman soon, which can act as a tftp/pxe server to
install vms on the fly.
i don't think that the VM you're playing with /testing on should be a jenkins
slave.
the jenkins slave can run your testing code, but all your manipulations (deleting
iscsi/nfs/root access/etc..),
should be done on a different vm that the jenkins slave will connect to during the test.
do you have a wiki on your functional tests requirements/actions i can read about?
--
Thanks and best regards!
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou(a)linux.vnet.ibm.com
Telephone: 86-10-82454397