[virt-manager] Fix creating storage paths if directory is all digits (bz #1069351) Properly close connection if tic
Cole Robinson
crobinso at fedoraproject.org
Fri Feb 28 18:09:25 UTC 2014
commit 90230fbec6438766e9cbfd7b362052d4c9cb5f5b
Author: Cole Robinson <crobinso at redhat.com>
Date: Fri Feb 28 13:10:20 2014 -0500
Fix creating storage paths if directory is all digits (bz #1069351)
Properly close connection if tick fails (bz #1069351)
virt-manager: Handle unrefreshed storage pools (bz #1070883)
Fix unsetting 'auto resize' console property
...e-generate-target-only-if-not-customizing.patch | 44 +++++++++++++
...d-object-names-that-are-only-all-numbers-.patch | 29 ++++++++
...closing-connection-when-tick-fails-bz-106.patch | 69 ++++++++++++++++++++
...ion-Handle-missing-storage-volumes-bz-107.patch | 39 +++++++++++
...x-unsetting-resize-guest-property-from-UI.patch | 25 +++++++
virt-manager.spec | 30 ++++++++-
6 files changed, 233 insertions(+), 3 deletions(-)
---
diff --git a/0005-addhardware-generate-target-only-if-not-customizing.patch b/0005-addhardware-generate-target-only-if-not-customizing.patch
new file mode 100644
index 0000000..b64118d
--- /dev/null
+++ b/0005-addhardware-generate-target-only-if-not-customizing.patch
@@ -0,0 +1,44 @@
+From c7312ce1f5f13d77daf922924cef2f4f7b550e42 Mon Sep 17 00:00:00 2001
+From: Martin Kletzander <mkletzan at redhat.com>
+Date: Tue, 18 Feb 2014 11:38:56 +0100
+Subject: [PATCH] addhardware: generate target only if not customizing
+
+Commit 078e1a4d0503d98884b5b61df83021941bf32e8d changed the fact that
+disk target was generated only when adding new disk, not when current
+disk is being customized, so fix that back.
+
+Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
+(cherry picked from commit bc5d84b0407257b1e257e7cabaf619430a7e8f83)
+---
+ virtManager/addhardware.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
+index ecb5fc8..b1f6251 100644
+--- a/virtManager/addhardware.py
++++ b/virtManager/addhardware.py
+@@ -1471,20 +1471,22 @@ class vmmAddHardware(vmmGObjectUI):
+ return disk
+
+ try:
++ used = []
+ disk.bus = bus
+ if cache:
+ disk.driver_cache = cache
+
+ # Generate target
+ if not self.is_customize_dialog:
+- used = []
+ disks = (self.vm.get_disk_devices() +
+ self.vm.get_disk_devices(inactive=True))
+ for d in disks:
+ used.append(d.target)
+
+ prefer_ctrl = self._set_disk_controller(disk, controller_model, disks)
+- disk.generate_target(used, prefer_ctrl)
++
++ if not self.is_customize_dialog:
++ disk.generate_target(used, prefer_ctrl)
+
+ except Exception, e:
+ return self.err.val_err(_("Storage parameter error."), e)
diff --git a/0006-Don-t-forbid-object-names-that-are-only-all-numbers-.patch b/0006-Don-t-forbid-object-names-that-are-only-all-numbers-.patch
new file mode 100644
index 0000000..54a9ee1
--- /dev/null
+++ b/0006-Don-t-forbid-object-names-that-are-only-all-numbers-.patch
@@ -0,0 +1,29 @@
+From f6756e8367757301d095dc35fbe477f234ba20d1 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Tue, 25 Feb 2014 14:54:06 -0500
+Subject: [PATCH] Don't forbid object names that are only all numbers (bz
+ 1067127)
+
+Just let libvirt error, since in the case of things like storage pools
+this is totally legitimate.
+
+(cherry picked from commit 3efbefe91a1ec23cbcf3d4f5a72a02fab87daa83)
+---
+ virtinst/util.py | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/virtinst/util.py b/virtinst/util.py
+index 31ccd38..2fe00d3 100644
+--- a/virtinst/util.py
++++ b/virtinst/util.py
+@@ -140,10 +140,6 @@ def validate_uuid(val):
+
+
+ def validate_name(name_type, val):
+- if re.match("^[0-9]+$", val):
+- raise ValueError(_("%s name can not be only numeric characters") %
+- name_type)
+-
+ # Rather than try and match libvirt's regex, just forbid things we
+ # know don't work
+ forbid = [" "]
diff --git a/0007-engine-Fix-closing-connection-when-tick-fails-bz-106.patch b/0007-engine-Fix-closing-connection-when-tick-fails-bz-106.patch
new file mode 100644
index 0000000..18d5c56
--- /dev/null
+++ b/0007-engine-Fix-closing-connection-when-tick-fails-bz-106.patch
@@ -0,0 +1,69 @@
+From 74e0b06cb64009b5253e8ed54b1e56f1343cb85c Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Tue, 25 Feb 2014 15:17:34 -0500
+Subject: [PATCH] engine: Fix closing connection when tick() fails (bz 1069351)
+
+(cherry picked from commit ce64d037bff56db994fedd065a9a34b8e827dda2)
+---
+ virtManager/engine.py | 39 ++++++++++++++++++++++++---------------
+ 1 file changed, 24 insertions(+), 15 deletions(-)
+
+diff --git a/virtManager/engine.py b/virtManager/engine.py
+index cef3d20..0e5e15d 100644
+--- a/virtManager/engine.py
++++ b/virtManager/engine.py
+@@ -344,30 +344,39 @@ class vmmEngine(vmmGObject):
+ return 1
+
+ def _tick_single_conn(self, conn, kwargs):
++ e = None
+ try:
+ conn.tick(**kwargs)
+ except KeyboardInterrupt:
+ raise
+- except libvirt.libvirtError, e:
+- from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
+- from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
+- sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
++ except Exception, e:
++ pass
++
++ if e is None:
++ return
+
++ from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
++ from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
++ sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
++
++ dom = -1
++ code = -1
++ if isinstance(e, libvirt.libvirtError):
+ dom = e.get_error_domain()
+ code = e.get_error_code()
+
+- if (dom in [from_remote, from_rpc] and
+- code in [sys_error]):
+- logging.exception("Could not refresh connection %s",
+- conn.get_uri())
+- logging.debug("Closing connection since libvirtd "
+- "appears to have stopped")
+- else:
+- error_msg = _("Error polling connection '%s': %s") \
+- % (conn.get_uri(), e)
+- self.idle_add(lambda: self.err.show_err(error_msg))
++ if (dom in [from_remote, from_rpc] and
++ code in [sys_error]):
++ logging.exception("Could not refresh connection %s",
++ conn.get_uri())
++ logging.debug("Closing connection since libvirtd "
++ "appears to have stopped")
++ else:
++ error_msg = _("Error polling connection '%s': %s") \
++ % (conn.get_uri(), e)
++ self.idle_add(lambda: self.err.show_err(error_msg))
+
+- self.idle_add(conn.close)
++ self.idle_add(conn.close)
+
+
+ def increment_window_counter(self, src):
diff --git a/0008-vmm-connection-Handle-missing-storage-volumes-bz-107.patch b/0008-vmm-connection-Handle-missing-storage-volumes-bz-107.patch
new file mode 100644
index 0000000..9f6896d
--- /dev/null
+++ b/0008-vmm-connection-Handle-missing-storage-volumes-bz-107.patch
@@ -0,0 +1,39 @@
+From 84c1bd12297b366a7187592ca29cc03cb1daf3c5 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Thu, 27 Feb 2014 13:16:21 -0500
+Subject: [PATCH] vmm connection: Handle missing storage volumes (bz 1070883)
+
+Similar to what was done in a808bd669293ac66047a716b2e84a5a64c99667b
+for the virtinst connection wrapper.
+
+(cherry picked from commit f67df117017e6de855a8c0e900e47fe920dfaa48)
+---
+ virtManager/connection.py | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/virtManager/connection.py b/virtManager/connection.py
+index 6f6c838..96dfa1c 100644
+--- a/virtManager/connection.py
++++ b/virtManager/connection.py
+@@ -172,10 +172,17 @@ class vmmConnection(vmmGObject):
+ self._backend.cb_fetch_all_pools = (
+ lambda: [obj.get_xmlobj(refresh_if_nec=False)
+ for obj in self.pools.values()])
+- self._backend.cb_fetch_all_vols = (
+- lambda: [obj.get_xmlobj(refresh_if_nec=False)
+- for pool in self.pools.values()
+- for obj in pool.get_volumes(refresh=False).values()])
++
++ def fetch_all_vols():
++ ret = []
++ for pool in self.pools.values():
++ for vol in pool.get_volumes(refresh=False).values():
++ try:
++ ret.append(vol.get_xmlobj(refresh_if_nec=False))
++ except libvirt.libvirtError, e:
++ logging.debug("Fetching volume XML failed: %s", e)
++ return ret
++ self._backend.cb_fetch_all_vols = fetch_all_vols
+
+ def clear_cache(pools=False):
+ if not pools:
diff --git a/0009-console-Fix-unsetting-resize-guest-property-from-UI.patch b/0009-console-Fix-unsetting-resize-guest-property-from-UI.patch
new file mode 100644
index 0000000..33bb3e4
--- /dev/null
+++ b/0009-console-Fix-unsetting-resize-guest-property-from-UI.patch
@@ -0,0 +1,25 @@
+From 4daa270c84825f41583e313b5b64bb10e6eae639 Mon Sep 17 00:00:00 2001
+From: Cole Robinson <crobinso at redhat.com>
+Date: Fri, 28 Feb 2014 11:46:05 -0500
+Subject: [PATCH] console: Fix unsetting 'resize-guest' property from UI
+
+Reported in the followup of bz 754559
+
+(cherry picked from commit 4a2493f1e4bede671eac713081f61965f036d6ed)
+---
+ virtManager/console.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/virtManager/console.py b/virtManager/console.py
+index 6ac8abc..5199f5a 100644
+--- a/virtManager/console.py
++++ b/virtManager/console.py
+@@ -1092,7 +1092,7 @@ class vmmConsolePages(vmmGObjectUI):
+
+ def resizeguest_ui_changed_cb(self, src):
+ # Called from details.py
+- if not src.get_active():
++ if not src.get_sensitive():
+ return
+
+ val = int(self.widget("details-menu-view-resizeguest").get_active())
diff --git a/virt-manager.spec b/virt-manager.spec
index f4ca564..aefda90 100644
--- a/virt-manager.spec
+++ b/virt-manager.spec
@@ -20,7 +20,7 @@
%define _version 1.0.0
-%define _release 2
+%define _release 3
# This macro is used for the continuous automated builds. It just
@@ -45,8 +45,17 @@ Patch0001: 0001-connect-Fix-connecting-to-lxc-URI.patch
# Fix issues creating ppc64 guests
Patch0002: 0002-create-Fix-non-x86-qemu-kvm-guest-creation.patch
Patch0003: 0003-caps-Simplify-guest-lookup-routines.patch
-# Fix generating disk targets from customize->addhw
Patch0004: 0004-create-Don-t-alter-caps-machine-list.patch
+# Fix generating disk targets from customize->addhw
+Patch0005: 0005-addhardware-generate-target-only-if-not-customizing.patch
+# Fix creating storage paths if directory is all digits (bz #1069351)
+Patch0006: 0006-Don-t-forbid-object-names-that-are-only-all-numbers-.patch
+# Properly close connection if tick fails (bz #1069351)
+Patch0007: 0007-engine-Fix-closing-connection-when-tick-fails-bz-106.patch
+# virt-manager: Handle unrefreshed storage pools (bz #1070883)
+Patch0008: 0008-vmm-connection-Handle-missing-storage-volumes-bz-107.patch
+# Fix unsetting 'auto resize' console property
+Patch0009: 0009-console-Fix-unsetting-resize-guest-property-from-UI.patch
BuildArch: noarch
@@ -118,8 +127,17 @@ machine).
# Fix issues creating ppc64 guests
%patch0002 -p1
%patch0003 -p1
-# Fix generating disk targets from customize->addhw
%patch0004 -p1
+# Fix generating disk targets from customize->addhw
+%patch0005 -p1
+# Fix creating storage paths if directory is all digits (bz #1069351)
+%patch0006 -p1
+# Properly close connection if tick fails (bz #1069351)
+%patch0007 -p1
+# virt-manager: Handle unrefreshed storage pools (bz #1070883)
+%patch0008 -p1
+# Fix unsetting 'auto resize' console property
+%patch0009 -p1
%build
%if %{qemu_user}
@@ -229,6 +247,12 @@ fi
%changelog
+* Fri Feb 28 2014 Cole Robinson <crobinso at redhat.com> - 1.0.0-3
+- Fix creating storage paths if directory is all digits (bz #1069351)
+- Properly close connection if tick fails (bz #1069351)
+- virt-manager: Handle unrefreshed storage pools (bz #1070883)
+- Fix unsetting 'auto resize' console property
+
* Tue Feb 18 2014 Cole Robinson <crobinso at redhat.com> - 1.0.0-2
- Fix open connection->lxc
- Fix issues creating ppc64 guests
More information about the scm-commits
mailing list