2d558399a0
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
64 lines
2.4 KiB
Diff
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
|
|
|