mirror of
https://src.fedoraproject.org/rpms/virt-manager.git
synced 2025-07-16 17:14:53 +00:00
Back compat fixes for connecting to older xen installations (bz 489885)
Don't show harmless NoneType error when launching new VM details window
This commit is contained in:
161
virt-manager-0.7.0-old-xen-compat.patch
Normal file
161
virt-manager-0.7.0-old-xen-compat.patch
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Cole Robinson <crobinso@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@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@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,
|
64
virt-manager-0.7.0-vm-migrate-list.patch
Normal file
64
virt-manager-0.7.0-vm-migrate-list.patch
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Cole Robinson <crobinso@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)
|
@@ -8,13 +8,15 @@
|
|||||||
|
|
||||||
Name: virt-manager
|
Name: virt-manager
|
||||||
Version: 0.7.0
|
Version: 0.7.0
|
||||||
Release: 1%{_extra_release}
|
Release: 2%{_extra_release}
|
||||||
Summary: Virtual Machine Manager
|
Summary: Virtual Machine Manager
|
||||||
|
|
||||||
Group: Applications/Emulators
|
Group: Applications/Emulators
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://virt-manager.org/
|
URL: http://virt-manager.org/
|
||||||
Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
|
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)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
# These two are just the oldest version tested
|
# These two are just the oldest version tested
|
||||||
@@ -55,7 +57,8 @@ Requires: gtk-vnc-python >= 0.3.4
|
|||||||
# For local authentication against PolicyKit
|
# For local authentication against PolicyKit
|
||||||
%if 0%{?fedora} >= 11
|
%if 0%{?fedora} >= 11
|
||||||
Requires: PolicyKit-authentication-agent
|
Requires: PolicyKit-authentication-agent
|
||||||
%else if 0%{?fedora} >= 9
|
%endif
|
||||||
|
%if 0%{?fedora} >= 9 && 0%{?fedora} < 11
|
||||||
Requires: PolicyKit-gnome
|
Requires: PolicyKit-gnome
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@@ -86,6 +89,8 @@ management API.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@@ -163,6 +168,10 @@ fi
|
|||||||
%{_datadir}/dbus-1/services/%{name}.service
|
%{_datadir}/dbus-1/services/%{name}.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 23 2009 Cole Robinson <crobinso@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@redhat.com> - 0.7.0-1.fc11
|
* Tue Mar 10 2009 Cole Robinson <crobinso@redhat.com> - 0.7.0-1.fc11
|
||||||
- Update to release 0.7.0
|
- Update to release 0.7.0
|
||||||
- Redesigned 'New Virtual Machine' wizard
|
- Redesigned 'New Virtual Machine' wizard
|
||||||
|
Reference in New Issue
Block a user