virt: Introducing virt_v2v module

With this module, we will be able to implement a virt-v2v test.

As of implementation details, we uses virt-v2v command line tool
to convert an existing VM into libvirt-managed KVM, or an open
manageable virtualized environment - oVirt.

Signed-off-by: Alex Jia <ajia@redhat.com>
Signed-off-by: Wayne Sun <gsun@redhat.com>
virt: Introducing virt_v2v_utils module

It's a common virt-v2v test assistant module, which provides some
necessary class/functions with virt-v2v testing.

Signed-off-by: Alex Jia <ajia@redhat.com>
Signed-off-by: Wayne Sun <gsun@redhat.com>
virt: Introducing ovirt module

With this module, we able to use SDK for the oVirt engine API to
manipulate resources in oVirt such as Data Centers, Clusters,
Hosts, Storage Domains, VMs, etc.

At present, we haven't cover everything into our oVirt module, which
only includes some necessary API implementation for virt-v2v requirement.

However, it's very easy to extend new functions to support oVirt autotest
in the future.

Signed-off-by: Alex Jia <ajia@redhat.com>
Signed-off-by: Wayne Sun <gsun@redhat.com>
virt: Add new virsh wrapper functions into libvirt_vm

Reuse previous libvirt_vm module and add new virsh pool functions, and then
we can create/check a libvirt pool via these functions and use virt-v2v to
convert an existing VM into the pool later.

Signed-off-by: Alex Jia <ajia@redhat.com>
tests: Add a new pool creation test case

With this test cases, we can create and verity a libvirt pool, and virt-v2v
also may reuse the test case to build a pool for converting later.

Signed-off-by: Alex Jia <ajia@redhat.com>
Support ovirt-engine-sdk build

client/tests/virt_v2v/tests/install.py: add install module to support ovirt-engine-sdk build.
client/virt/base_installer.py: add some flags to allow caller ignore some unnecessary steps
                               for building ovirt-engine-sdk.

Signed-off-by: Alex Jia <ajia@redhat.com>
virt.virt_env_process: Add ovirt vm handling

With this patch, we make ovirt vm handling integrating to pre/postprocessing code,
making it possible the execution of a virt-v2v/ovirt test. And introduce a new
virtualization type 'virt_v2v'.

Note that, it's different with kvm/libvirt-autotest, the vm exists on other host
and don't need to start/install, so you need to set 'start_vm = no' in base.cfg.

Signed-off-by: Alex Jia <ajia@redhat.com>
virt.virt_env_process: Support remotely run tcpdump

With the patch, we can get VM IP via tcpdump on a remote host.

As usual, virt-v2v will convert/import an existing VM into ovirt-node
then we need to get VM IP on the ovirt-node, so it's necessary to
remotely run tcpdump to get VM IP.

Signed-off-by: Wayne Sun <gsun@redhat.com>
client.tests: Introducing virt-v2v test

Introduce virt-v2v test. The small amount of actual code on this test is made
possible by code reuse, made possible by the kvm/libvirt refactor patchset + the
previous patches on this set.

The obvious difference is that some new parameters had to be introduced to
accomplish virt-v2v testing. A more complete description of such parameters will
be present on our online documentation (wiki) later.

Signed-off-by: Alex Jia <ajia@redhat.com>
client.tests: add test cases for automatically converting vm

These cases are quite simple, but they will assist users to understand
how does virt-v2v-autotest work and how to write a simple case for
virt-v2v or ovirt.

Signed-off-by: Alex Jia <ajia@redhat.com>
Signed-off-by: Wayne Sun <gsun@redhat.com>
gitignore: Update ignores for virt-v2v tests

Signed-off-by: Alex Jia <ajia@redhat.com>