Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2019-04-04 12:08:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
and /work/SRC/openSUSE:Factory/.virt-manager.new.3908 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager"
Thu Apr 4 12:08:05 2019 rev:193 rq:691298 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2019-03-28 22:48:56.351051997 +0100
+++ /work/SRC/openSUSE:Factory/.virt-manager.new.3908/virt-manager.changes 2019-04-04 12:08:15.297392180 +0200
@@ -1,0 +2,15 @@
+Wed Apr 3 11:08:16 MDT 2019 - carnold@suse.com
+
+- Upstream bug fixes (bsc#1027942)
+ 57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
+ 26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
+ 4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
+ a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
+ 1856c1fa-support-Fix-minimum-version-check.patch
+ 74bbc3db-urldetect-Check-also-for-treeinfo.patch
+ 708af01c-osdict-Add-supports_virtioinput.patch
+ f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
+ 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
+ a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
+
+-------------------------------------------------------------------
New:
----
1856c1fa-support-Fix-minimum-version-check.patch
26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
708af01c-osdict-Add-supports_virtioinput.patch
74bbc3db-urldetect-Check-also-for-treeinfo.patch
7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.AfOP4B/_old 2019-04-04 12:08:17.665389935 +0200
+++ /var/tmp/diff_new_pack.AfOP4B/_new 2019-04-04 12:08:17.669389931 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -35,8 +35,18 @@
Patch1: f7508d02-addhardware-Fix-setting-optimal-default-net-model.patch
Patch2: 1018ab44-inspection-handle-failures-in-application-listing.patch
Patch3: ae8a4f3d-engine-Fix-first-run-startup-error.patch
-Patch4: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
-Patch5: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
+Patch4: 57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch
+Patch5: 26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch
+Patch6: 4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
+Patch7: a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
+Patch8: 1856c1fa-support-Fix-minimum-version-check.patch
+Patch9: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
+Patch10: 74bbc3db-urldetect-Check-also-for-treeinfo.patch
+Patch11: 708af01c-osdict-Add-supports_virtioinput.patch
+Patch12: f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
+Patch13: 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
+Patch14: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
+Patch15: a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
# SUSE Only
Patch70: virtman-desktop.patch
Patch71: virtman-kvm.patch
@@ -170,6 +180,16 @@
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
# SUSE Only
%patch70 -p1
%patch71 -p1
++++++ 1856c1fa-support-Fix-minimum-version-check.patch ++++++
Subject: support: Fix minimum version check
From: Cole Robinson crobinso@redhat.com Wed Mar 6 13:05:47 2019 -0500
Date: Wed Mar 6 13:06:54 2019 -0500:
Git: 1856c1fa6501c7d37d360377937a82cfa2d1cd20
The original code for this was about version 0.7.3, but a refactor
accidentally changed it to 0.7.9 which is a libvirt version that
doesn't exist. Fix it
diff --git a/virtinst/support.py b/virtinst/support.py
index 0f0f6104..fabcfe7d 100644
--- a/virtinst/support.py
+++ b/virtinst/support.py
@@ -131,7 +131,7 @@ class _SupportCheck(object):
for an 'unsupported' error from libvirt.
@flag: A flag to check exists. This will be appended to the argument
- list if run_args are provided, otherwise we will only check against
+ :list if run_args are provided, otherwise we will only check against
that the flag is present in the python bindings.
@hv_version: A dictionary with hypervisor names for keys, and
@@ -157,9 +157,9 @@ class _SupportCheck(object):
versions = ([self.version] + list(self.hv_libvirt_version.values()))
for vstr in versions:
v = _version_str_to_int(vstr)
- if vstr is not None and v != 0 and v < 7009:
+ if vstr is not None and v != 0 and v < 7003:
raise RuntimeError("programming error: Cannot enforce "
- "support checks for libvirt versions less than 0.7.9, "
+ "support checks for libvirt versions less than 0.7.3, "
"since required APIs were not available. ver=%s" % vstr)
def check_support(self, conn, data):
++++++ 26a433fc-virtManager-clone-check-which-storage-pools-supports-volume-cloning.patch ++++++
Subject: virtManager: clone: check which storage pools supports volume cloning
From: Pavel Hrdina phrdina@redhat.com Thu Feb 28 11:47:40 2019 +0100
Date: Mon Mar 4 13:23:45 2019 +0100:
Git: 26a433fc421b7c23e02deb8fe84cdedc21fd8f95
When cloning a guest in virt-manager the GUI shows a list of disks and
select default cloning policy for every disk. For storage pools where
we know that cloning is not possible we should not select that option
as default one.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1463066
Reviewed-by: Cole Robinson
Signed-off-by: Pavel Hrdina
diff --git a/virtManager/clone.py b/virtManager/clone.py
index 895d258a..4148fca0 100644
--- a/virtManager/clone.py
+++ b/virtManager/clone.py
@@ -64,6 +64,11 @@ def can_we_clone(conn, vol, path):
elif not os.path.exists(path):
msg = _("Path does not exist.")
+ else:
+ pool = vol.get_parent_pool()
+ if not pool.supports_volume_creation(clone=True):
+ msg = _("Cannot clone %s storage pool.") % pool.get_type()
+
if msg:
ret = False
@@ -94,12 +99,8 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
if vol:
pool_type = vol.get_parent_pool().get_type()
- if pool_type == virtinst.StoragePool.TYPE_SCSI:
- info = append_str(info, _("SCSI device"))
- elif pool_type == virtinst.StoragePool.TYPE_DISK:
+ if pool_type == virtinst.StoragePool.TYPE_DISK:
info = append_str(info, _("Disk device"))
- elif pool_type == virtinst.StoragePool.TYPE_ISCSI:
- info = append_str(info, _("iSCSI share"))
if shared:
info = append_str(info, _("Shareable"))
diff --git a/virtManager/storagepool.py b/virtManager/storagepool.py
index bf79b161..d0d26cc2 100644
--- a/virtManager/storagepool.py
+++ b/virtManager/storagepool.py
@@ -238,8 +238,8 @@ class vmmStoragePool(vmmLibvirtObject):
def can_change_alloc(self):
typ = self.get_type()
return (typ in [StoragePool.TYPE_LOGICAL, StoragePool.TYPE_ZFS])
- def supports_volume_creation(self):
- return self.get_xmlobj().supports_volume_creation()
+ def supports_volume_creation(self, clone=False):
+ return self.get_xmlobj().supports_volume_creation(clone=clone)
def get_type(self):
return self.get_xmlobj().type
diff --git a/virtinst/storage.py b/virtinst/storage.py
index 5781e4a7..3249c454 100644
--- a/virtinst/storage.py
+++ b/virtinst/storage.py
@@ -395,13 +395,25 @@ class StoragePool(_StorageObject):
return self.type in users[propname]
return hasattr(self, propname)
- def supports_volume_creation(self):
- return self.type in [
- StoragePool.TYPE_DIR, StoragePool.TYPE_FS,
- StoragePool.TYPE_NETFS, StoragePool.TYPE_LOGICAL,
+ def supports_volume_creation(self, clone=False):
+ """
+ Returns if pool supports volume creation. If @clone is set to True
+ returns if pool supports volume cloning (virVolCreateXMLFrom).
+ """
+ supported = [
+ StoragePool.TYPE_DIR,
+ StoragePool.TYPE_FS,
+ StoragePool.TYPE_NETFS,
StoragePool.TYPE_DISK,
- StoragePool.TYPE_RBD, StoragePool.TYPE_SHEEPDOG,
- StoragePool.TYPE_ZFS]
+ StoragePool.TYPE_LOGICAL,
+ StoragePool.TYPE_RBD,
+ ]
+ if not clone:
+ supported.extend([
+ StoragePool.TYPE_SHEEPDOG,
+ StoragePool.TYPE_ZFS,
+ ])
+ return self.type in supported
def get_disk_type(self):
if (self.type == StoragePool.TYPE_DISK or
++++++ 4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch ++++++
Subject: cloner: Handle --nonsparse for qcow2 images (bz 1675743)
From: Cole Robinson crobinso@redhat.com Mon Mar 4 13:20:51 2019 -0500
Date: Mon Mar 4 14:04:34 2019 -0500:
Git: 4f66c423f7833e270b61536d53a0772ce1242abc
https://bugzilla.redhat.com/show_bug.cgi?id=1675743
diff --git a/tests/clone-xml/cross-pool-disks-out.xml b/tests/clone-xml/cross-pool-disks-out.xml
index 260f321c..6093e240 100644
--- a/tests/clone-xml/cross-pool-disks-out.xml
+++ b/tests/clone-xml/cross-pool-disks-out.xml
@@ -1,7 +1,7 @@
<volume>
<name>new1.img</name>
<capacity>1000000</capacity>
- <allocation>50000</allocation>
+ <allocation>1000000</allocation>
<target>
<format type="qcow2"/>
<features>
@@ -12,7 +12,7 @@
<volume>
<name>new2.img</name>
<capacity>1000000</capacity>
- <allocation>50000</allocation>
+ <allocation>1000000</allocation>
<target>
<format type="qcow2"/>
<features>
diff --git a/virtinst/cloner.py b/virtinst/cloner.py
index ba89a26f..b29027e3 100644
--- a/virtinst/cloner.py
+++ b/virtinst/cloner.py
@@ -330,6 +330,8 @@ class Cloner(object):
vol_install.input_vol = orig_disk.get_vol_object()
vol_install.sync_input_vol(only_format=True)
+ if self.clone_sparse:
+ vol_install.allocation = vol_install.capacity
vol_install.reflink = self.reflink
clone_disk.set_vol_install(vol_install)
elif orig_disk.path:
diff --git a/virtinst/storage.py b/virtinst/storage.py
index 3249c454..2e92c5d6 100644
--- a/virtinst/storage.py
+++ b/virtinst/storage.py
@@ -744,6 +744,10 @@ class StorageVolume(_StorageObject):
self.conn.check_support(
self.conn.SUPPORT_POOL_METADATA_PREALLOC, self.pool)):
createflags |= libvirt.VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA
+ if self.capacity == self.allocation:
+ # For cloning, this flag will make libvirt+qemu-img preallocate
+ # the new disk image
+ cloneflags |= libvirt.VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA
if self.reflink:
cloneflags |= getattr(libvirt,
++++++ 57db4185-virt-clone-fix-force-copy-of-empty-cdrom-or-floppy-disk.patch ++++++
Subject: virt-clone: fix force-copy of empty cdrom or floppy disk
From: Pavel Hrdina phrdina@redhat.com Thu Feb 28 17:53:58 2019 +0100
Date: Thu Feb 28 18:05:31 2019 +0100:
Git: 57db41854c86704af331d283810db0d86786825a
There is nothing to copy so don't try to generate new path.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1564863
Signed-off-by: Pavel Hrdina
Index: virt-manager-2.1.0/tests/clitest.py
===================================================================
--- virt-manager-2.1.0.orig/tests/clitest.py
+++ virt-manager-2.1.0/tests/clitest.py
@@ -1047,6 +1047,7 @@ c.add_invalid("--original-xml " + _CLONE
c.add_invalid("--original-xml " + _CLONE_UNMANAGED + " --file %(NEWCLONEIMG1)s --file %(NEWCLONEIMG2)s --force-copy=hdc") # XML w/ disks, force copy but not enough disks passed
c.add_invalid("--original-xml " + _CLONE_MANAGED + " --file /tmp/clonevol") # XML w/ managed storage, specify unmanaged path (should fail)
c.add_invalid("--original-xml " + _CLONE_NOEXIST + " --file %(EXISTIMG1)s") # XML w/ non-existent storage, WITHOUT --preserve
+c.add_valid("--original-xml " + _CLONE_MANAGED + " --auto-clone --force-copy fda") # force copy empty floppy drive
Index: virt-manager-2.1.0/virt-clone
===================================================================
--- virt-manager-2.1.0.orig/virt-clone
+++ virt-manager-2.1.0/virt-clone
@@ -67,11 +67,10 @@ def get_clone_diskfile(new_diskfiles, de
new_diskfiles.append(None)
newpath = new_diskfiles[newidx]
- if newpath is None and auto_clone:
- newpath = design.generate_clone_disk_path(origpath)
-
if origpath is None:
newpath = None
+ elif newpath is None and auto_clone:
+ newpath = design.generate_clone_disk_path(origpath)
clonepaths.append(newpath)
newidx += 1
++++++ 708af01c-osdict-Add-supports_virtioinput.patch ++++++
Subject: osdict: Add supports_virtioinput()
From: Andrea Bolognani abologna@redhat.com Wed Mar 20 16:52:34 2019 +0100
Date: Thu Mar 21 15:31:20 2019 +0100:
Git: 708af01c145dcaf5146901d18e22d1da61e09444
We can use this function to figure out whether the guest OS
supports VirtIO input devices (virtio-tablet, virtio-keyboard
and virtio-mouse).
Signed-off-by: Andrea Bolognani
Index: virt-manager-2.1.0/virtinst/osdict.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/osdict.py
+++ virt-manager-2.1.0/virtinst/osdict.py
@@ -390,6 +390,11 @@ class _OsVariant(object):
# Remove this hack after 6 months or so
return self._is_related_to("rhel6.0")
+ def supports_virtioinput(self):
+ # virtio1.0-input
+ devids = ["http://pcisig.com/pci/1af4/1052"]
+ return bool(self._device_filter(devids=devids))
+
def supports_usb3(self):
# qemu-xhci
devids = ["http://pcisig.com/pci/1b36/0004"]
++++++ 74bbc3db-urldetect-Check-also-for-treeinfo.patch ++++++
Subject: urldetect: Check also for 'treeinfo' (bz 1689252)
From: Cole Robinson crobinso@redhat.com Mon Mar 18 14:22:25 2019 -0400
Date: Mon Mar 18 14:24:07 2019 -0400:
Git: 74bbc3db15d5e9a1b4d21c276f7d3f435b83d2fd
Trees published to akamai CDN via Red Hat Satellite can't have .dotfiles
in them. More details here:
https://bugzilla.redhat.com/show_bug.cgi?id=635065
So we also need to check for .treeinfo. Anaconda does this too so it's
a long known issue.
https://bugzilla.redhat.com/show_bug.cgi?id=1689252
diff --git a/virtinst/urldetect.py b/virtinst/urldetect.py
index 3033e6ea..4d301ef3 100644
--- a/virtinst/urldetect.py
+++ b/virtinst/urldetect.py
@@ -48,7 +48,16 @@ class _DistroCache(object):
if self._treeinfo:
return self._treeinfo
- treeinfostr = self.acquire_file_content(".treeinfo")
+ # Vast majority of trees here use .treeinfo. However, trees via
+ # Red Hat satellite on akamai CDN will use treeinfo, because akamai
+ # doesn't do dotfiles apparently:
+ #
+ # https://bugzilla.redhat.com/show_bug.cgi?id=635065
+ #
+ # Anaconda is the canonical treeinfo consumer and they check for both
+ # locations, so we need to do the same
+ treeinfostr = (self.acquire_file_content(".treeinfo") or
+ self.acquire_file_content("treeinfo"))
if treeinfostr is None:
return None
++++++ 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch ++++++
Subject: virt-xml: Handle VM names that look like id/uuid (bz 1679025)
From: Cole Robinson crobinso@redhat.com Thu Mar 21 13:34:52 2019 -0400
Date: Thu Mar 21 13:45:58 2019 -0400:
Git: 7afbb90b4ddfa449e4efc2d57e726d477f96637b
Previously we assume they are id/uuid, so if it's actually the VM
name then the command fails. Now we always check for a name first,
https://bugzilla.redhat.com/show_bug.cgi?id=1679025
Index: virt-manager-2.1.0/tests/clitest.py
===================================================================
--- virt-manager-2.1.0.orig/tests/clitest.py
+++ virt-manager-2.1.0/tests/clitest.py
@@ -908,8 +908,8 @@ c.add_compare("--build-xml --cpu pentium
c.add_compare("--build-xml --tpm /dev/tpm", "build-tpm")
c.add_compare("--build-xml --blkiotune weight=100,device_path=/dev/sdf,device_weight=200", "build-blkiotune")
c.add_compare("--build-xml --idmap uid_start=0,uid_target=1000,uid_count=10,gid_start=0,gid_target=1000,gid_count=10", "build-idmap")
-c.add_compare("test --edit --boot network,cdrom", "edit-bootorder")
-c.add_compare("--confirm test --edit --cpu host-passthrough", "prompt-response")
+c.add_compare("4a64cc71-19c4-2fd0-2323-3050941ea3c3 --edit --boot network,cdrom", "edit-bootorder") # basic bootorder test, also using UUID lookup
+c.add_compare("--confirm 1 --edit --cpu host-passthrough", "prompt-response") # prompt response, also using domid lookup
c.add_compare("--edit --print-diff --qemu-commandline clearxml=yes", "edit-clearxml-qemu-commandline", input_file=(XMLDIR + "/virtxml-qemu-commandline-clear.xml"))
c.add_compare("--connect %(URI-KVM)s test-hyperv-uefi --edit --boot uefi", "hyperv-uefi-collision")
Index: virt-manager-2.1.0/virt-xml
===================================================================
--- virt-manager-2.1.0.orig/virt-xml
+++ virt-manager-2.1.0/virt-xml
@@ -73,12 +73,18 @@ def get_domain_and_guest(conn, domstr):
isuuid = bool(re.match(uuidre, domstr))
try:
- if isint:
- domain = conn.lookupByID(int(domstr))
- elif isuuid:
- domain = conn.lookupByUUIDString(domstr)
- else:
+ domain = None
+ try:
domain = conn.lookupByName(domstr)
+ except Exception:
+ # Incase the VM has a UUID or ID for a name
+ logging.debug("Error looking up domain by name", exc_info=True)
+ if isint:
+ domain = conn.lookupByID(int(domstr))
+ elif isuuid:
+ domain = conn.lookupByUUIDString(domstr)
+ else:
+ raise
except libvirt.libvirtError as e:
fail(_("Could not find domain '%s': %s") % (domstr, e))
++++++ a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch ++++++
Subject: virtManager: clone: build default clone path if we know how
From: Pavel Hrdina phrdina@redhat.com Tue Mar 5 10:16:06 2019 +0100
Date: Wed Mar 6 17:19:00 2019 +0100:
Git: a02fc0d02272ade8aea851be4e0f7c7ec38de2fe
Function do_we_default returns only if we want to default to clone disk
even if we know how to create default clone path. Only in case that the
storage pool is TYPE_DISK we don't know how to create default path and
we cannot default to clone that disk. In all other cases as ReadOnly
disk or Shareable and so on we can prepare the default path for user if
they decide to clone it.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1565106
Reviewed-by: Cole Robinson
Signed-off-by: Pavel Hrdina
diff --git a/virtManager/clone.py b/virtManager/clone.py
index 4148fca0..1adc59c9 100644
--- a/virtManager/clone.py
+++ b/virtManager/clone.py
@@ -79,6 +79,7 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
""" Returns (do we clone by default?, info string if not)"""
ignore = conn
info = ""
+ can_default = True
def append_str(str1, str2, delim=", "):
if not str2:
@@ -101,11 +102,12 @@ def do_we_default(conn, vol, path, ro, shared, devtype):
pool_type = vol.get_parent_pool().get_type()
if pool_type == virtinst.StoragePool.TYPE_DISK:
info = append_str(info, _("Disk device"))
+ can_default = False
if shared:
info = append_str(info, _("Shareable"))
- return (not info, info)
+ return (not info, info, can_default)
class vmmCloneVM(vmmGObjectUI):
@@ -390,8 +392,8 @@ class vmmCloneVM(vmmGObjectUI):
skip_targets.remove(force_target)
vol = self.conn.get_vol_by_path(path)
- default, definfo = do_we_default(self.conn, vol, path, ro, shared,
- devtype)
+ default, definfo, can_default = do_we_default(self.conn, vol, path,
+ ro, shared, devtype)
def storage_add(failinfo=None):
# pylint: disable=cell-var-from-loop
@@ -426,7 +428,7 @@ class vmmCloneVM(vmmGObjectUI):
storage_row[STORAGE_INFO_CAN_CLONE] = True
# If we cannot create default clone_path don't even try to do that
- if not default:
+ if not can_default:
storage_add()
continue
++++++ a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch ++++++
Subject: cli: Fix pool=default when path belongs to another pool (bz 1692489)
From: Cole Robinson crobinso@redhat.com Tue Mar 26 10:44:58 2019 -0400
Date: Tue Mar 26 11:15:46 2019 -0400:
Git: a0ca387aad0fde19683aa8b5b5636add6455b8b4
Using 'virt-install --disk size=X' implicitly uses pool=default. If
a pool named 'default' exists we use that; if not, and a pool using
the default path exists under a different name, we attempt to use
that as well, and if that doesn't exist, we create pool=default
The second case is broken, so if there's no pool=default and eg.
pool=FOO points to /var/lib/libvirt/images, we still attempt to
look up pool=default which understandably fails
https://bugzilla.redhat.com/show_bug.cgi?id=1692489
Index: virt-manager-2.1.0/virtinst/cli.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/cli.py
+++ virt-manager-2.1.0/virtinst/cli.py
@@ -2263,7 +2263,9 @@ class ParserDisk(VirtCLIParser):
poolobj = None
if poolname:
if poolname == "default":
- StoragePool.build_default_pool(self.guest.conn)
+ poolxml = StoragePool.build_default_pool(self.guest.conn)
+ if poolxml:
+ poolname = poolxml.name
poolobj = self.guest.conn.storagePoolLookupByName(poolname)
if volname:
++++++ f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch ++++++
Subject: guest: Add VirtIO input devices to s390x guests with graphics
From: Andrea Bolognani abologna@redhat.com Wed Mar 20 16:52:35 2019 +0100
Date: Thu Mar 21 15:31:20 2019 +0100:
Git: f23b01be53aa8b5b8d91aadbfb0c06268fa5c7b9
We're not including any input devices in the generated XML
for s390x guests, and the results is that it's not possible
to interact with them short of using the serial console or
connecting through ssh, which is fine but probably not what
is expected when graphics are present.
USB input devices are not a good fit for s390x guests: USB
requires PCI, and PCI is not widely available or used on
s390x; VirtIO devices, on the other hand, are a perfect
match since s390x guests use basically no emulated devices
and rely on VirtIO for most functionality.
https://bugzilla.redhat.com/show_bug.cgi?id=1683609
Signed-off-by: Andrea Bolognani
Index: virt-manager-2.1.0/virtinst/guest.py
===================================================================
--- virt-manager-2.1.0.orig/virtinst/guest.py
+++ virt-manager-2.1.0/virtinst/guest.py
@@ -588,6 +588,17 @@ class Guest(XMLBuilder):
dev.bus = "usb"
self.add_device(dev)
+ # s390x guests need VirtIO input devices
+ if self.os.is_s390x() and self.osinfo.supports_virtioinput():
+ dev = DeviceInput(self.conn)
+ dev.type = "tablet"
+ dev.bus = "virtio"
+ self.add_device(dev)
+ dev = DeviceInput(self.conn)
+ dev.type = "keyboard"
+ dev.bus = "virtio"
+ self.add_device(dev)
+
def _add_default_console_device(self):
if self.skip_default_console:
return