Accepting request 89713 from Virtualization

Checkin for RC2

OBS-URL: https://build.opensuse.org/request/show/89713
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virt-manager?expand=0&rev=66
This commit is contained in:
Stephan Kulow 2011-10-29 06:01:22 +00:00 committed by Git OBS Bridge
commit 2c66a0e5de
34 changed files with 278 additions and 34 deletions

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Oct 28 10:19:43 MDT 2011 - carnold@novell.com
- Upstream bug fixes
virtinst-git-mac-prefix.diff
virtman-git-error-reporting.diff
virtman-git-explicit-python.diff
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 12 11:50:03 MDT 2011 - carnold@novell.com Wed Oct 12 11:50:03 MDT 2011 - carnold@novell.com

View File

@ -38,21 +38,25 @@ Source0: virt-manager-%{version}.tar.bz2
Source1: %{virtinst_name}.tar.bz2 Source1: %{virtinst_name}.tar.bz2
# see https://bugzilla.redhat.com/show_bug.cgi?id=620216, # see https://bugzilla.redhat.com/show_bug.cgi?id=620216,
# https://bugzilla.novell.com/show_bug.cgi?id=641981 # https://bugzilla.novell.com/show_bug.cgi?id=641981
Patch1: virtman-netstats-fix.diff Patch1: virtman-git-netstats.diff
Patch2: virtman-finish-button-fix.diff Patch2: virtman-git-finish-button.diff
Patch3: virtman-shutoff-fix.diff Patch3: virtman-git-shutoff.diff
Patch4: virtman-set-has-window-fix.diff Patch4: virtman-git-set-has-window.diff
Patch5: virtman-grep-fix.diff Patch5: virtman-git-grep.diff
Patch6: virtman-no-cd-present-fix.diff Patch6: virtman-git-no-cd-present.diff
Patch7: virtman-resize-menu-fix.diff Patch7: virtman-git-resize-menu.diff
Patch8: virtman-vcpu-count-fix.diff Patch8: virtman-git-vcpu-count.diff
Patch9: virtman-storage-pool-fix.diff Patch9: virtman-git-storage-pool.diff
Patch10: virtman-domain-name-fix.diff Patch10: virtman-git-domain-name.diff
Patch11: virtman-unapplied-changes-fix.diff Patch11: virtman-git-unapplied-changes.diff
Patch12: virtman-details-fix.diff Patch12: virtman-git-details.diff
Patch13: virtman-delete-fix.diff Patch13: virtman-git-delete.diff
Patch14: virtman-collidelist-fix.diff Patch14: virtman-git-collidelist.diff
Patch15: virtman-char-device-mode-fix.diff Patch15: virtman-git-char-device-mode.diff
Patch16: virtman-git-connection-pylint.diff
Patch17: virtman-git-tick-obj-lists.diff
Patch18: virtman-git-error-reporting.diff
Patch19: virtman-git-explicit-python.diff
Patch50: virtman-desktop.diff Patch50: virtman-desktop.diff
Patch51: virtman-vminstall.diff Patch51: virtman-vminstall.diff
Patch52: virtman-cdrom.diff Patch52: virtman-cdrom.diff
@ -65,19 +69,20 @@ Patch61: virtman-autorestart.diff
Patch62: virtman-storage-pool.diff Patch62: virtman-storage-pool.diff
Patch63: virtman-eepro100.diff Patch63: virtman-eepro100.diff
Patch64: virtman-qed.diff Patch64: virtman-qed.diff
Patch100: virtinst-hv-version-fix.diff Patch100: virtinst-git-hv-version.diff
Patch101: virtinst-initrd-inject-fix.diff Patch101: virtinst-git-initrd-inject.diff
Patch102: virtinst-initrd-inject2-fix.diff Patch102: virtinst-git-initrd-inject2.diff
Patch103: virtinst-no-volume-fix.diff Patch103: virtinst-git-no-volume.diff
Patch104: virtinst-prompts-fix.diff Patch104: virtinst-git-prompts.diff
Patch105: virtinst-cpu-model-name-fix.diff Patch105: virtinst-git-cpu-model-name.diff
Patch106: virtinst-xml-clear-fix.diff Patch106: virtinst-git-xml-clear.diff
Patch107: virtinst-remote-storage-fix.diff Patch107: virtinst-git-remote-storage.diff
Patch108: virtinst-error-message-fix.diff Patch108: virtinst-git-error-message.diff
Patch109: virtinst-typo-fix.diff Patch109: virtinst-git-typo.diff
Patch110: virtinst-cdrom.diff Patch110: virtinst-git-mac-prefix.diff
Patch111: virtinst-storage-ocfs2.diff Patch150: virtinst-cdrom.diff
Patch112: virtinst-qed.diff Patch151: virtinst-storage-ocfs2.diff
Patch152: virtinst-qed.diff
ExclusiveArch: %{ix86} x86_64 ExclusiveArch: %{ix86} x86_64
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%gconf_schemas_prereq %gconf_schemas_prereq
@ -174,6 +179,10 @@ Authors:
%patch13 -p1 %patch13 -p1
%patch14 -p1 %patch14 -p1
%patch15 -p1 %patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch50 -p1 %patch50 -p1
%patch51 -p1 %patch51 -p1
%patch52 -p1 %patch52 -p1
@ -198,8 +207,9 @@ pushd $RPM_BUILD_DIR/%{virtinst_name}
%patch108 -p1 %patch108 -p1
%patch109 -p1 %patch109 -p1
%patch110 -p1 %patch110 -p1
%patch111 -p1 %patch150 -p1
%patch112 -p1 %patch151 -p1
%patch152 -p1
popd popd
# sed -i -e "s@sr\@Latn@sr\@latin@" configure # sed -i -e "s@sr\@Latn@sr\@latin@" configure
# mv po/sr@Latn.po po/sr@latin.po # mv po/sr@Latn.po po/sr@latin.po

