The libvirt TCK provides a framework for performing testing of the integration between libvirt drivers, the underlying virt hypervisor technology, related operating system services and system configuration. The idea (and name) is motivated by the Java TCK.

Currently the libvirt TCK is not fully packaged for SUSE and the test suite itself contains a lot of Redhat-isms. Mike Latimer and Jim Fehlig will work on properly packaging libvirt TCK (it has a LOT of perl dependencies) and patching it to work better with SUSE virtualization hosts and SUSE guest operating systems. It has traditionally focused on the KVM hypervisor, so there might be some progress made to make it work better with Xen too.

Looking for hackers with the skills:

virtualization kvm xen qa

This project is part of:

Hack Week 10

Activity

  • almost 12 years ago: mlatimer joined this project.
  • about 12 years ago: jfehlig added keyword "virtualization" to this project.
  • about 12 years ago: jfehlig added keyword "kvm" to this project.
  • about 12 years ago: jfehlig added keyword "xen" to this project.
  • about 12 years ago: jfehlig added keyword "qa" to this project.
  • about 12 years ago: jfehlig started this project.
  • about 12 years ago: jfehlig originated this project.

  • Comments

    • jfehlig
      almost 12 years ago by jfehlig | Reply

      A long overdue update on our accomplishments throughout the week:

      • Package moved to OBS Virtualization:Tests/libvirt-tck. Package build is only enabled for openSUSE12.3/13.1/Factory to prevent polluting the project with unnecessary 'linkpacs' that would be required to build "older" openSUSE12.2, SLE11 SP3, etc. Even so, there are six packages linked from devel:languages:perl to satisfy build/runtime dependencies.
      • IBS Devel:Virt:SLE-11-SP3/libvirt-tck, which links to OBS Virtualization:Tests/libvirt-tck. SLE11 SP2/3 builds of libvirt-tck are enabled here. The project contains a massive number of 'linkpacs' to satisfy all the missing build/runtime dependencies in SLE11. Thanks to Mike for perseverance to track down this dependency mess and all the incompatible versions and other hair pulling issues!

      With the exception of openSUSE12.2, which will be EOL soon, this covers all our supported products. IMO, all the effort to package libvirt-tck is worth it. Having an easy way to install and run the test suite broadens it's userbase.

      • Package updated to latest upstream git master. The previous package was based on the old 0.1.0 release done in July 2009! A lot of tests have been added in the meantime, but no new release. On the one hand, I find that odd since a lot of folks in the libvirt community use libvirt-tck. But on the other, the packaging difficulty across distros encourages running the latest git on a CPAN configured perl setup. In fact, this is how I currently run libvirt-tck on the various libvirt packages SUSE maintains. I run a script that installs all the perl dependencies (and all the dependencies of the dependencies) from CPAN, clones libvirt-tck from git, patches it a bit, builds/installs it, and runs the tests.
      • Patched libvirt-tck to use SUSE guests (openSUSE12.3) in test domains created by the various libvirt-tck tests. Previously, the upstream default (fedora 19) was used. In most tests, guest OS type really doesn't matter. In fact, the guest OS might fail to boot, crash, etc., but the test still passes. E.g. testing libvirt's domain destroy operation does not require a functional OS running in the domain. But for some tests such as memory balloon, migration, filtering rules, etc., where a working guest OS is required, it would be better to use a SUSE OS to catch any potential driver issues and the like that may exist in the guest.

    • jfehlig
      almost 12 years ago by jfehlig | Reply

      Another item I forgot to add to the list above

      • Fixed several of the domain hook script tests to work with SUSE init scripts

    • mlatimer
      almost 12 years ago by mlatimer | Reply

      The build dependencies should all be resolved, but there are some runtime issues which are still being worked through. In order to avoid an especially painful perl dependency conflict in SLE11, I removed bunzip2 support. I don't think this will impact us much, but we may have to revisit this area in the future. The next big dependency chaos is with Net::SSH::Perl, which will likely be challenging in the SLE11 environment...

    Similar Projects

    QBoot - A handy QEMU VM launcher by amanzini

    Description

    QBoot is a command-line tool that wraps QEMU to provide a streamlined experience for launching virtual machines. It automatically configures common settings like KVM acceleration, virtio drivers, and networking while allowing customization through both configuration files and command-line options.

    The project originally was a personal utility in D, now recently rewritten in idiomatic Go. It lives at repository https://github.com/ilmanzo/qboot

    Goals

    Improve the project, testing with different scenarios , address issues and propose new features. It will benefit of some basic integration testing by providing small sample disk images.

    Resources


    A CLI for Harvester by mohamed.belgaied

    [comment]: # Harvester does not officially come with a CLI tool, the user is supposed to interact with Harvester mostly through the UI [comment]: # Though it is theoretically possible to use kubectl to interact with Harvester, the manipulation of Kubevirt YAML objects is absolutely not user friendly. [comment]: # Inspired by tools like multipass from Canonical to easily and rapidly create one of multiple VMs, I began the development of Harvester CLI. Currently, it works but Harvester CLI needs some love to be up-to-date with Harvester v1.0.2 and needs some bug fixes and improvements as well.

    Project Description

    Harvester CLI is a command line interface tool written in Go, designed to simplify interfacing with a Harvester cluster as a user. It is especially useful for testing purposes as you can easily and rapidly create VMs in Harvester by providing a simple command such as: harvester vm create my-vm --count 5 to create 5 VMs named my-vm-01 to my-vm-05.

    asciicast

    Harvester CLI is functional but needs a number of improvements: up-to-date functionality with Harvester v1.0.2 (some minor issues right now), modifying the default behaviour to create an opensuse VM instead of an ubuntu VM, solve some bugs, etc.

    Github Repo for Harvester CLI: https://github.com/belgaied2/harvester-cli

    Done in previous Hackweeks

    • Create a Github actions pipeline to automatically integrate Harvester CLI to Homebrew repositories: DONE
    • Automatically package Harvester CLI for OpenSUSE / Redhat RPMs or DEBs: DONE

    Goal for this Hackweek

    The goal for this Hackweek is to bring Harvester CLI up-to-speed with latest Harvester versions (v1.3.X and v1.4.X), and improve the code quality as well as implement some simple features and bug fixes.

    Some nice additions might be: * Improve handling of namespaced objects * Add features, such as network management or Load Balancer creation ? * Add more unit tests and, why not, e2e tests * Improve CI * Improve the overall code quality * Test the program and create issues for it

    Issue list is here: https://github.com/belgaied2/harvester-cli/issues

    Resources

    The project is written in Go, and using client-go the Kubernetes Go Client libraries to communicate with the Harvester API (which is Kubernetes in fact). Welcome contributions are:

    • Testing it and creating issues
    • Documentation
    • Go code improvement

    What you might learn

    Harvester CLI might be interesting to you if you want to learn more about:

    • GitHub Actions
    • Harvester as a SUSE Product
    • Go programming language
    • Kubernetes API