rpms/virt-manager/devel virt-manager-0.7.0-old-xen-compat.patch, NONE, 1.1 virt-manager-0.7.0-vm-migrate-list.patch, NONE, 1.1 virt-manager.spec, 1.48, 1.49

Cole Robinson crobinso at fedoraproject.org
Mon Mar 23 22:06:28 UTC 2009


Author: crobinso

Update of /cvs/pkgs/rpms/virt-manager/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2966

Modified Files:
	virt-manager.spec 
Added Files:
	virt-manager-0.7.0-old-xen-compat.patch 
	virt-manager-0.7.0-vm-migrate-list.patch 
Log Message:
Back compat fixes for connecting to older xen installations (bz 489885)
Don't show harmless NoneType error when launching new VM details window


virt-manager-0.7.0-old-xen-compat.patch:

--- NEW FILE virt-manager-0.7.0-old-xen-compat.patch ---
# HG changeset patch
# User Cole Robinson <crobinso at redhat.com>
# 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 <crobinso at redhat.com>
# Date 1236964404 14400
# Node ID 7ab8a12b3527d97bc92acca7e6e6ff3fbdd9746b
# Parent  4331403b2e66dafdda618283dcea259a66fba423
Check what XMLDesc flags the connection supports before using them.

diff -r 4331403b2e66 -r 7ab8a12b3527 src/virtManager/connection.py
--- a/src/virtManager/connection.py	Fri Mar 13 11:21:07 2009 -0400
+++ b/src/virtManager/connection.py	Fri Mar 13 13:13:24 2009 -0400
@@ -104,6 +104,7 @@
         self.state = self.STATE_DISCONNECTED
         self.vmm = None
         self.storage_capable = None
+        self.dom_xml_flags = None
 
         # Connection Storage pools: UUID -> vmmStoragePool
         self.pools = {}
@@ -290,6 +291,29 @@
     def get_capabilities(self):
         return virtinst.CapabilitiesParser.parse(self.vmm.getCapabilities())
 
+    def set_dom_flags(self, vm):
+        if self.dom_xml_flags != None:
+            # Already set
+            return
+
+        self.dom_xml_flags = []
+        for flags in [libvirt.VIR_DOMAIN_XML_SECURE,
+                      libvirt.VIR_DOMAIN_XML_INACTIVE,
+                      (libvirt.VIR_DOMAIN_XML_SECURE |
+                       libvirt.VIR_DOMAIN_XML_INACTIVE )]:
+            try:
+                vm.XMLDesc(flags)
+                self.dom_xml_flags.append(flags)
+            except libvirt.libvirtError, e:
+                logging.debug("%s does not support flags=%d : %s" %
+                              (self.get_uri(), flags, str(e)))
+
+    def has_dom_flags(self, flags):
+        if self.dom_xml_flags == None:
+            return False
+
+        return bool(self.dom_xml_flags.count(flags))
+
     def is_kvm_supported(self):
         if self.is_qemu_session():
             return False
diff -r 4331403b2e66 -r 7ab8a12b3527 src/virtManager/domain.py
--- a/src/virtManager/domain.py	Fri Mar 13 11:21:07 2009 -0400
+++ b/src/virtManager/domain.py	Fri Mar 13 13:13:24 2009 -0400
@@ -75,6 +75,10 @@
         self.toggle_sample_network_traffic()
         self.toggle_sample_disk_io()
 
+        # Determine available XML flags (older libvirt versions will error
+        # out if passed SECURE_XML, INACTIVE_XML, etc)
+        self.connection.set_dom_flags(vm)
+
     def get_xml(self):
         # Get domain xml. If cached xml is invalid, update.
         if self._xml is None or not self._valid_xml:
@@ -85,8 +89,12 @@
         # Force an xml update. Signal 'config-changed' if domain xml has
         # changed since last refresh
 
+        flags = libvirt.VIR_DOMAIN_XML_SECURE
+        if not self.connection.has_dom_flags(flags):
+            flags = 0
+
         origxml = self._xml
-        self._xml = self.vm.XMLDesc(libvirt.VIR_DOMAIN_XML_SECURE)
+        self._xml = self.vm.XMLDesc(flags)
         self._valid_xml = True
 
         if origxml != self._xml:
@@ -106,8 +114,15 @@
         return self._orig_inactive_xml
 
     def refresh_inactive_xml(self):
-        self._orig_inactive_xml = self.vm.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE | libvirt.VIR_DOMAIN_XML_SECURE)
-        print "xml refresh to: %s" % self._orig_inactive_xml
+        flags = (libvirt.VIR_DOMAIN_XML_INACTIVE |
+                 libvirt.VIR_DOMAIN_XML_SECURE)
+        if not self.connection.has_dom_flags(flags):
+            flags = libvirt.VIR_DOMAIN_XML_INACTIVE
+
+            if not self.connection.has_dom_flags:
+                flags = 0
+
+        self._orig_inactive_xml = self.vm.XMLDesc(flags)
 
     def release_handle(self):
         del(self.vm)
# HG changeset patch
# User Cole Robinson <crobinso at redhat.com>
# Date 1236969435 14400
# Node ID 6374136c62476678cf965eaac2c2680602641371
# Parent  403916479f503f79f23bb682698b38f595eb0626
Fix default 'New VM' install options on older xen connections.

diff -r 403916479f50 -r 6374136c6247 src/virtManager/create.py
--- a/src/virtManager/create.py	Fri Mar 13 14:35:55 2009 -0400
+++ b/src/virtManager/create.py	Fri Mar 13 14:37:15 2009 -0400
@@ -690,6 +690,16 @@
         net_list.set_active(default)
 
     def change_caps(self, gtype=None, dtype=None):
