diff --git a/virt-manager-0.6.1-migrate-fixes.patch b/virt-manager-0.6.1-migrate-fixes.patch new file mode 100644 index 0000000..5003be9 --- /dev/null +++ b/virt-manager-0.6.1-migrate-fixes.patch @@ -0,0 +1,95 @@ +# HG changeset patch +# User Cole Robinson +# Date 1236630113 14400 +# Node ID 6126a50801deafa155b17b66cfc3008ffe584b24 +# Parent 3f37d0519b1750666e88e7eaef8d5dfaafc34237 +Fix conn uri lookup for domain migration. + +diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/details.py +--- a/src/virtManager/details.py Mon Mar 09 16:21:32 2009 -0400 ++++ b/src/virtManager/details.py Mon Mar 09 16:21:53 2009 -0400 +@@ -719,12 +719,11 @@ + + def control_vm_migrate(self, src): + # get selected submenu(destination hostname) +- hostname = self.window.get_widget("details-menu-migrate_menu").get_active().get_image().get_stock()[0] +- for key in self.engine.connections.keys(): +- if self.engine.get_connection(key).get_hostname() == hostname: +- host_uri = key +- break +- self.emit("action-migrate-domain", self.vm.get_connection().get_uri(), self.vm.get_uuid(), host_uri) ++ info = self.window.get_widget("details-menu-migrate_menu").get_active().get_image().get_stock()[0] ++ hostname = info.split(" ")[0] ++ ++ self.emit("action-migrate-domain", self.vm.get_connection().get_uri(), ++ self.vm.get_uuid(), hostname) + + def set_migrate_menu(self): + menu = self.window.get_widget("details-menu-migrate_menu") +diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/engine.py +--- a/src/virtManager/engine.py Mon Mar 09 16:21:32 2009 -0400 ++++ b/src/virtManager/engine.py Mon Mar 09 16:21:53 2009 -0400 +@@ -527,7 +527,18 @@ + else: + logging.warning("Reboot requested, but machine is already shutting down / shutoff") + +- def migrate_domain(self, uri, uuid, desturi): ++ def migrate_domain(self, uri, uuid, desthost): ++ desturi = None ++ for key in self.connections.keys(): ++ if self.get_connection(key).get_hostname() == desthost: ++ desturi = key ++ break ++ ++ if desturi == None: ++ logging.debug("Could not find dest uri for migrate hostname: %s" ++ % desthost) ++ return ++ + conn = self.get_connection(uri, False) + vm = conn.get_vm(uuid) + destconn = self.get_connection(desturi, False) +diff -r 3f37d0519b17 -r 6126a50801de src/virtManager/manager.py +--- a/src/virtManager/manager.py Mon Mar 09 16:21:32 2009 -0400 ++++ b/src/virtManager/manager.py Mon Mar 09 16:21:53 2009 -0400 +@@ -1100,14 +1100,11 @@ + + def migrate(self, ignore): + vm = self.current_vm() +- # get selected submenu(destination hostname) +- hostname = self.vmmenumigrate.get_active().get_image().get_stock()[0] +- for key in self.engine.connections.keys(): +- if self.engine.get_connection(key).get_hostname() == hostname: +- host_uri = key +- break ++ label = self.vmmenumigrate.get_active().get_image().get_stock()[0] ++ hostname = label.split(" ")[0] + if vm is not None: +- self.emit("action-migrate-domain", vm.get_connection().get_uri(), vm.get_uuid(), host_uri) ++ self.emit("action-migrate-domain", vm.get_connection().get_uri(), ++ vm.get_uuid(), hostname) + + def set_migrate_submenu(self, src): + self.engine.populate_migrate_menu(self.vmmenumigrate, self.migrate) +diff -rup virt-manager-0.6.1/src/virtManager/domain.py new/src/virtManager/domain.py +--- virt-manager-0.6.1/src/virtManager/domain.py 2009-09-13 20:25:12.000000000 -0400 ++++ new/src/virtManager/domain.py 2009-09-13 20:24:29.000000000 -0400 +@@ -1293,11 +1293,15 @@ class vmmDomain(gobject.GObject): + else: + self._disk_io = self._sample_disk_io_dummy + +- +- def migrate(self, dictcon): ++ def migrate(self, destconn): + flags = 0 + if self.lastStatus == libvirt.VIR_DOMAIN_RUNNING: + flags = libvirt.VIR_MIGRATE_LIVE +- self.vm.migrate(self.connection.vmm, flags, None, dictcon.get_short_hostname(), 0) ++ ++ newxml = self.get_xml() ++ ++ self.vm.migrate(destconn.vmm, flags, None, None, 0) ++ ++ destconn.define_domain(newxml) + + gobject.type_register(vmmDomain) diff --git a/virt-manager-0.6.1-rhel-fixes.patch b/virt-manager-0.6.1-rhel-fixes.patch new file mode 100644 index 0000000..4b8dcf4 --- /dev/null +++ b/virt-manager-0.6.1-rhel-fixes.patch @@ -0,0 +1,89 @@ +# HG changeset patch +# User Cole Robinson +# Date 1236957667 14400 +# Node ID 4331403b2e66dafdda618283dcea259a66fba423 +# Parent 89c007e38850e1283447ea4c19ff6f64ce6224b6 +Fix xml parsing for old style 'console' xml. + +diff -r 89c007e38850 -r 4331403b2e66 src/virtManager/details.py +--- a/src/virtManager/details.py Mon Mar 09 23:38:03 2009 -0400 ++++ b/src/virtManager/details.py Fri Mar 13 11:21:07 2009 -0400 +@@ -1106,7 +1106,7 @@ + _("(Primary Console)") or "") + self.window.get_widget("char-type").set_markup(typelabel) + self.window.get_widget("char-dev-type").set_text(charinfo[4] or "-") +- self.window.get_widget("char-target-port").set_text(charinfo[3]) ++ self.window.get_widget("char-target-port").set_text(charinfo[3] or "") + self.window.get_widget("char-source-path").set_text(charinfo[5] or "-") + + def refresh_hostdev_page(self): +diff -r 89c007e38850 -r 4331403b2e66 src/virtManager/domain.py +--- a/src/virtManager/domain.py Mon Mar 09 23:38:03 2009 -0400 ++++ b/src/virtManager/domain.py Fri Mar 13 11:21:07 2009 -0400 +@@ -806,7 +806,7 @@ + def _parse_char_devs(ctx): + chars = [] + devs = [] +- devs = ctx.xpathEval("/domain/devices/console") ++ devs.extend(ctx.xpathEval("/domain/devices/console")) + devs.extend(ctx.xpathEval("/domain/devices/parallel")) + devs.extend(ctx.xpathEval("/domain/devices/serial")) + +@@ -822,7 +822,7 @@ + target_port = None + source_path = None + +- for child in node.children: ++ for child in node.children or []: + if child.name == "target": + target_port = child.prop("port") + if child.name == "source": +# HG changeset patch +# User Cole Robinson +# Date 1236969355 14400 +# Node ID 403916479f503f79f23bb682698b38f595eb0626 +# Parent 81c591e8c64053840c12dac67ee06b5b97d419e7 +Handle old style 'console' tag in 'Connect to serial' list. + +diff -r 81c591e8c640 -r 403916479f50 src/virtManager/domain.py +--- a/src/virtManager/domain.py Fri Mar 13 14:35:28 2009 -0400 ++++ b/src/virtManager/domain.py Fri Mar 13 14:35:55 2009 -0400 +@@ -606,8 +606,9 @@ + def _parse_serial_consoles(ctx): + # [ Name, device type, source path + serial_list = [] +- devs = ctx.xpathEval("/domain/devices/serial") +- for node in devs: ++ sdevs = ctx.xpathEval("/domain/devices/serial") ++ cdevs = ctx.xpathEval("/domain/devices/console") ++ for node in sdevs: + name = "Serial " + dev_type = node.prop("type") + source_path = None +@@ -622,6 +623,26 @@ + + serial_list.append([name, dev_type, source_path]) + ++ for node in cdevs: ++ name = "Serial Console" ++ dev_type = "pty" ++ source_path = None ++ inuse = False ++ ++ for child in node.children: ++ if child.name == "source": ++ source_path = child.prop("path") ++ break ++ ++ if source_path: ++ for dev in serial_list: ++ if source_path == dev[2]: ++ inuse = True ++ break ++ ++ if not inuse: ++ serial_list.append([name, dev_type, source_path]) ++ + return serial_list + return self._parse_device_xml(_parse_serial_consoles) + diff --git a/virt-manager.spec b/virt-manager.spec index 97a2683..bccc7cc 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -8,7 +8,7 @@ Name: virt-manager Version: 0.6.1 -Release: 1%{_extra_release} +Release: 2%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -18,6 +18,11 @@ Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar Patch1: %{name}-%{version}-update-polish.patch Patch2: %{name}-%{version}-fix-cadl.patch Patch3: %{name}-%{version}-fix-stats-prefs.patch +# Fix migration for qemu/kvm guests (bz 517548) +Patch4: %{name}-%{version}-migrate-fixes.patch +# Back compat fixes for connecting to older xen installations (bz 489885) +Patch5: %{name}-%{version}-rhel-fixes.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # These two are just the oldest version tested @@ -92,6 +97,8 @@ management API. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build %configure @@ -169,6 +176,10 @@ fi %{_datadir}/dbus-1/services/%{name}.service %changelog +* Sun Sep 13 2009 Cole Robinson - 0.6.1-2.fc10 +- Fix migration for qemu/kvm guests (bz 517548) +- Back compat fixes for connecting to older xen installations (bz 489885) + * Wed Mar 4 2009 Cole Robinson - 0.6.1-1.fc10 - Update to 0.6.1 release - Disk and Network VM stats reporting