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 - [email protected]
+
+- 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 [email protected] 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 [email protected] 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 <[email protected]>
Signed-off-by: Pavel Hrdina <[email protected]>

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 [email protected] 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 [email protected] 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 <[email protected]>

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 [email protected] 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 <[email protected]>

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 [email protected] 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 [email protected] 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 [email protected] 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 <[email protected]>
Signed-off-by: Pavel Hrdina <[email protected]>

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 [email protected] 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 [email protected] 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 <[email protected]>

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

Reply via email to