Fix disk XML mangling via connect/eject cdrom (bz 516116) Fix delete button

sensitivity (bz 518536) Fix populating text box from storage browser in
    'New VM' (bz 517263) Fix a traceback in an 'Add Hardware' error path
    (bz 517286)
This commit is contained in:
Cole Robinson 2009-09-14 15:05:51 +00:00
parent 719ad6add0
commit 3957d80fc8
6 changed files with 246 additions and 1 deletions

View File

@ -0,0 +1,44 @@
# HG changeset patch
# User Paul W. Frields <stickster@gmail.com>
# Date 1251729959 14400
# Node ID d34def55dbd78e2ad5f099d6a38c1f358c798555
# Parent b70858b9f8c6f9fea21f6e66a10e7b9498f11e5e
addhardware: Fix error message syntax typo
diff -r b70858b9f8c6 -r d34def55dbd7 AUTHORS
--- a/AUTHORS Mon Aug 31 10:19:49 2009 -0400
+++ b/AUTHORS Mon Aug 31 10:45:59 2009 -0400
@@ -59,6 +59,7 @@
Emmanuel Lacour <elacour-at-home-dn-dot-net>
Laurent Léonard <laurent-at-open-minds-dot-org>
Michal Novotny <minovotn-at-redhat-dot-com>
+ Paul W. Frields <stickster-at-gmail-dot-com>
<...send a patch & get your name here...>
diff -r b70858b9f8c6 -r d34def55dbd7 src/virtManager/addhardware.py
--- a/src/virtManager/addhardware.py Mon Aug 31 10:19:49 2009 -0400
+++ b/src/virtManager/addhardware.py Mon Aug 31 10:45:59 2009 -0400
@@ -1186,8 +1186,8 @@
conn = self.vm.get_connection().vmm,
name = nodedev_name)
except Exception, e:
- return self.err.val_err(_("Host device parameter error",
- str(e)))
+ return self.err.val_err(_("Host device parameter error"),
+ str(e))
elif page_num == PAGE_CHAR:
chartype = self.get_char_type()
diff -r b70858b9f8c6 -r d34def55dbd7 src/vmm-manager.glade
--- a/src/vmm-manager.glade Mon Aug 31 10:19:49 2009 -0400
+++ b/src/vmm-manager.glade Mon Aug 31 10:45:59 2009 -0400
@@ -118,7 +118,7 @@
<child>
<widget class="GtkImageMenuItem" id="menu_edit_delete">
<property name="visible">True</property>
- <property name="label" translatable="yes">Delete Virtual Machine</property>
+ <property name="label" translatable="yes">Delete</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_menu_edit_delete_activate"/>
<child internal-child="image">

View File

@ -0,0 +1,70 @@
# HG changeset patch
# User Cole Robinson <crobinso@redhat.com>
# Date 1251727555 14400
# Node ID c0de24094ca26b8da900d29746adba056f4114f7
# Parent 37a986ce54ceac389573d763c78f633a10ec1ab7
Don't mangle QEMU driver name on cdrom connect (bz 516116)
diff -r 37a986ce54ce -r c0de24094ca2 src/virtManager/domain.py
--- a/src/virtManager/domain.py Thu Aug 27 11:07:35 2009 -0400
+++ b/src/virtManager/domain.py Mon Aug 31 10:05:55 2009 -0400
@@ -1291,19 +1291,28 @@
xml = self.get_device_xml("disk", dev_id_info)
def cdrom_xml_connect(doc, ctx):
- disk_fragment = ctx.xpathEval("/disk")
+ disk_fragment = ctx.xpathEval("/disk")[0]
driver_fragment = ctx.xpathEval("/disk/driver")
- disk_fragment[0].setProp("type", _type)
- elem = disk_fragment[0].newChild(None, "source", None)
+ disk_fragment.setProp("type", _type)
+ elem = disk_fragment.newChild(None, "source", None)
+
if _type == "file":
elem.setProp("file", source)
- if driver_fragment:
- driver_fragment[0].setProp("name", _type)
+ driver_name = _type
else:
elem.setProp("dev", source)
- if driver_fragment:
- driver_fragment[0].setProp("name", "phy")
- return disk_fragment[0].serialize()
+ driver_name = "phy"
+
+ if driver_fragment:
+ driver_fragment = driver_fragment[0]
+ orig_name = driver_fragment.prop("name")
+
+ # For Xen, the driver name is dependent on the storage type
+ # (file or phys).
+ if orig_name and orig_name in [ "file", "phy" ]:
+ driver_fragment.setProp("name", driver_name)
+
+ return disk_fragment.serialize()
result = util.xml_parse_wrapper(xml, cdrom_xml_connect)
logging.debug("connect_cdrom produced: %s" % result)
@@ -1313,17 +1322,19 @@
xml = self.get_device_xml("disk", dev_id_info)
def cdrom_xml_disconnect(doc, ctx):
- disk_fragment = ctx.xpathEval("/disk")
+ disk_fragment = ctx.xpathEval("/disk")[0]
sourcenode = None
- for child in disk_fragment[0].children:
+
+ for child in disk_fragment.children:
if child.name == "source":
sourcenode = child
break
else:
continue
+
sourcenode.unlinkNode()
sourcenode.freeNode()
- return disk_fragment[0].serialize()
+ return disk_fragment.serialize()
result = util.xml_parse_wrapper(xml, cdrom_xml_disconnect)
logging.debug("eject_cdrom produced: %s" % result)

