mirror of
https://src.fedoraproject.org/rpms/virt-manager.git
synced 2025-07-17 17:44:53 +00:00
Fix DBus interface usage & other misc bugs
This commit is contained in:
124
virt-manager-0.5.3-dbus-interface.patch
Normal file
124
virt-manager-0.5.3-dbus-interface.patch
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
diff -ruNp virt-manager-0.5.3.orig/src/virtManager/connection.py virt-manager-0.5.3.new/src/virtManager/connection.py
|
||||||
|
--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-01-10 20:17:51.000000000 -0500
|
||||||
|
+++ virt-manager-0.5.3.new/src/virtManager/connection.py 2008-03-06 11:06:26.000000000 -0500
|
||||||
|
@@ -161,9 +161,10 @@ class vmmConnection(gobject.GObject):
|
||||||
|
|
||||||
|
def _device_added(self, path):
|
||||||
|
obj = self.bus.get_object("org.freedesktop.Hal", path)
|
||||||
|
- if obj.QueryCapability("net"):
|
||||||
|
- name = obj.GetPropertyString("net.interface")
|
||||||
|
- mac = obj.GetPropertyString("net.address")
|
||||||
|
+ objif = dbus.Interface(obj, "org.freedesktop.Hal.Device")
|
||||||
|
+ if objif.QueryCapability("net"):
|
||||||
|
+ name = objif.GetPropertyString("net.interface")
|
||||||
|
+ mac = objif.GetPropertyString("net.address")
|
||||||
|
|
||||||
|
# Now magic to determine if the device is part of a bridge
|
||||||
|
shared = False
|
||||||
|
@@ -171,7 +172,7 @@ class vmmConnection(gobject.GObject):
|
||||||
|
try:
|
||||||
|
# XXX Linux specific - needs porting for other OS - patches
|
||||||
|
# welcomed...
|
||||||
|
- sysfspath = obj.GetPropertyString("linux.sysfs_path")
|
||||||
|
+ sysfspath = objif.GetPropertyString("linux.sysfs_path")
|
||||||
|
|
||||||
|
# If running a device in bridged mode, there's a reasonable
|
||||||
|
# chance that the actual ethernet device has been renamed to
|
||||||
|
diff -ruNp virt-manager-0.5.3.orig/src/virtManager/createnet.py virt-manager-0.5.3.new/src/virtManager/createnet.py
|
||||||
|
--- virt-manager-0.5.3.orig/src/virtManager/createnet.py 2008-01-10 20:17:51.000000000 -0500
|
||||||
|
+++ virt-manager-0.5.3.new/src/virtManager/createnet.py 2008-03-06 11:04:52.000000000 -0500
|
||||||
|
@@ -404,10 +404,11 @@ class vmmCreateNetwork(gobject.GObject):
|
||||||
|
# Find info about all current present media
|
||||||
|
for d in self.hal_iface.FindDeviceByCapability("volume"):
|
||||||
|
vol = self.bus.get_object("org.freedesktop.Hal", d)
|
||||||
|
- if vol.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
- vol.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
- devnode = vol.GetProperty("block.device")
|
||||||
|
- label = vol.GetProperty("volume.label")
|
||||||
|
+ volif = dbus.Interface(vol, "org.freedesktop.Hal.Device")
|
||||||
|
+ if volif.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
+ volif.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
+ devnode = volif.GetProperty("block.device")
|
||||||
|
+ label = volif.GetProperty("volume.label")
|
||||||
|
if label == None or len(label) == 0:
|
||||||
|
label = devnode
|
||||||
|
vollabel[devnode] = label
|
||||||
|
@@ -416,7 +417,8 @@ class vmmCreateNetwork(gobject.GObject):
|
||||||
|
|
||||||
|
for d in self.hal_iface.FindDeviceByCapability("storage.cdrom"):
|
||||||
|
dev = self.bus.get_object("org.freedesktop.Hal", d)
|
||||||
|
- devnode = dev.GetProperty("block.device")
|
||||||
|
+ devif = dbus.Interface(dev, "org.freedesktop.Hal.Device")
|
||||||
|
+ devnode = devif.GetProperty("block.device")
|
||||||
|
if vollabel.has_key(devnode):
|
||||||
|
model.append([devnode, vollabel[devnode], True, volpath[devnode]])
|
||||||
|
else:
|
||||||
|
diff -ruNp virt-manager-0.5.3.orig/src/virtManager/create.py virt-manager-0.5.3.new/src/virtManager/create.py
|
||||||
|
--- virt-manager-0.5.3.orig/src/virtManager/create.py 2008-01-10 20:17:51.000000000 -0500
|
||||||
|
+++ virt-manager-0.5.3.new/src/virtManager/create.py 2008-03-06 11:04:52.000000000 -0500
|
||||||
|
@@ -139,7 +139,6 @@ class vmmCreate(gobject.GObject):
|
||||||
|
cd_list.add_attribute(text, 'sensitive', 2)
|
||||||
|
try:
|
||||||
|
self.optical_helper = vmmOpticalDriveHelper(self.window.get_widget("cd-path"))
|
||||||
|
- self.optical_helper.populate_opt_media()
|
||||||
|
self.window.get_widget("media-physical").set_sensitive(True)
|
||||||
|
except Exception, e:
|
||||||
|
logging.error("Unable to create optical-helper widget: '%s'", e)
|
||||||
|
diff -ruNp virt-manager-0.5.3.orig/src/virtManager/opticalhelper.py virt-manager-0.5.3.new/src/virtManager/opticalhelper.py
|
||||||
|
--- virt-manager-0.5.3.orig/src/virtManager/opticalhelper.py 2008-01-10 20:17:51.000000000 -0500
|
||||||
|
+++ virt-manager-0.5.3.new/src/virtManager/opticalhelper.py 2008-03-06 11:04:52.000000000 -0500
|
||||||
|
@@ -52,10 +52,11 @@ class vmmOpticalDriveHelper(gobject.GObj
|
||||||
|
# Find info about all current present media
|
||||||
|
for d in self.hal_iface.FindDeviceByCapability("volume"):
|
||||||
|
vol = self.bus.get_object("org.freedesktop.Hal", d)
|
||||||
|
- if vol.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
- vol.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
- devnode = vol.GetProperty("block.device")
|
||||||
|
- label = vol.GetProperty("volume.label")
|
||||||
|
+ volif = dbus.Interface(vol, "org.freedesktop.Hal.Device")
|
||||||
|
+ if volif.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
+ volif.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
+ devnode = volif.GetProperty("block.device")
|
||||||
|
+ label = volif.GetProperty("volume.label")
|
||||||
|
if label == None or len(label) == 0:
|
||||||
|
label = devnode
|
||||||
|
vollabel[devnode] = label
|
||||||
|
@@ -63,19 +64,21 @@ class vmmOpticalDriveHelper(gobject.GObj
|
||||||
|
|
||||||
|
for d in self.hal_iface.FindDeviceByCapability("storage.cdrom"):
|
||||||
|
dev = self.bus.get_object("org.freedesktop.Hal", d)
|
||||||
|
- devnode = dev.GetProperty("block.device")
|
||||||
|
+ devif = dbus.Interface(dev, "org.freedesktop.Hal.Device")
|
||||||
|
+ devnode = devif.GetProperty("block.device")
|
||||||
|
if vollabel.has_key(devnode):
|
||||||
|
- self.model.append([devnode, vollabel[devnode], True, volpath[devnode]])
|
||||||
|
+ self.model.append([devnode, "%s (%s)" % (vollabel[devnode], devnode), True, volpath[devnode]])
|
||||||
|
else:
|
||||||
|
- self.model.append([devnode, _("No media present"), False, None])
|
||||||
|
+ self.model.append([devnode, "%s (%s)" % (_("No media present"), devnode), False, None])
|
||||||
|
|
||||||
|
def _device_added(self, path):
|
||||||
|
vol = self.bus.get_object("org.freedesktop.Hal", path)
|
||||||
|
- if vol.QueryCapability("volume"):
|
||||||
|
- if vol.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
- vol.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
- devnode = vol.GetProperty("block.device")
|
||||||
|
- label = vol.GetProperty("volume.label")
|
||||||
|
+ volif = dbus.Interface(vol, "org.freedesktop.Hal.Device")
|
||||||
|
+ if volif.QueryCapability("volume"):
|
||||||
|
+ if volif.GetPropertyBoolean("volume.is_disc") and \
|
||||||
|
+ volif.GetPropertyBoolean("volume.disc.has_data"):
|
||||||
|
+ devnode = volif.GetProperty("block.device")
|
||||||
|
+ label = volif.GetProperty("volume.label")
|
||||||
|
if label == None or len(label) == 0:
|
||||||
|
label = devnode
|
||||||
|
|
||||||
|
@@ -88,8 +91,6 @@ class vmmOpticalDriveHelper(gobject.GObj
|
||||||
|
row[3] = path
|
||||||
|
|
||||||
|
def _device_removed(self, path):
|
||||||
|
- vol = self.bus.get_object("org.freedesktop.Hal", path)
|
||||||
|
-
|
||||||
|
active = self.widget.get_active()
|
||||||
|
idx = 0
|
||||||
|
# Search for the row containing matching HAL volume path
|
12
virt-manager-0.5.3-default-xen-uri.patch
Normal file
12
virt-manager-0.5.3-default-xen-uri.patch
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
diff -rup virt-manager-0.5.3.old/src/virt-manager.py.in virt-manager-0.5.3/src/virt-manager.py.in
|
||||||
|
--- virt-manager-0.5.3.old/src/virt-manager.py.in 2008-03-05 17:00:38.000000000 -0500
|
||||||
|
+++ virt-manager-0.5.3/src/virt-manager.py.in 2008-03-05 17:01:01.000000000 -0500
|
||||||
|
@@ -172,7 +172,7 @@ def show_engine(engine, show, uri, uuid)
|
||||||
|
if engine.config.get_connections() is None or len(engine.config.get_connections()) == 0:
|
||||||
|
tryuri = None
|
||||||
|
if os.path.exists("/var/lib/xend") and os.path.exists("/proc/xen"):
|
||||||
|
- tryuri = "xen"
|
||||||
|
+ tryuri = "xen:///"
|
||||||
|
elif os.path.exists("/usr/bin/qemu"):
|
||||||
|
if os.getuid() == 0:
|
||||||
|
tryuri = "qemu:///system"
|
19
virt-manager-0.5.3-fix-add-blktap-disk.patch
Normal file
19
virt-manager-0.5.3-fix-add-blktap-disk.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User "Cole Robinson <crobinso@redhat.com>"
|
||||||
|
# Date 1201714089 18000
|
||||||
|
# Node ID 90dd30034ebc05edd006a2174680b8d7ff0f522a
|
||||||
|
# Parent 384724cb14e02c6c98bec00db5567e03349caca6
|
||||||
|
Fix adding virtual blktap disk to pv guest via addhardware wizard. rhbz 430926
|
||||||
|
|
||||||
|
diff -r 384724cb14e0 -r 90dd30034ebc src/virtManager/addhardware.py
|
||||||
|
--- a/src/virtManager/addhardware.py Wed Jan 16 11:49:56 2008 -0500
|
||||||
|
+++ b/src/virtManager/addhardware.py Wed Jan 30 12:28:09 2008 -0500
|
||||||
|
@@ -700,7 +700,7 @@ class vmmAddHardware(gobject.GObject):
|
||||||
|
device=device)
|
||||||
|
if self._disk.type == virtinst.VirtualDisk.TYPE_FILE and \
|
||||||
|
not self.vm.is_hvm() and virtinst.util.is_blktap_capable():
|
||||||
|
- disk.driver_name = virtinst.VirtualDisk.DRIVER_TAP
|
||||||
|
+ self._disk.driver_name = virtinst.VirtualDisk.DRIVER_TAP
|
||||||
|
except ValueError, e:
|
||||||
|
self._validation_error_box(_("Invalid Storage Parameters"), \
|
||||||
|
str(e))
|
38
virt-manager-0.5.3-fix-add-bridge.patch
Normal file
38
virt-manager-0.5.3-fix-add-bridge.patch
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User "Cole Robinson <crobinso@redhat.com>"
|
||||||
|
# Date 1200502173 18000
|
||||||
|
# Node ID dbd25721f588ab3662ab28b3f675f1e7bf071376
|
||||||
|
# Parent 49c55daf788d3ba7dc7dfd270b2b607b9cb6c7ae
|
||||||
|
Adding a bridged network device was broken, adding the display name and not the interface name. Fix similar to cset 597. Fixes bug 392881.
|
||||||
|
|
||||||
|
diff -r 49c55daf788d -r dbd25721f588 src/virtManager/addhardware.py
|
||||||
|
--- a/src/virtManager/addhardware.py Tue Jan 15 08:58:32 2008 -0500
|
||||||
|
+++ b/src/virtManager/addhardware.py Wed Jan 16 11:49:33 2008 -0500
|
||||||
|
@@ -122,12 +122,12 @@ class vmmAddHardware(gobject.GObject):
|
||||||
|
network_list.add_attribute(text, 'text', 1)
|
||||||
|
|
||||||
|
device_list = self.window.get_widget("net-device")
|
||||||
|
- device_model = gtk.ListStore(str, bool)
|
||||||
|
+ device_model = gtk.ListStore(str, str, bool)
|
||||||
|
device_list.set_model(device_model)
|
||||||
|
text = gtk.CellRendererText()
|
||||||
|
device_list.pack_start(text, True)
|
||||||
|
- device_list.add_attribute(text, 'text', 0)
|
||||||
|
- device_list.add_attribute(text, 'sensitive', 1)
|
||||||
|
+ device_list.add_attribute(text, 'text', 1)
|
||||||
|
+ device_list.add_attribute(text, 'sensitive', 2)
|
||||||
|
|
||||||
|
target_list = self.window.get_widget("target-device")
|
||||||
|
target_model = gtk.ListStore(str, int, str, str, str)
|
||||||
|
@@ -820,9 +820,9 @@ class vmmAddHardware(gobject.GObject):
|
||||||
|
net = self.vm.get_connection().get_net_device(name)
|
||||||
|
if net.is_shared():
|
||||||
|
hasShared = True
|
||||||
|
- model.append(["%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
|
||||||
|
+ model.append([net.get_bridge(), "%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
|
||||||
|
else:
|
||||||
|
- model.append(["%s (%s)" % (net.get_name(), _("Not bridged")), False])
|
||||||
|
+ model.append([net.get_bridge(), "%s (%s)" % (net.get_name(), _("Not bridged")), False])
|
||||||
|
return hasShared
|
||||||
|
|
||||||
|
def populate_target_device_model(self, model):
|
22
virt-manager-0.5.3-fix-xen-cdrom-insert.patch
Normal file
22
virt-manager-0.5.3-fix-xen-cdrom-insert.patch
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
diff -r 523f2f7501c6 src/virtManager/domain.py
|
||||||
|
--- a/src/virtManager/domain.py Wed Mar 12 10:37:49 2008 +0100
|
||||||
|
+++ b/src/virtManager/domain.py Wed Mar 12 12:43:12 2008 -0400
|
||||||
|
@@ -570,13 +570,18 @@ class vmmDomain(gobject.GObject):
|
||||||
|
doc = libxml2.parseDoc(xml)
|
||||||
|
ctx = doc.xpathNewContext()
|
||||||
|
disk_fragment = ctx.xpathEval("/disk")
|
||||||
|
+ driver_fragment = ctx.xpathEval("/disk/driver")
|
||||||
|
origdisk = disk_fragment[0].serialize()
|
||||||
|
disk_fragment[0].setProp("type", type)
|
||||||
|
elem = disk_fragment[0].newChild(None, "source", None)
|
||||||
|
if type == "file":
|
||||||
|
elem.setProp("file", source)
|
||||||
|
+ if driver_fragment:
|
||||||
|
+ driver_fragment.setProp("name", type)
|
||||||
|
else:
|
||||||
|
elem.setProp("dev", source)
|
||||||
|
+ if driver_fragment:
|
||||||
|
+ driver_fragment.setProp("name", "phy")
|
||||||
|
result = disk_fragment[0].serialize()
|
||||||
|
logging.debug("connect_cdrom_device produced the following XML: %s" % result)
|
||||||
|
finally:
|
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Name: virt-manager
|
Name: virt-manager
|
||||||
Version: 0.5.3
|
Version: 0.5.3
|
||||||
Release: 1%{_extra_release}
|
Release: 2%{_extra_release}
|
||||||
Summary: Virtual Machine Manager
|
Summary: Virtual Machine Manager
|
||||||
|
|
||||||
Group: Applications/Emulators
|
Group: Applications/Emulators
|
||||||
@@ -17,6 +17,13 @@ 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
|
||||||
Source1: %{name}.pam
|
Source1: %{name}.pam
|
||||||
Source2: %{name}.console
|
Source2: %{name}.console
|
||||||
|
|
||||||
|
Patch1: %{name}-%{version}-fix-add-bridge.patch
|
||||||
|
Patch2: %{name}-%{version}-fix-add-blktap-disk.patch
|
||||||
|
Patch3: %{name}-%{version}-dbus-interface.patch
|
||||||
|
Patch4: %{name}-%{version}-default-xen-uri.patch
|
||||||
|
Patch5: %{name}-%{version}-fix-xen-cdrom-insert.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
|
||||||
@@ -70,6 +77,11 @@ API.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@@ -160,6 +172,13 @@ fi
|
|||||||
%{_datadir}/dbus-1/services/%{name}.service
|
%{_datadir}/dbus-1/services/%{name}.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 19 2008 Daniel P. Berrange <berrange@redhat.com> - 0.5.3-2.fc7
|
||||||
|
- Fix cdrom media connect
|
||||||
|
- Fix default Xen hypervisor URI
|
||||||
|
- Fix DBus calls to use an explicit interface (rhbz #435506)
|
||||||
|
- Fix adding blktap disk to PV guest via addhardware wizard
|
||||||
|
- Fix adding shared network devices via addhardware wizard
|
||||||
|
|
||||||
* Thu Jan 10 2008 Daniel P. Berrange <berrange@redhat.com> - 0.5.3-1.fc7
|
* Thu Jan 10 2008 Daniel P. Berrange <berrange@redhat.com> - 0.5.3-1.fc7
|
||||||
- Updated to 0.5.3 release
|
- Updated to 0.5.3 release
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user