View File

@ -0,0 +1,28 @@
Subject: CloneManager: Use correct mac prefix when cloning KVM guests
From: Cole Robinson crobinso@redhat.com Fri Oct 14 15:18:18 2011 -0400
Date: Fri Oct 14 15:18:18 2011 -0400:
Git: 8060feeb26be4cd0ab36feca88e8a92db54b09e2
Index: virtinst-0.600.0/virtinst/CloneManager.py
===================================================================
--- virtinst-0.600.0.orig/virtinst/CloneManager.py
+++ virtinst-0.600.0/virtinst/CloneManager.py
@@ -437,7 +437,6 @@ class CloneDesign(object):
# We simply edit the original VM xml in place
doc = libxml2.parseDoc(self._clone_xml)
ctx = doc.xpathNewContext()
- typ = ctx.xpathEval("/domain")[0].prop("type")
# changing name
node = ctx.xpathEval("/domain/name")
@@ -465,7 +464,7 @@ class CloneDesign(object):
mac = self._clone_mac[i - 1]
except Exception:
while 1:
- mac = _util.randomMAC(typ)
+ mac = _util.randomMAC(self.original_conn.getType().lower())
dummy, msg = self._check_mac(mac)
if msg is not None:
continue

View File

@ -2,7 +2,7 @@ Index: virt-manager-0.9.0/src/virtManager/details.py
=================================================================== ===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/details.py --- virt-manager-0.9.0.orig/src/virtManager/details.py
+++ virt-manager-0.9.0/src/virtManager/details.py +++ virt-manager-0.9.0/src/virtManager/details.py
@@ -2008,11 +2008,9 @@ class vmmDetails(vmmGObjectUI): @@ -2019,11 +2019,9 @@ class vmmDetails(vmmGObjectUI):
return self._change_config_helper(df, da, hf, ha) return self._change_config_helper(df, da, hf, ha)
@ -17,7 +17,7 @@ Index: virt-manager-0.9.0/src/virtManager/details.py
if self.editted(EDIT_AUTOSTART): if self.editted(EDIT_AUTOSTART):
auto = self.widget("config-autostart") auto = self.widget("config-autostart")
try: try:
@@ -2022,6 +2020,11 @@ class vmmDetails(vmmGObjectUI): @@ -2033,6 +2031,11 @@ class vmmDetails(vmmGObjectUI):
(_("Error changing autostart value: %s") % str(e))) (_("Error changing autostart value: %s") % str(e)))
return False return False
@ -29,7 +29,7 @@ Index: virt-manager-0.9.0/src/virtManager/details.py
if self.editted(EDIT_BOOTORDER): if self.editted(EDIT_BOOTORDER):
bootdevs = self.get_config_boot_devs() bootdevs = self.get_config_boot_devs()
add_define(self.vm.set_boot_device, bootdevs) add_define(self.vm.set_boot_device, bootdevs)
@@ -2359,6 +2362,8 @@ class vmmDetails(vmmGObjectUI): @@ -2370,6 +2373,8 @@ class vmmDetails(vmmGObjectUI):
buttons=gtk.BUTTONS_OK, buttons=gtk.BUTTONS_OK,
dialog_type=dtype) dialog_type=dtype)