View File

@ -0,0 +1,72 @@
# HG changeset patch
# User Cole Robinson <crobinso@redhat.com>
# Date 1252939197 14400
# Node ID 486cd6791c3926420786d30401a690884acdf653
# Parent 043ca66e19aabcdb89b8bbe76ef5ded8b0c0fc54
Fix populating text box with storage browser selection in 'New VM' (bz 517263)
We were only properly setting the 'finish' callback for the first time the
storage browser was launched. All subsequent runs would not enter anything
in the associated text box.
diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/addhardware.py
--- a/src/virtManager/addhardware.py Mon Sep 14 10:14:41 2009 -0400
+++ b/src/virtManager/addhardware.py Mon Sep 14 10:39:57 2009 -0400
@@ -80,7 +80,6 @@
_("An unexpected error occurred"))
self.storage_browser = None
- self._browse_cb_id = None
self._dev = None
@@ -911,10 +910,8 @@
conn = self.vm.get_connection()
if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, conn, False)
- if self._browse_cb_id:
- self.storage_browser.disconnect(self._browse_cb_id)
- self._browse_cb_id = self.storage_browser.connect("storage-browse-finish", set_storage_cb)
+ self.storage_browser.set_finish_cb(set_storage_cb)
self.storage_browser.local_args = { "dialog_name": dialog_name,
"confirm_func": confirm_func,
"browse_reason":
diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/create.py
--- a/src/virtManager/create.py Mon Sep 14 10:14:41 2009 -0400
+++ b/src/virtManager/create.py Mon Sep 14 10:39:57 2009 -0400
@@ -1644,8 +1644,9 @@
if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, self.conn,
is_media)
- self.storage_browser.connect("storage-browse-finish",
- callback)
+
+ self.storage_browser.set_finish_cb(callback)
+
if is_media:
reason = self.config.CONFIG_DIR_MEDIA
else:
diff -r 043ca66e19aa -r 486cd6791c39 src/virtManager/storagebrowse.py
--- a/src/virtManager/storagebrowse.py Mon Sep 14 10:14:41 2009 -0400
+++ b/src/virtManager/storagebrowse.py Mon Sep 14 10:39:57 2009 -0400
@@ -47,6 +47,7 @@
self.config = config
self.conn = conn
self.conn_signal_ids = []
+ self.finish_cb_id = None
self.topwin = self.window.get_widget("vmm-storage-browse")
self.err = vmmErrorDialog(self.topwin,
@@ -89,6 +90,11 @@
self.addvol.close()
return 1
+ def set_finish_cb(self, callback):
+ if self.finish_cb_id:
+ self.disconnect(self.finish_cb_id)
+ self.finish_cb_id = self.connect("storage-browse-finish", callback)
+
def set_initial_state(self):
pool_list = self.window.get_widget("pool-list")
virtManager.host.init_pool_list(pool_list, self.pool_selected)

View File

@ -0,0 +1,20 @@
# HG changeset patch
# User Cole Robinson <crobinso@redhat.com>
# Date 1251728389 14400
# Node ID b70858b9f8c6f9fea21f6e66a10e7b9498f11e5e
# Parent 0bdea2b6c30e3b9ac7ca7b35f957598e66fd8c36
Don't allow deleting an active VM (bz 518536)
diff -r 0bdea2b6c30e -r b70858b9f8c6 src/virtManager/manager.py
--- a/src/virtManager/manager.py Mon Aug 31 10:07:06 2009 -0400
+++ b/src/virtManager/manager.py Mon Aug 31 10:19:49 2009 -0400
@@ -684,7 +684,8 @@
show_open = bool(vm)
show_details = bool(vm)
host_details = bool(vm or conn)
- delete = bool((vm and vm.is_runable()) or conn)
+ delete = bool((vm and vm.is_runable()) or
+ (not vm and conn))
show_run = bool(vm and vm.is_runable())
is_paused = bool(vm and vm.is_paused())
if is_paused:

View File

@ -0,0 +1,18 @@
# HG changeset patch
# User Cole Robinson <crobinso@redhat.com>
# Date 1252937681 14400
# Node ID 043ca66e19aabcdb89b8bbe76ef5ded8b0c0fc54
# Parent d34def55dbd78e2ad5f099d6a38c1f358c798555
Try to avoid 'maximum recursion depth' errors from pylint script.
diff -r d34def55dbd7 -r 043ca66e19aa tests/pylint-virt-manager.sh
--- a/tests/pylint-virt-manager.sh Mon Aug 31 10:45:59 2009 -0400
+++ b/tests/pylint-virt-manager.sh Mon Sep 14 10:14:41 2009 -0400
@@ -95,6 +95,7 @@
-ve "$BUILTIN_TYPE" \
-ve "$ERROR_VBOX" \
-ve "$UNABLE_IMPORT" \
+ -ve "$MAX_RECURSION" \
-ve "$EXCEPTHOOK" | \
$AWK '\
# Strip out any "*** Module name" lines if we dont list any errors for them

View File

@ -8,7 +8,7 @@
Name: virt-manager
Version: 0.8.0
Release: 2%{_extra_release}
Release: 3%{_extra_release}
Summary: Virtual Machine Manager
Group: Applications/Emulators
@ -17,6 +17,16 @@ URL: http://virt-manager.org/
Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
# Fix disk XML mangling via connect/eject cdrom (bz 516116)
Patch1: %{name}-%{version}-cdrom-eject-driver.patch
# Fix delete button sensitivity (bz 518536)
Patch2: %{name}-%{version}-no-delete-active.patch
# Fix populating text box from storage browser in 'New VM' (bz 517263)
Patch3: %{name}-%{version}-newvm-storage-cb.patch
# Fix a traceback in an 'Add Hardware' error path (bz 517286)
Patch4: %{name}-%{version}-addhw-errmsg-typo.patch
# Fixes for pylint script to return nicer results on F11/F12
Patch5: %{name}-%{version}-pylint-tweak.patch
# These two are just the oldest version tested
Requires: pygtk2 >= 1.99.12-6
@ -81,6 +91,11 @@ management API.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
%configure
@ -154,6 +169,12 @@ fi
%{_datadir}/dbus-1/services/%{name}.service
%changelog
* Mon Sep 14 2009 Cole Robinson <crobinso@redhat.com> - 0.8.0-3.fc12
- Fix disk XML mangling via connect/eject cdrom (bz 516116)
- Fix delete button sensitivity (bz 518536)
- Fix populating text box from storage browser in 'New VM' (bz 517263)
- Fix a traceback in an 'Add Hardware' error path (bz 517286)
* Thu Aug 13 2009 Daniel P. Berrange <berrange@redhat.com> - 0.8.0-2.fc12
- Remove obsolete dep on policykit agent