From 4e26d07e08b503b497ad0848ea8e8fb25cc4cc5a Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Wed, 29 Jul 2015 15:03:15 +0000 Subject: [PATCH] - bsc#938942 - Can't create a vmguest with raw format image with virt-manager at first installation (option disable) virtman-reset-image-filename-based-on-format.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=243 --- virt-manager.changes | 7 ++ virt-manager.spec | 6 +- ...reset-image-filename-based-on-format.patch | 69 +++++++++++++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 virtman-reset-image-filename-based-on-format.patch diff --git a/virt-manager.changes b/virt-manager.changes index 0c1f6e03..5f6cea93 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jul 23 09:39:26 MDT 2015 - carnold@suse.com + +- bsc#938942 - Can't create a vmguest with raw format image with + virt-manager at first installation (option disable) + virtman-reset-image-filename-based-on-format.patch + ------------------------------------------------------------------- Wed Jul 8 11:29:25 MDT 2015 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index dc659b1e..6d61bb02 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -1,7 +1,7 @@ # # spec file for package virt-manager # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %define with_guestfs 0 %define askpass_package "openssh-askpass" %define qemu_user "qemu" @@ -76,6 +77,7 @@ Patch152: virtman-increase-setKeepAlive-count.patch Patch153: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch Patch154: virtman-check-for-valid-display.patch Patch155: virtman-allow-creating-i686-vm.patch +Patch156: virtman-reset-image-filename-based-on-format.patch Patch160: virtinst-xen-drive-type.patch Patch161: virtinst-xenbus-disk-index-fix.patch Patch162: virtinst-refresh_before_fetch_pool.patch @@ -88,7 +90,6 @@ Requires: avahi Requires: dbus-1-x11 Requires: dconf Requires: gtk3 -Requires: libosinfo >= 0.2.10 Requires: python-gconf Requires: virt-manager-common = %{verrel} Requires: vm-install >= 0.5.6 @@ -201,6 +202,7 @@ machine). %patch153 -p1 %patch154 -p1 %patch155 -p1 +%patch156 -p1 %patch160 -p1 %patch161 -p1 %patch162 -p1 diff --git a/virtman-reset-image-filename-based-on-format.patch b/virtman-reset-image-filename-based-on-format.patch new file mode 100644 index 00000000..71639351 --- /dev/null +++ b/virtman-reset-image-filename-based-on-format.patch @@ -0,0 +1,69 @@ +Reference: bsc#938942 +When a disk is added to an existing virtual machine and the storage format for +that disk is selected to be something other than qcow2 reset the image name +extension from qcow2 to the format selected. This is for a new disk that needs +to be created. + +Index: virt-manager-1.2.1/virtManager/addstorage.py +=================================================================== +--- virt-manager-1.2.1.orig/virtManager/addstorage.py ++++ virt-manager-1.2.1/virtManager/addstorage.py +@@ -58,9 +58,10 @@ class vmmAddStorage(vmmGObjectUI): + def _get_default_dir(self): + return virtinst.StoragePool.get_default_dir(self.conn.get_backend()) + +- def _get_ideal_path_info(self, name): ++ def _get_ideal_path_info(self, name, fmt=None): + path = self._get_default_dir() +- fmt = self.conn.get_default_storage_format() ++ if fmt is None: ++ fmt = self.conn.get_default_storage_format() + suffix = virtinst.StorageVolume.get_file_extension_for_format(fmt) + return (path, name, suffix or ".img") + +@@ -208,7 +209,7 @@ class vmmAddStorage(vmmGObjectUI): + use_storage.set_sensitive(True) + storage_area.set_tooltip_text(storage_tooltip or "") + +- def get_default_path(self, name, collidelist=None): ++ def get_default_path(self, name, fmt=None, collidelist=None): + collidelist = collidelist or [] + pool = self.conn.get_default_pool() + +@@ -217,15 +218,16 @@ class vmmAddStorage(vmmGObjectUI): + def path_exists(p): + return os.path.exists(p) or p in collidelist + ++ target, ignore, suffix = self._get_ideal_path_info(name, fmt) + if not pool: + # Use old generating method +- origf = os.path.join(default_dir, name + ".img") ++ origf = os.path.join(default_dir, name + suffix) + f = origf + + n = 1 + while path_exists(f) and n < 100: + f = os.path.join(default_dir, name + +- "-" + str(n) + ".img") ++ "-" + str(n) + suffix) + n += 1 + + if path_exists(f): +@@ -233,8 +235,6 @@ class vmmAddStorage(vmmGObjectUI): + + path = f + else: +- target, ignore, suffix = self._get_ideal_path_info(name) +- + # Sanitize collidelist to work with the collision checker + newcollidelist = [] + for c in collidelist: +@@ -310,7 +310,7 @@ class vmmAddStorage(vmmGObjectUI): + not self.widget("config-storage-nosparse").get_active()) + if path is None: + if is_default: +- path = self.get_default_path(vmname, collidelist) ++ path = self.get_default_path(vmname, fmt, collidelist) + else: + path = self.widget("config-storage-entry").get_text().strip() +