In several cases we were trying to define two different pools with
the same UUID. Libvirt used to accept that but as of a recent
commit it started rejecting it for the test driver.
The UUID stuff isn't adding anything so drop it from all the test
cases and data.
Fix all E125:
Continuation line with same indent as next logical line
Also remove ignore options of E125
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
In Python 2 comparison between int and None is allowed but in
Pyhton 3 it is not.
Example:
Pyhton 2
>>> None > 0
False
Python 3
>>> None > 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'NoneType' and 'int'
On a host system with keyboard configured to en-US, it was noticed
that virt-install created install XML with keymap='de'. The host
system did not have /etc/vconsole.conf, so /etc/sysconfig/keyboard
was the next file to check, which contained the following
KEYTABLE=""
Currently the parsing code does not ignore comments and incorrectly
parsed a 'de' keymap. Fix by ignoring any lines that start with '#'
after trimming whitespace.
libvirt supports guest CPU cache by commit df13c0b, So add this feature
to virt-install to configure cpu L3 cache mode.
Currently, The valid values are 'passthrough', 'emulate' or 'disable'.
say:
--cpu host-passthrough,cache.mode=passthrough
or
--cpu $CPU,cache.mode=emulate,cache.level=3
or
--cpu $CPU,cache.mode=disable
Signed-off-by: Lin Ma <lma@suse.com>
Using "listens.*" allows better configuration of listen elements for
graphics devices. Currently the only way how to configure a listen
type is to abuse "listen" parameter and there is no way how to configure
exact "network".
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
The default port and tlsPort should be configured only if no listen
type was specified or the listen type is "address" or "network".
For other listen types the port and tlsPort doesn't make sense.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
There are multiple models of the panic device, the address type is only
one and is valid only for "isa" model.
To not break the virt-install/virt-xml the command line parser needs to
be updated. Before this patch there was only one parameter that
configured the "iobase". Now the first parameter configures a model
but to keep it backward compatible it follows these rules:
1. there is only one parameter and it matches known model:
--panic isa
<panic model='isa'>
<address iobase='0x505' type='isa'/>
</panic>
2. there is only one parameter and it doesn't match any model:
--panic 0x505
<panic model='isa'>
<address iobase='0x505' type='isa'/>
</panic>
3. there are two parameters:
--panic isa,iobase=0x505
<panic model='isa'>
<address iobase='0x505' type='isa'/>
</panic>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Have the internal polling functions not touch the connection cache.
This let's us not worry about the connection cache in the test suite,
where clear_cache wasn't 100% correct.
We need to quote URL values in the username, that's what libvirt expects.
Unquote the values before caching them in the URI object, so console
connections continue to work
https://bugzilla.redhat.com/show_bug.cgi?id=1452389
If we detect that the UEFI image is build to require SMM feature we
should configure the guest to enable SMM feature and set q35 machine
type. Without this user wouldn't be able to boot the guest.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1387479
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This element controls hot(un)plugable memory for the guest in
addition to the initial memory configured by <memory> element.
One has to configure <maxMemory> and guest numa nodes using <numa>
element to enable hot(un)plug of memory modules.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Similar to what we do with libvirt. Was never really relevant before,
but some of the namespace XML stuff can be a bit noisy even though it
doesn't have any functional impact that I can tell
Since we only attempt to add a default USB controller for x86, match
it by only trying to add redir devices on x86 as well. Fixes a uitests
failure for ppc testing, since the test:/// driver doesn't add an
implied USB controller, and libvirt now validates that one was provided.
Currently we hardcode these defaults for installing VMs:
<on_poweroff>destroy</on_poweroff>
<on_reboot>destroy</on_reboot>
<on_crash>destroy</on_crash>
And these for post-install config:
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
But this has some issues. on_crash=restart is problematic in that most
configs don't support it, and some like virtuozzo actively reject it.
Additionally this we should leave as much to libvirt defaults as we
can, which are more sensible in this case.
Drop everything except setting on_reboot=destroy for the install time
case (which is required for our config changes). Since on_poweroff
and on_crash already default to 'destroy', the install time config
is unchanged, and the post-install config now on_crash=destroy instead
of 'restart'.
The s390 on_crash=preserve workaround is dropped, which was intended
to avoid a reboot loop caused by on_crash=reboot
drm capability has been proposed for libvirt 3.1, it provide Direct
Rendering Manager (DRM) devices.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
<devnode> have been proposed for libvirt 3.1, it provides device /dev/
path when available.
The get_devnode() helper will return the by-path/ path preferably, as
they should be stable.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Add support to interface type 'vhostuser' by:
--network vhostuser,source_type=unix,source_path=/tmp/vhost1.sock,source_mode=server,model=virtio
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
When virt-clone is used without autoclone or destination file, libvirt
errors with message "ERROR missing source information for device vda".
This doesn't convey what is missing. This patch will indicate which
options to use.
Signed-off-by: Kothapally Madhu Pavan <kmp@linux.vnet.ibm.com>
If this flag is specified, --import|--boot will create a transient
libvirt domain, ie. one which goes away when the guest shuts down or
the host is rebooted.
(crobinso: some tweaks and tests)
continue_install is intended to facilitate windows XP style 3 stage
installs:
stage 1: initial dos style disk setup, reboot
stage 2: actual full installer, reboot
stage 3: OS is functional, virt-install is done
The code assumed that we needed to keep the cdrom as the primary
boot device for the second stage, so virt-install/virt-manager needed
to hang around through the second stage run, wait until the VM shutdown,
then encode the final XML to boot of the disk.
Windows is and always has been smart enough to handle that case though...
after the initial boot, if we set the hd as the primary boot device
for stage 2, the disk bits that windows already installed will make
use of the cdrom as necessary. So the entire premise of continue_install
is irrelevant. Maybe back when it was added, when xen didn't even have
working ACPI support, this served a purpose, but I'm pretty sure we
can safely drop it nowadays.
Current libosinfo release on fedora23 and centos7
didn't know fedora23.
Change --os-variant fedora22 as a workaroud.
df1c3e74a introduce this issue.
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
This is required in order to ask for correct domcapabilities. If you don't
specify any machine libvirt will return domcapabilities for default machine
which is xenpv.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
There want be 1.3.6 version, libvirt switched to new release numbering, for more
information see <http://libvirt.org/downloads.html#numbering>.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This adds support for setting VirtualDisk <seclabel> XML. This
invents a new command line scheme for cases like this where there
are possibly multiple child elements that we want to specify
on the command line. So if you just want to specify one <seclabel>
block, you can do the expected
--disk ...,seclabel.model=dac,relabel=no
However if you want to specify 2 <seclabel> blocks you need to do:
--disk ...,seclabel0.model=dac,seclabel0.relabel=no,seclabel1.model=selinux,seclabel1.relabel=no
We register the VirtCLIArgument classes with the static parse
instructions, but instantiate it with the actual key=val pair
from the command line. This fixes some layering violations, and
gives callers access to the actual command line key that we
are parsing, if that's interesting.
disk devices don't have a full <seclabel> under their <source>
element, just a smaller one with only a few options. Fix things
to match what libvirt does
This is the new style socket support, where we request libvirt to
allocate a socket path for us. Plus this is the only way to enable
socket support for type=spice
This exposes every device <address> option, for each device
cli option. So --disk, --network, --video, etc.
Fill out a few more address XML bits as well
So you can do "python setup.py --only many-devices' to only run the
clitest compare tests that output their results to files with
"many-devices" in the name
Commit f6322c9e changed the default bus type for disks to virtio.
That changed it for both disks and cdroms. The CD-ROMs dont work
if on virtio on pSeries. So, change the cdrom bus type to scsi as
before.
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
Extend virt-install-ppc64-pseries-f20 test to cover this case.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This gives friendly XML output via virt-xml for clearxml=yes +
extra options: the XML block is editted in place, rather than removed
and with the newchanges appended
Add a special listen value to disable any extra display server listening
socket. This is necessary now that qemu prevents starting a spice+virgl
VM with listening sockets (until spice allows remoting with virgl).
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
We need to bump the gtk dep to at least 3.10 for GtkRevealer usage,
and I want to bump the pygobject higher to drop some bug workarounds.
But since the oldest thing I have that meets those requirements is
RHEL/Centos 7.3 which is at 3.14 for both, set those as the minimum
versions since that's what I'll be testing against. They are still
1.5 years old and only a bit over a year newer than the previous
versions, so it's not a huge change.
When booting from empty disk image or none bootdev, its leads
system IPL enter into infinite loop with message on s390x.
This patch sets preserve when on_crash to avoid the loop
Signed-off-by: Leno Hou <lenohou@gmail.com>
pSeries doesn't support ide and so was changed to use the scsi. virtio works
better on pSeries with better performance outcomes. Change the default to
virtio for disks
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
os_variant=linux is basically meaningless; it doesn't set any useful
defaults. better to be explicit that we didn't detect any meaningful
os_variant, to trigger the virt-install warning
So far we used only the last --extra-args argument from virt-install
command line, but it makes more sense to use all occurrences of
--extra-args and pass them to kernel.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Use virtio+accel3d by default whenever spice+gl is chosen. This allows
to easily set up accelerated gpu VM.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Add a --graphics option to enable accelarated rendering using
OpenGl. This is used only by Spice (and for local only guests atm).
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
In libvirt commit 36785c7e775f3 the input devices are no longer
added by default in XML parsing phase rather than on domain
startup. However, we are not starting a domain just merely
playing around with its definition. Therefore we should adjust
expected outputs.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Libvirt started to put type='raw' by default for rbd volumes, which
changes our generated XML. Limit the test to only libvirt that supports
that check.
The test consists of translating VMX configuration into domain
XML and converting disks. Cool. But the disk is zipped in a file
and the test tries to string match unzipping command. Problem is,
the absolute path is passed to the unzip command which makes it
impossible for the test to succeed on other hosts.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(crobinso: fix whitespace)
Because some of distributions dont provide the unar (universal archiver),
Using more common archivers to replace it.
Signed-off-by: Lin Ma <lma@suse.com>
(crobinso: adjust test suite)
Originally we didn't add this since arm vexpress virtio only had 4
virtio-mmio slots. But the now-common -M virt target has 32 slots,
so we aren't starved.
For many years virt-install has supported a bit of logic that maps
--cpuset=auto to a CPU pinning based on host NUMA topology; we look
for a NUMA node who's current free memory is closest to the requested
memory allocation. This isn't very useful though, since it's a one time
allocation, the conditions at VM creation time likely aren't the
conditions of the machine in the future.
Libvirt has supported a smarter option in vcpu placement=auto for a long
while, which will perform a similar operation but at every VM startup.
Convert cpuset=auto to use this functionality instead.
Add console target "sclp" for s390x ,since the newest Distro guests has
supported the console target, solve some console issues in s390x.Also
modified the test xml cover this change.
crobinso: fix the test suite output
Since the qemu 2.4 has supported the watchdog device diag288
for s390x,so add it in the optional model list. Also modefied
the clitest xml to cover this change.
Add a capatilities xml file for s390x ,the capatility for IBM
Distro called KVMIBM,mainly focus on a KVM hypervious on S390x.
Also add a clitest by using virt-install.
According to xen documentation 64bit guest has to have pae enabled in
order to be able to run 64bit OS.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1267160
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Commit 3a33f341 fixed an issue, where we should remove source path for
unix channel in order to let libvirt generate new one. Add a test case
to cover this change.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Added cli option to specify on_lockfailure in events.
Also, added various testcases and related output XMLs.
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(crobinso: add clitest.py example)
Following some discussion here:
https://bugzilla.redhat.com/show_bug.cgi?id=1171550
jfehlig suggested better defaults for modern xen. End result is:
- Drop the blktap check, since it's deprecated (yaay)
- If xen + block device, use driver_name=phy
- Otherwise if on modern enough libvirt + libxl, do the same thing we
do for qemu.
libvirt qemu default's to accessmode=passthrough, which really only
works correctly when qemu is run as root, which isn't common for libvirt
nowadays. So use accessmode=mapped which has a better chance of working