Run oVirt system tests

oVirt system tests has multiple ‘testing suites’, each targeted at a different version
of oVirt or a different product, for e.g, the ‘basic-suite-4.0’ will run basic sanity
tests for the 4.0 version, which includes: installing engine, adding hosts, adding storage, installing VMs, etc..

For simplicity we chose the ‘basic suite 4.0’ in this example, but you can choose any other suite
and it should work just the same.

Start by cloning the git repo:

    $ git clone git://gerrit.ovirt.org/ovirt-system-tests

As the tests that we are going to run are for ovirt-engine 4.0, we have to add
the oVirt 4.0 release repository to our system so it will pull in the sdk
package, the following works for any centos/fedora distro:

    # yum install -y http://resources.ovirt.org/pub/yum-repo/ovirt-release40.rpm

Once you have the code and the repo, you can run the run_suite.sh script to
run any of the suites available:

    $ cd ovirt-system-tests
    $ ./run_suite.sh basic-suite-4.0

NOTE: this will download a lot of VM images the first time it runs, check
the section “template-repo.json: Sources for templates_” on how to use local
mirrors if available.

Remember that you don’t need root access to run it, if you have permission
issues, make sure you followed the guidelines in the user permissions section before.

This will take a while, as first time execution downloads a lot of stuff,
like downloading OS templates, where each one takes at least 1G of data.
If you are still worried that its stuck, please refer to the FAQ to see if the issue you’re seeing is documented.

Once it is done, you will get an initialized prefix with a 4.0 engine VM,
with added hosts and storages.
You can find the results in deployment-basic-suite-4.0 directory.

In order to log in the web-UI, first you should find the engine VM’s IP address:

  • From the deployment-basic-suite-4.0 directory, run lago status.
  • Under [VMs] find [lago-basic-suite-4-0-engine]. The IP address of
    network: lago-basic-suite-4-0-net-management is the relevant one.

Once you’ve located the engine VM’s IP, add it to /etc/hosts followed by the name engine.
NOTE: any other name than engine will not work.

Now, log in to the web-UI at:

  • URL: https://engine/ovirt-engine/webadmin/
  • Username: admin
  • Password: 123
  • Profile: internal

If you’re running the framework on a remote machine, you can tunnel a local
port directly to the destination machine::

    $ ssh -L 8443:192.168.200.2:443 remote-user@remote-IP
            ---- =================             ~~~~~~~~~
            (*)   (**)                         (***)

    (*)   - The port on localhost that the tunnel will be available at.
    (**)  - The destination where the remote machine will connect when local machine
            connects to the local end of the tunnel.
    (***) - Remote machine through which we'll connect to the remote end of the
            tunnel.

After creating the tunnel, web-UI will be available at https://localhost:8443/

Poke around in the env

You can now open a shell to any of the VMs, start/stop them all, etc.:

    $ cd deployment-basic-suite-4.0
    $ lagocli shell engine
    [root@engine ~]# exit

    $ lagocli stop
    2015-11-03 12:11:52,746 - root - INFO - Destroying VM engine
    2015-11-03 12:11:52,957 - root - INFO - Destroying VM storage-iscsi
    2015-11-03 12:11:53,167 - root - INFO - Destroying VM storage-nfs
    2015-11-03 12:11:53,376 - root - INFO - Destroying VM host3
    2015-11-03 12:11:53,585 - root - INFO - Destroying VM host2
    2015-11-03 12:11:53,793 - root - INFO - Destroying VM host1
    2015-11-03 12:11:54,002 - root - INFO - Destroying VM host0
    2015-11-03 12:11:54,210 - root - INFO - Destroying network lago

    $ lagocli start
    2015-11-03 12:11:46,377 - root - INFO - Creating network lago
    2015-11-03 12:11:46,712 - root - INFO - Starting VM engine
    2015-11-03 12:11:47,261 - root - INFO - Starting VM storage-iscsi
    2015-11-03 12:11:47,726 - root - INFO - Starting VM storage-nfs
    2015-11-03 12:11:48,115 - root - INFO - Starting VM host3
    2015-11-03 12:11:48,573 - root - INFO - Starting VM host2
    2015-11-03 12:11:48,937 - root - INFO - Starting VM host1
    2015-11-03 12:11:49,296 - root - INFO - Starting VM host0

Cleanup

Once you’re done with the environment, run:

    $ cd deployment-basic-suite-4.0
    $ lagocli cleanup

That will stop any running VMs and remove the lago metadata in the prefix, it
will not remove any other files (like disk images) or anything though, so you
can play with them for further investigation if needed, but once executed, it’s
safe to fully remove the prefix dir if you want to.

Where to find more info

If you’re interested in how things works internally and how you can use Lago cli to do more cool stuff,
checkout the full Lago documentation and read about Lago ‘verbs’ and other goodies.

If you’re have more questions about ovirt-system-tests, try checking out the faq2 page
. If you still can’t find what you’re looking for try the mailing list of ovirt (devel@ovirt.org) or lago (lago-devel@ovirt.org).

Enjoy!