virt-manager/a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
Charles Arnold 2d558399a0 - 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

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=465
2019-04-03 17:16:11 +00:00

64 lines
2.4 KiB
Diff

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 <crobinso@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
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