View File

@ -25,7 +25,7 @@ Index: virt-manager-0.9.0/src/virtManager/details.py
=================================================================== ===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/details.py --- virt-manager-0.9.0.orig/src/virtManager/details.py
+++ virt-manager-0.9.0/src/virtManager/details.py +++ virt-manager-0.9.0/src/virtManager/details.py
@@ -2245,6 +2245,17 @@ class vmmDetails(vmmGObjectUI): @@ -2256,6 +2256,17 @@ class vmmDetails(vmmGObjectUI):
text1=(_("Are you sure you want to remove this device?"))): text1=(_("Are you sure you want to remove this device?"))):
return return

View File

@ -0,0 +1,45 @@
Subject: connection: Fix some code that trips up pylint
From: Cole Robinson crobinso@redhat.com Tue Aug 30 14:50:29 2011 -0400
Date: Tue Aug 30 14:50:29 2011 -0400:
Git: 66f879e19dfadcb3dcb5a8caeea7ebfa19c40eae
Index: virt-manager-0.9.0/src/virtManager/connection.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/connection.py
+++ virt-manager-0.9.0/src/virtManager/connection.py
@@ -1140,23 +1140,29 @@ class vmmConnection(vmmGObject):
logging.debug("Background 'open connection' thread is running")
while True:
+ libexc = None
exc = None
tb = None
try:
self.vmm = self._try_open()
+ except libvirt.libvirtError, libexc:
+ tb = "".join(traceback.format_exc())
except Exception, exc:
tb = "".join(traceback.format_exc())
+ if libexc:
+ exc = libexc
+
if not exc:
self.state = self.STATE_ACTIVE
break
self.state = self.STATE_DISCONNECTED
- if (type(exc) == libvirt.libvirtError and
- exc.get_error_code() == libvirt.VIR_ERR_AUTH_FAILED and
- "GSSAPI Error" in exc.get_error_message() and
- "No credentials cache found" in exc.get_error_message()):
+ if (libexc and
+ libexc.get_error_code() == libvirt.VIR_ERR_AUTH_FAILED and
+ "GSSAPI Error" in libexc.get_error_message() and
+ "No credentials cache found" in libexc.get_error_message()):
if self._acquire_tgt():
continue

View File