+
+        if gtype == None:
+            # If none specified, prefer HVM. This way, the default install
+            # options won't be limited because we default to PV. If hvm not
+            # supported, differ to guest_lookup
+            for g in self.caps.guests:
+                if g.os_type == "hvm":
+                    gtype = "hvm"
+                    break
+
         (newg,
          newdom) = virtinst.CapabilitiesParser.guest_lookup(conn=self.conn.vmm,
                                                             caps=self.caps,

virt-manager-0.7.0-vm-migrate-list.patch:

--- NEW FILE virt-manager-0.7.0-vm-migrate-list.patch ---
# HG changeset patch
# User Cole Robinson <crobinso at redhat.com>
# Date 1237844305 14400
# Node ID c0da7f8bb4be5ca9ace313b5e94c002248088081
# Parent  8077dae2ea80d56914648d7508e9fcbea0690563
Pull necessary info from vm object when building migrate list.

diff -r 8077dae2ea80 -r c0da7f8bb4be src/virtManager/details.py
--- a/src/virtManager/details.py	Fri Mar 13 14:37:57 2009 -0400
+++ b/src/virtManager/details.py	Mon Mar 23 17:38:25 2009 -0400
@@ -727,7 +727,8 @@
 
     def set_migrate_menu(self):
         menu = self.window.get_widget("details-menu-migrate_menu")
-        self.engine.populate_migrate_menu(menu, self.control_vm_migrate)
+        self.engine.populate_migrate_menu(menu, self.control_vm_migrate,
+                                          self.vm)
 
     def set_pause_widget_states(self, state):
         try:
diff -r 8077dae2ea80 -r c0da7f8bb4be src/virtManager/engine.py
--- a/src/virtManager/engine.py	Fri Mar 13 14:37:57 2009 -0400
+++ b/src/virtManager/engine.py	Mon Mar 23 17:38:25 2009 -0400
@@ -574,8 +574,8 @@
         migrate_progress.set_title(" ")
         return migrate_progress
 
-    def populate_migrate_menu(self, menu, migrate_func):
-        conns = self.get_available_migrate_hostnames()
+    def populate_migrate_menu(self, menu, migrate_func, vm):
+        conns = self.get_available_migrate_hostnames(vm)
 
         # Clear menu
         for item in menu:
@@ -597,9 +597,9 @@
             mitem.show()
             menu.add(mitem)
 
-    def get_available_migrate_hostnames(self):
-        driver = self.windowManager.current_connection().get_driver()
-        uri = self.windowManager.current_connection().get_uri()
+    def get_available_migrate_hostnames(self, vm):
+        driver = vm.get_connection().get_driver()
+        uri = vm.get_connection().get_uri()
         available_migrate_hostnames = {}
 
         # Returns list of lists of the form
diff -r 8077dae2ea80 -r c0da7f8bb4be src/virtManager/manager.py
--- a/src/virtManager/manager.py	Fri Mar 13 14:37:57 2009 -0400
+++ b/src/virtManager/manager.py	Mon Mar 23 17:38:25 2009 -0400
@@ -1124,7 +1124,12 @@
                       vm.get_uuid(), hostname)
 
     def set_migrate_submenu(self, src):
-        self.engine.populate_migrate_menu(self.vmmenumigrate, self.migrate)
+        vm = self.current_vm()
+        if not vm:
+            return
+
+        self.engine.populate_migrate_menu(self.vmmenumigrate, self.migrate,
+                                          vm)
 
     def _add_connection(self, engine, conn):
         conn.connect("vm-added", self.vm_added)


Index: virt-manager.spec
===================================================================
RCS file: /cvs/pkgs/rpms/virt-manager/devel/virt-manager.spec,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- virt-manager.spec	10 Mar 2009 06:37:24 -0000	1.48
+++ virt-manager.spec	23 Mar 2009 22:05:58 -0000	1.49
@@ -8,13 +8,15 @@
 
 Name: virt-manager
 Version: 0.7.0
-Release: 1%{_extra_release}
+Release: 2%{_extra_release}
 Summary: Virtual Machine Manager
 
 Group: Applications/Emulators
 License: GPLv2+
 URL: http://virt-manager.org/
 Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
+Patch1: %{name}-%{version}-old-xen-compat.patch
+Patch2: %{name}-%{version}-vm-migrate-list.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 # These two are just the oldest version tested
@@ -55,7 +57,8 @@
 # For local authentication against PolicyKit
 %if 0%{?fedora} >= 11
 Requires: PolicyKit-authentication-agent
-%else if 0%{?fedora} >= 9
+%endif
+%if 0%{?fedora} >= 9 && 0%{?fedora} < 11
 Requires: PolicyKit-gnome
 %endif
 
@@ -86,6 +89,8 @@
 
 %prep
 %setup -q
+%patch1 -p1
+%patch2 -p1
 
 %build
 %configure
@@ -163,6 +168,10 @@
 %{_datadir}/dbus-1/services/%{name}.service
 
 %changelog
+* Mon Mar 23 2009 Cole Robinson <crobinso at redhat.com> - 0.7.0-2.fc11
+- Back compat fixes for connecting to older xen installations (bz 489885)
+- Don't show harmless NoneType error when launching new VM details window
+
 * Tue Mar 10 2009 Cole Robinson <crobinso at redhat.com> - 0.7.0-1.fc11
 - Update to release 0.7.0
 - Redesigned 'New Virtual Machine' wizard




More information about the fedora-extras-commits mailing list