@ -0,0 +1,69 @@
Subject: details: Better logging and error reporting for child dialogs
From: Cole Robinson crobinso@redhat.com Tue Aug 30 14:29:51 2011 -0400
Date: Tue Aug 30 14:29:51 2011 -0400:
Git: cbbc8044bf3eaed18f09c0c2af40e9a4aa6e7717
Index: virt-manager-0.9.0/src/virtManager/details.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/details.py
+++ virt-manager-0.9.0/src/virtManager/details.py
@@ -1392,6 +1392,7 @@ class vmmDetails(vmmGObjectUI):
if self.addhw is None:
self.addhw = vmmAddHardware(self.vm)
+ logging.debug("Launching addhw for vm '%s'", self.vm.get_name())
self.addhw.show(self.topwin)
except Exception, e:
self.err.show_err((_("Error launching hardware dialog: %s") %
@@ -1771,24 +1772,34 @@ class vmmDetails(vmmGObjectUI):
curpath = disk.path
devtype = disk.device
- if curpath:
- # Disconnect cdrom
- self.change_storage_media(dev_id_info, None)
+ try:
+ if curpath:
+ # Disconnect cdrom
+ self.change_storage_media(dev_id_info, None)
+ return
+ except Exception, e:
+ self.err.show_err((_("Error disconnecting media: %s") % e))
return
- def change_cdrom_wrapper(src_ignore, dev_id_info, newpath):
- return self.change_storage_media(dev_id_info, newpath)
+ try:
+ def change_cdrom_wrapper(src_ignore, dev_id_info, newpath):
+ return self.change_storage_media(dev_id_info, newpath)
+
+ # Launch 'Choose CD' dialog
+ if self.media_choosers[devtype] is None:
+ ret = vmmChooseCD(self.vm, dev_id_info)
- # Launch 'Choose CD' dialog
- if self.media_choosers[devtype] is None:
- ret = vmmChooseCD(self.vm, dev_id_info)
-
- ret.connect("cdrom-chosen", change_cdrom_wrapper)
- self.media_choosers[devtype] = ret
-
- dialog = self.media_choosers[devtype]
- dialog.dev_id_info = dev_id_info
- dialog.show(self.topwin)
+ ret.connect("cdrom-chosen", change_cdrom_wrapper)
+ self.media_choosers[devtype] = ret
+
+ dialog = self.media_choosers[devtype]
+ dialog.dev_id_info = dev_id_info
+
+ logging.debug("Launching choosecd for vm '%s'", self.vm.get_name())
+ dialog.show(self.topwin)
+ except Exception, e:
+ self.err.show_err((_("Error launching media dialog: %s") % e))
+ return
##################################################
# Details/Hardware config changes (apply button) #

View File

@ -0,0 +1,25 @@
Subject: Specify /usr/bin/python explicitly
From: Cole Robinson crobinso@redhat.com Wed Aug 24 12:41:00 2011 -0400
Date: Wed Aug 24 12:41:30 2011 -0400:
Git: 5104669795788a1685006761b437e9b296840f89
Index: virt-manager-0.9.0/src/virt-manager-tui.in
===================================================================
--- virt-manager-0.9.0.orig/src/virt-manager-tui.in
+++ virt-manager-0.9.0/src/virt-manager-tui.in
@@ -1,3 +1,3 @@
#!/bin/sh
-exec python "::PYTHONDIR::/::PACKAGE::.py" "$@"
+exec /usr/bin/python "::PYTHONDIR::/::PACKAGE::.py" "$@"
Index: virt-manager-0.9.0/src/virt-manager.in
===================================================================
--- virt-manager-0.9.0.orig/src/virt-manager.in
+++ virt-manager-0.9.0/src/virt-manager.in
@@ -1,3 +1,3 @@
#!/bin/sh
-exec python "::PYTHONDIR::/::PACKAGE::.py" "$@"
+exec /usr/bin/python "::PYTHONDIR::/::PACKAGE::.py" "$@"

View File

@ -0,0 +1,59 @@
Subject: connection: Don't have tick edit object lists in place
From: Cole Robinson crobinso@redhat.com Thu Oct 13 16:59:15 2011 -0400
Date: Thu Oct 13 16:59:15 2011 -0400:
Git: 392cb8075fe5ae2f20b9fdf0d85e4510cc799cc1
Since 'tick' isn't really thread safe, and we sometimes call a manual tick
to refresh resources (say immediately after creating a guest), we
can't depend on lists staying consistent.
Index: virt-manager-0.9.0/src/virtManager/connection.py
===================================================================
--- virt-manager-0.9.0.orig/src/virtManager/connection.py
+++ virt-manager-0.9.0/src/virtManager/connection.py
@@ -1270,7 +1270,7 @@ class vmmConnection(vmmGObject):
return (stop, start, origlist, new, current)
def _update_nets(self):
- orig = self.nets
+ orig = self.nets.copy()
name = "network"
active_list = self.vmm.listNetworks
inactive_list = self.vmm.listDefinedNetworks
@@ -1283,7 +1283,7 @@ class vmmConnection(vmmGObject):
lookup_func, build_class)
def _update_pools(self):
- orig = self.pools
+ orig = self.pools.copy()
name = "pool"
active_list = self.vmm.listStoragePools
inactive_list = self.vmm.listDefinedStoragePools
@@ -1296,7 +1296,7 @@ class vmmConnection(vmmGObject):
lookup_func, build_class)
def _update_interfaces(self):
- orig = self.interfaces
+ orig = self.interfaces.copy()
name = "interface"
active_list = self.vmm.listInterfaces
inactive_list = self.vmm.listDefinedInterfaces
@@ -1310,7 +1310,7 @@ class vmmConnection(vmmGObject):
def _update_nodedevs(self):
- orig = self.nodedevs
+ orig = self.nodedevs.copy()
name = "nodedev"
active_list = lambda: self.vmm.listDevices(None, 0)
inactive_list = lambda: []
@@ -1332,7 +1332,7 @@ class vmmConnection(vmmGObject):
oldActiveIDs = {}
oldInactiveNames = {}
- origlist = self.vms
+ origlist = self.vms.copy()
current = {}
new = []