Hello community,
here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2014-03-11 17:28:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virt-manager (Old)
and /work/SRC/openSUSE:Factory/.virt-manager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager"
Changes:
--------
--- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2014-02-19 07:25:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2014-03-11 17:28:42.000000000 +0100
@@ -1,0 +2,57 @@
+Fri Mar 10 07:46:16 MDT 2014 - carnold@suse.com
+
+- Upstream bug fixes
+ 531db6a7-new-volume-tooltip-logic.patch
+ 531dbfa7-handle-errors-when-deregistering-events-on-close.patch
+
+-------------------------------------------------------------------
+Fri Mar 7 10:26:16 MST 2014 - carnold@suse.com
+
+- Upstream bug fixes
+ 5318a2cd-cpu-model-fallback-failure-fix.patch
+ 5318a626-adding-filesystem-device-fix.patch
+ 5318aa88-invalid-libvirt-volume-XML.patch
+ 5318b486-virtinstall-location-iso-fix.patch
+ 5319db07-customize-add-disk-fix.patch
+
+-------------------------------------------------------------------
+Thu Mar 6 15:16:39 MST 2014 - carnold@suse.com
+
+- Allow the installation repos provided by zypper to be selected
+ as network installation sources
+ virtman-show-suse-install-repos.patch
+
+-------------------------------------------------------------------
+Mon Mar 3 09:26:39 MST 2014 - carnold@suse.com
+
+- Upstream bug fixes
+ 530f80f5-handle-missing-storage-volumes.patch
+ 5310bd89-console-fix-unsetting-resize-guest.patch
+ 5310e3ac-set-show_arrow-to-true.patch
+ 5310e3ac-vmmConsolePages-toggle-visibilities-on-page-change.patch
+ 5310e3ac-vmmDetails-toggle-visibilities-on-page-change.patch
+ 5310e52d-fix-setting-default-window-size.patch
+
+-------------------------------------------------------------------
+Wed Feb 27 08:00:39 MST 2014 - carnold@suse.com
+
+- Upstream bug fixes
+ 53022930-lxc-connection-fix.patch
+ 530229cb-non-x86-kvm-creation-fix.patch
+ 53023f56-dont-alter-caps-machine-list-on-create.patch
+ 53030858-generate_target-fix.patch
+ 53037798-not-customizing-generate_target-fix.patch
+ 53047532-dont-get-duplicated-disks.patch
+ 53047595-calculate-disk-bus-properly.patch
+ 530987c4-disk-bus-calculation-fix.patch
+ 530c021c-attempt-empty-path-on-virDomainBlockStats.patch
+ 530cd6ab-log-broken-xml.patch
+ 530cf4de-allow-numbered-object-names.patch
+ 530cfa5e-close-connection-on-tick-failure-fix.patch
+
+-------------------------------------------------------------------
+Wed Feb 26 16:49:39 UTC 2014 - cbosdonnat@suse.com
+
+- virt-manager-common requires python-libxml2
+
+-------------------------------------------------------------------
New:
----
53022930-lxc-connection-fix.patch
530229cb-non-x86-kvm-creation-fix.patch
53023f56-dont-alter-caps-machine-list-on-create.patch
53030858-generate_target-fix.patch
53037798-not-customizing-generate_target-fix.patch
53047532-dont-get-duplicated-disks.patch
53047595-calculate-disk-bus-properly.patch
530987c4-disk-bus-calculation-fix.patch
530c021c-attempt-empty-path-on-virDomainBlockStats.patch
530cd6ab-log-broken-xml.patch
530cf4de-allow-numbered-object-names.patch
530cfa5e-close-connection-on-tick-failure-fix.patch
530f80f5-handle-missing-storage-volumes.patch
5310bd89-console-fix-unsetting-resize-guest.patch
5310e3ac-set-show_arrow-to-true.patch
5310e3ac-vmmConsolePages-toggle-visibilities-on-page-change.patch
5310e3ac-vmmDetails-toggle-visibilities-on-page-change.patch
5310e52d-fix-setting-default-window-size.patch
5318a2cd-cpu-model-fallback-failure-fix.patch
5318a626-adding-filesystem-device-fix.patch
5318aa88-invalid-libvirt-volume-XML.patch
5318b486-virtinstall-location-iso-fix.patch
5319db07-customize-add-disk-fix.patch
531db6a7-new-volume-tooltip-logic.patch
531dbfa7-handle-errors-when-deregistering-events-on-close.patch
virtman-show-suse-install-repos.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ virt-manager.spec ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:43.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:43.000000000 +0100
@@ -35,6 +35,31 @@
Source0: %{name}-%{version}.tar.bz2
Source1: virt-install.rb
Source2: virt-install.desktop
+Patch1: 53022930-lxc-connection-fix.patch
+Patch2: 530229cb-non-x86-kvm-creation-fix.patch
+Patch3: 53023f56-dont-alter-caps-machine-list-on-create.patch
+Patch4: 53030858-generate_target-fix.patch
+Patch5: 53037798-not-customizing-generate_target-fix.patch
+Patch6: 53047532-dont-get-duplicated-disks.patch
+Patch7: 53047595-calculate-disk-bus-properly.patch
+Patch8: 530987c4-disk-bus-calculation-fix.patch
+Patch9: 530c021c-attempt-empty-path-on-virDomainBlockStats.patch
+Patch10: 530cd6ab-log-broken-xml.patch
+Patch11: 530cf4de-allow-numbered-object-names.patch
+Patch12: 530cfa5e-close-connection-on-tick-failure-fix.patch
+Patch13: 530f80f5-handle-missing-storage-volumes.patch
+Patch14: 5310bd89-console-fix-unsetting-resize-guest.patch
+Patch15: 5310e3ac-set-show_arrow-to-true.patch
+Patch16: 5310e3ac-vmmConsolePages-toggle-visibilities-on-page-change.patch
+Patch17: 5310e3ac-vmmDetails-toggle-visibilities-on-page-change.patch
+Patch18: 5310e52d-fix-setting-default-window-size.patch
+Patch19: 5318a2cd-cpu-model-fallback-failure-fix.patch
+Patch20: 5318a626-adding-filesystem-device-fix.patch
+Patch21: 5318aa88-invalid-libvirt-volume-XML.patch
+Patch22: 5318b486-virtinstall-location-iso-fix.patch
+Patch23: 5319db07-customize-add-disk-fix.patch
+Patch24: 531db6a7-new-volume-tooltip-logic.patch
+Patch25: 531dbfa7-handle-errors-when-deregistering-events-on-close.patch
Patch50: virtman-desktop.patch
Patch51: virtman-cdrom.patch
Patch52: virtman-kvm.patch
@@ -51,6 +76,7 @@
Patch69: virtman-allow-pv-iso-install.patch
Patch70: virtman-autoyast-support.patch
Patch71: virtman-vminstall.patch
+Patch72: virtman-show-suse-install-repos.patch
Patch150: virtinst-cdrom.patch
Patch151: virtinst-storage-ocfs2.patch
Patch152: virtinst-qed.patch
@@ -116,6 +142,7 @@
# however varying amounts of functionality will not be enabled.
Requires: libvirt-python >= 0.7.0
Requires: python-ipaddr
+Requires: python-libxml2
Requires: python-urlgrabber
%description common
@@ -144,6 +171,31 @@
%prep
%setup -q
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
@@ -161,6 +213,7 @@
#%patch69 -p1 pv iso install
%patch70 -p1
%patch71 -p1
+%patch72 -p1
#%patch150 -p1 use 'c' for cdrom
%patch151 -p1
%patch152 -p1
++++++ 53022930-lxc-connection-fix.patch ++++++
Subject: connect: Fix connecting to lxc:/// URI
From: Cole Robinson crobinso@redhat.com Mon Feb 17 10:22:24 2014 -0500
Date: Mon Feb 17 10:22:24 2014 -0500:
Git: 0169042c1ee45fed779fc106476fc98265236651
diff --git a/virtManager/connect.py b/virtManager/connect.py
index 7cd4da7..1247d75 100644
--- a/virtManager/connect.py
+++ b/virtManager/connect.py
@@ -364,7 +364,7 @@ class vmmConnect(vmmGObjectUI):
hvstr = ""
if hv == HV_XEN:
hvstr = "xen"
- elif hv == HV_QEMU or HV_QEMU_SESSION:
+ elif hv == HV_QEMU or hv == HV_QEMU_SESSION:
hvstr = "qemu"
else:
hvstr = "lxc"
++++++ 530229cb-non-x86-kvm-creation-fix.patch ++++++
Subject: create: Fix non-x86 qemu/kvm guest creation
From: Cole Robinson crobinso@redhat.com Mon Feb 17 10:24:41 2014 -0500
Date: Mon Feb 17 10:24:59 2014 -0500:
Git: a37b200f69347922800d58342968307b74ec9ded
diff --git a/virtManager/create.py b/virtManager/create.py
index d8e68c3..f1c57b7 100644
--- a/virtManager/create.py
+++ b/virtManager/create.py
@@ -1376,7 +1376,8 @@ class vmmCreate(vmmGObjectUI):
guest.add_default_devices()
- if self.conn.check_support(self.conn.SUPPORT_CONN_PM_DISABLE):
+ if (guest.os.is_x86() and
+ self.conn.check_support(self.conn.SUPPORT_CONN_PM_DISABLE)):
guest.pm.suspend_to_mem = False
guest.pm.suspend_to_disk = False
++++++ 53023f56-dont-alter-caps-machine-list-on-create.patch ++++++
Subject: create: Don't alter caps machine list
From: Cole Robinson crobinso@redhat.com Mon Feb 17 11:56:54 2014 -0500
Date: Mon Feb 17 11:56:54 2014 -0500:
Git: 7c516b382cbb94c2ecafb07baedae19b8d1a2b67
diff --git a/virtManager/create.py b/virtManager/create.py
index 2af62c4..b4b1dfe 100644
--- a/virtManager/create.py
+++ b/virtManager/create.py
@@ -689,7 +689,7 @@ class vmmCreate(vmmGObjectUI):
model = lst.get_model()
model.clear()
- machines = self.capsdomain.machines
+ machines = self.capsdomain.machines[:]
if self.capsguest.arch in ["i686", "x86_64"]:
machines = []
machines.sort()
++++++ 53030858-generate_target-fix.patch ++++++
Subject: Fix generate_target once more
From: Martin Kletzander mkletzan@redhat.com Mon Feb 17 16:41:02 2014 +0100
Date: Tue Feb 18 08:14:32 2014 +0100:
Git: 55d5b35e504f1e6c21fbd24f5b351ed4ab4c603f
Passing a zero to the generate_target() function's as pref_ctrl
parameter makes the 'if pref_ctrl' conditions obviously false. Also
the range created was starting from 0 and not from 1. Apart from
fixing this, also fix tests so they actually test something this time.
Signed-off-by: Martin Kletzander
diff --git a/tests/xmlconfig.py b/tests/xmlconfig.py
index 9db51cb..5d08ca0 100644
--- a/tests/xmlconfig.py
+++ b/tests/xmlconfig.py
@@ -1045,7 +1045,8 @@ class TestXMLConfig(unittest.TestCase):
self.assertEquals("hdc", disk.generate_target(["hdb", "sda"]))
self.assertEquals("hdb", disk.generate_target(["hda", "hdd"]))
- disk.bus = "scsi"
+ disk.bus = "virtio-scsi"
+ self.assertEquals("sdb", disk.generate_target(["sda", "sdg", "sdi"], 0))
self.assertEquals("sdh", disk.generate_target(["sda", "sdg"], 1))
def testFedoraTreeinfo(self):
diff --git a/virtinst/devicedisk.py b/virtinst/devicedisk.py
index 28c55ba..6e7c6c8 100644
--- a/virtinst/devicedisk.py
+++ b/virtinst/devicedisk.py
@@ -925,14 +925,14 @@ class VirtualDisk(VirtualDevice):
def get_target():
first_found = None
- ran = range(1, maxnode + 1)
- if pref_ctrl:
+ ran = range(maxnode)
+ if pref_ctrl is not None:
# We assume narrow SCSI bus and libvirt assigning 7
- # (0-6, 7-13, etc.) devices per controller
+ # (1-7, 8-14, etc.) devices per controller
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
for i in ran:
- gen_t = prefix + self.num_to_target(i)
+ gen_t = prefix + self.num_to_target(i + 1)
if gen_t in skip_targets:
skip_targets.remove(gen_t)
continue
@@ -948,7 +948,7 @@ class VirtualDisk(VirtualDevice):
self.target = ret
return ret
- if pref_ctrl:
+ if pref_ctrl is not None:
# This basically means that we either chose full
# controller or didn't add any
raise ValueError(_("Controller number %d for disk of type %s has "
++++++ 53037798-not-customizing-generate_target-fix.patch ++++++
Subject: addhardware: generate target only if not customizing
From: Martin Kletzander mkletzan@redhat.com Tue Feb 18 11:38:56 2014 +0100
Date: Tue Feb 18 16:09:12 2014 +0100:
Git: bc5d84b0407257b1e257e7cabaf619430a7e8f83
Commit 078e1a4d0503d98884b5b61df83021941bf32e8d changed the fact that
disk target was generated only when adding new disk, not when current
disk is being customized, so fix that back.
Signed-off-by: Martin Kletzander
diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
index ecb5fc8..b1f6251 100644
--- a/virtManager/addhardware.py
+++ b/virtManager/addhardware.py
@@ -1471,20 +1471,22 @@ class vmmAddHardware(vmmGObjectUI):
return disk
try:
+ used = []
disk.bus = bus
if cache:
disk.driver_cache = cache
# Generate target
if not self.is_customize_dialog:
- used = []
disks = (self.vm.get_disk_devices() +
self.vm.get_disk_devices(inactive=True))
for d in disks:
used.append(d.target)
prefer_ctrl = self._set_disk_controller(disk, controller_model, disks)
- disk.generate_target(used, prefer_ctrl)
+
+ if not self.is_customize_dialog:
+ disk.generate_target(used, prefer_ctrl)
except Exception, e:
return self.err.val_err(_("Storage parameter error."), e)
++++++ 53047532-dont-get-duplicated-disks.patch ++++++
Subject: addhardware: don't get duplicated disks
From: Martin Kletzander mkletzan@redhat.com Wed Feb 19 10:11:14 2014 +0100
Date: Wed Feb 19 10:11:14 2014 +0100:
Git: 7c437f6a6f07c81bcf20cecece462c857d0b5848
Signed-off-by: Martin Kletzander
diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
index b446a9d..ed25c26 100644
--- a/virtManager/addhardware.py
+++ b/virtManager/addhardware.py
@@ -1481,7 +1481,8 @@ class vmmAddHardware(vmmGObjectUI):
disks = (self.vm.get_disk_devices() +
self.vm.get_disk_devices(inactive=True))
for d in disks:
- used.append(d.target)
+ if d.target not in used:
+ used.append(d.target)
prefer_ctrl = self._set_disk_controller(disk, controller_model, disks)
++++++ 53047595-calculate-disk-bus-properly.patch ++++++
Subject: disk: calculate the disk bus properly
From: Martin Kletzander mkletzan@redhat.com Wed Feb 19 10:12:46 2014 +0100
Date: Wed Feb 19 10:12:53 2014 +0100:
Git: 466c2bcf9cb07f16690cb41684d67d0265d2d47e
I forgot to amend this change when changing it the last time.
Signed-off-by: Martin Kletzander
diff --git a/virtinst/devicedisk.py b/virtinst/devicedisk.py
index 6e7c6c8..9ebcc11 100644
--- a/virtinst/devicedisk.py
+++ b/virtinst/devicedisk.py
@@ -484,7 +484,7 @@ class VirtualDisk(VirtualDevice):
# This case is here for 'xvda'
tgt = tgt[1:]
for i, c in enumerate(reversed(tgt[2:])):
- num += (ord(c) - ord('a') + 1) * (26 ** i)
+ num += (ord(c) - ord('a')) * (26 ** i)
return num
++++++ 530987c4-disk-bus-calculation-fix.patch ++++++
Subject: virtinst: fix an issue of disk bus caculation
From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Sun Feb 23 13:31:48 2014 +0800
Date: Sun Feb 23 13:31:48 2014 +0800:
Git: 0dceb24b3ba567aad3976fe3c6af524db9e1ac6d
commit 466c2bcf9cb07f16690cb41684d67d0265d2d47e
will generate the same index for
'hda' and 'hdaa'.
Also break test cases.
This patch will fix this.
Signed-off-by: Chen Hanxiao
diff --git a/tests/xmlconfig.py b/tests/xmlconfig.py
index 5d08ca0..022d278 100644
--- a/tests/xmlconfig.py
+++ b/tests/xmlconfig.py
@@ -1027,15 +1027,15 @@ class TestXMLConfig(unittest.TestCase):
self.assertEquals("zz", VirtualDisk.num_to_target(27 * 26))
self.assertEquals("aaa", VirtualDisk.num_to_target(27 * 26 + 1))
- self.assertEquals(VirtualDisk.target_to_num("hda"), 1)
- self.assertEquals(VirtualDisk.target_to_num("hdb"), 2)
- self.assertEquals(VirtualDisk.target_to_num("sdz"), 26)
- self.assertEquals(VirtualDisk.target_to_num("sdaa"), 27)
- self.assertEquals(VirtualDisk.target_to_num("vdab"), 28)
- self.assertEquals(VirtualDisk.target_to_num("vdaz"), 52)
- self.assertEquals(VirtualDisk.target_to_num("xvdba"), 53)
- self.assertEquals(VirtualDisk.target_to_num("xvdzz"), 27 * 26)
- self.assertEquals(VirtualDisk.target_to_num("xvdaaa"), 27 * 26 + 1)
+ self.assertEquals(VirtualDisk.target_to_num("hda"), 0)
+ self.assertEquals(VirtualDisk.target_to_num("hdb"), 1)
+ self.assertEquals(VirtualDisk.target_to_num("sdz"), 25)
+ self.assertEquals(VirtualDisk.target_to_num("sdaa"), 26)
+ self.assertEquals(VirtualDisk.target_to_num("vdab"), 27)
+ self.assertEquals(VirtualDisk.target_to_num("vdaz"), 51)
+ self.assertEquals(VirtualDisk.target_to_num("xvdba"), 52)
+ self.assertEquals(VirtualDisk.target_to_num("xvdzz"), 26 * (25 + 1) + 25)
+ self.assertEquals(VirtualDisk.target_to_num("xvdaaa"), 26 * 26 * 1 + 26 * 1 + 0)
disk = virtinst.VirtualDisk(utils.get_conn())
disk.bus = "ide"
diff --git a/virtinst/devicedisk.py b/virtinst/devicedisk.py
index 9ebcc11..2d692f1 100644
--- a/virtinst/devicedisk.py
+++ b/virtinst/devicedisk.py
@@ -480,11 +480,14 @@ class VirtualDisk(VirtualDevice):
Convert disk /dev number (like hda, hdb, hdaa, etc.) to an index
"""
num = 0
+ k = 0
if tgt[0] == 'x':
# This case is here for 'xvda'
tgt = tgt[1:]
for i, c in enumerate(reversed(tgt[2:])):
- num += (ord(c) - ord('a')) * (26 ** i)
+ if i != 0:
+ k = 1
+ num += (ord(c) - ord('a') + k) * (26 ** i)
return num
++++++ 530c021c-attempt-empty-path-on-virDomainBlockStats.patch ++++++
Subject: Attempt empty path on virDomainBlockStats
From: Thorsten Behrens tbehrens@suse.com Fri Feb 21 11:38:41 2014 +0100
Date: Mon Feb 24 21:38:20 2014 -0500:
Git: b5c3fe1da5f67e0a83a3bc5c9358cbc779157354
libvirt for some backends yields summary domain stats for empty
disk path - which saves us the looping on our side.
Index: virt-manager-1.0.0/virtManager/domain.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/domain.py
+++ virt-manager-1.0.0/virtManager/domain.py
@@ -270,6 +270,7 @@ class vmmDomain(vmmLibvirtObject):
self._enable_disk_poll = False
self._stats_disk_supported = True
self._stats_disk_skip = []
+ self._summary_disk_stats_skip = False
self.inspection = vmmInspectionData()
@@ -1769,6 +1770,18 @@ class vmmDomain(vmmLibvirtObject):
self._stats_disk_skip = []
return rd, wr
+ # Some drivers support this method for getting all usage at once
+ if not self._summary_disk_stats_skip:
+ try:
+ io = self._backend.blockStats('')
+ if io:
+ rd = io[1]
+ wr = io[3]
+ return rd, wr
+ except libvirt.libvirtError:
+ self._summary_disk_stats_skip = True
+
+ # did not work, iterate over all disks
for disk in self.get_disk_devices(refresh_if_nec=False):
dev = disk.target
if not dev:
++++++ 530cd6ab-log-broken-xml.patch ++++++
Subject: xmlbuilder: Log broken XML if we can't parse it
From: Cole Robinson crobinso@redhat.com Tue Feb 25 12:45:15 2014 -0500
Date: Tue Feb 25 12:45:15 2014 -0500:
Git: 87c2ff1a14f3a78648c8a17cfa72e83098763ec8
Related to https://bugzilla.redhat.com/show_bug.cgi?id=1066564
diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py
index d46738c..328f6f2 100644
--- a/virtinst/xmlbuilder.py
+++ b/virtinst/xmlbuilder.py
@@ -20,6 +20,7 @@
# MA 02110-1301 USA.
import copy
+import logging
import os
import re
@@ -686,7 +686,13 @@ class _XMLState(object):
else:
if not xml:
xml = self.make_xml_stub()
- doc = libxml2.parseDoc(xml)
+
+ try:
+ doc = libxml2.parseDoc(xml)
+ except:
+ logging.debug("Error parsing xml=\n%s", xml)
+ raise
+
self.xml_root_doc = _DocCleanupWrapper(doc)
self.xml_node = doc.children
self.xml_node.virtinst_is_build = self.is_build
++++++ 530cf4de-allow-numbered-object-names.patch ++++++
Subject: Don't forbid object names that are only all numbers (bz 1067127)
From: Cole Robinson crobinso@redhat.com Tue Feb 25 14:54:06 2014 -0500
Date: Tue Feb 25 14:54:06 2014 -0500:
Git: 3efbefe91a1ec23cbcf3d4f5a72a02fab87daa83
Just let libvirt error, since in the case of things like storage pools
this is totally legitimate.
diff --git a/virtinst/util.py b/virtinst/util.py
index 31ccd38..2fe00d3 100644
--- a/virtinst/util.py
+++ b/virtinst/util.py
@@ -140,10 +140,6 @@ def validate_uuid(val):
def validate_name(name_type, val):
- if re.match("^[0-9]+$", val):
- raise ValueError(_("%s name can not be only numeric characters") %
- name_type)
-
# Rather than try and match libvirt's regex, just forbid things we
# know don't work
forbid = [" "]
++++++ 530cfa5e-close-connection-on-tick-failure-fix.patch ++++++
Subject: engine: Fix closing connection when tick() fails (bz 1069351)
From: Cole Robinson crobinso@redhat.com Tue Feb 25 15:17:34 2014 -0500
Date: Tue Feb 25 15:17:34 2014 -0500:
Git: ce64d037bff56db994fedd065a9a34b8e827dda2
diff --git a/virtManager/engine.py b/virtManager/engine.py
index cef3d20..0e5e15d 100644
--- a/virtManager/engine.py
+++ b/virtManager/engine.py
@@ -344,30 +344,39 @@ class vmmEngine(vmmGObject):
return 1
def _tick_single_conn(self, conn, kwargs):
+ e = None
try:
conn.tick(**kwargs)
except KeyboardInterrupt:
raise
- except libvirt.libvirtError, e:
- from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
- from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
- sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
+ except Exception, e:
+ pass
+
+ if e is None:
+ return
+ from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
+ from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
+ sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
+
+ dom = -1
+ code = -1
+ if isinstance(e, libvirt.libvirtError):
dom = e.get_error_domain()
code = e.get_error_code()
- if (dom in [from_remote, from_rpc] and
- code in [sys_error]):
- logging.exception("Could not refresh connection %s",
- conn.get_uri())
- logging.debug("Closing connection since libvirtd "
- "appears to have stopped")
- else:
- error_msg = _("Error polling connection '%s': %s") \
- % (conn.get_uri(), e)
- self.idle_add(lambda: self.err.show_err(error_msg))
+ if (dom in [from_remote, from_rpc] and
+ code in [sys_error]):
+ logging.exception("Could not refresh connection %s",
+ conn.get_uri())
+ logging.debug("Closing connection since libvirtd "
+ "appears to have stopped")
+ else:
+ error_msg = _("Error polling connection '%s': %s") \
+ % (conn.get_uri(), e)
+ self.idle_add(lambda: self.err.show_err(error_msg))
- self.idle_add(conn.close)
+ self.idle_add(conn.close)
def increment_window_counter(self, src):
++++++ 530f80f5-handle-missing-storage-volumes.patch ++++++
Subject: vmm connection: Handle missing storage volumes (bz 1070883)
From: Cole Robinson crobinso@redhat.com Thu Feb 27 13:16:21 2014 -0500
Date: Thu Feb 27 13:16:21 2014 -0500:
Git: f67df117017e6de855a8c0e900e47fe920dfaa48
Similar to what was done in a808bd669293ac66047a716b2e84a5a64c99667b
for the virtinst connection wrapper.
diff --git a/virtManager/connection.py b/virtManager/connection.py
index 6f6c838..96dfa1c 100644
--- a/virtManager/connection.py
+++ b/virtManager/connection.py
@@ -172,10 +172,17 @@ class vmmConnection(vmmGObject):
self._backend.cb_fetch_all_pools = (
lambda: [obj.get_xmlobj(refresh_if_nec=False)
for obj in self.pools.values()])
- self._backend.cb_fetch_all_vols = (
- lambda: [obj.get_xmlobj(refresh_if_nec=False)
- for pool in self.pools.values()
- for obj in pool.get_volumes(refresh=False).values()])
+
+ def fetch_all_vols():
+ ret = []
+ for pool in self.pools.values():
+ for vol in pool.get_volumes(refresh=False).values():
+ try:
+ ret.append(vol.get_xmlobj(refresh_if_nec=False))
+ except libvirt.libvirtError, e:
+ logging.debug("Fetching volume XML failed: %s", e)
+ return ret
+ self._backend.cb_fetch_all_vols = fetch_all_vols
def clear_cache(pools=False):
if not pools:
++++++ 5310bd89-console-fix-unsetting-resize-guest.patch ++++++
Subject: console: Fix unsetting 'resize-guest' property from UI
From: Cole Robinson crobinso@redhat.com Fri Feb 28 11:46:05 2014 -0500
Date: Fri Feb 28 11:47:05 2014 -0500:
Git: 4a2493f1e4bede671eac713081f61965f036d6ed
Reported in the followup of bz 754559
diff --git a/virtManager/console.py b/virtManager/console.py
index ccbd6bf..122bf27 100644
--- a/virtManager/console.py
+++ b/virtManager/console.py
@@ -1092,7 +1092,7 @@ class vmmConsolePages(vmmGObjectUI):
def resizeguest_ui_changed_cb(self, src):
# Called from details.py
- if not src.get_active():
+ if not src.get_sensitive():
return
val = int(self.widget("details-menu-view-resizeguest").get_active())
++++++ 5310e3ac-set-show_arrow-to-true.patch ++++++
Subject: details-toolbar: set show_arrow to true
From: Maros Zatko mzatko@redhat.com Fri Feb 28 19:35:50 2014 +0100
Date: Fri Feb 28 14:29:48 2014 -0500:
Git: 44d4c1d3293348d93bebc8c376691add15a4fcea
Index: virt-manager-1.0.0/ui/details.ui
===================================================================
--- virt-manager-1.0.0.orig/ui/details.ui
+++ virt-manager-1.0.0/ui/details.ui
@@ -371,7 +371,6 @@
<object class="GtkToolbar" id="details-toolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="show_arrow">False</property>
<child>
<object class="GtkRadioToolButton" id="control-vm-console">
<property name="visible">True</property>
++++++ 5310e3ac-vmmConsolePages-toggle-visibilities-on-page-change.patch ++++++
Subject: vmmConsolePages: toggle visibilities on page change
From: Maros Zatko mzatko@redhat.com Fri Feb 28 19:35:48 2014 +0100
Date: Fri Feb 28 14:29:48 2014 -0500:
Git: dfa23765b569721effba959f35e5217aff908fea
diff --git a/virtManager/console.py b/virtManager/console.py
index 122bf27..dec2657 100644
--- a/virtManager/console.py
+++ b/virtManager/console.py
@@ -1319,8 +1319,13 @@ class vmmConsolePages(vmmGObjectUI):
self.widget("details-menu-usb-redirection").set_sensitive(True)
return
- def page_changed(self, ignore1=None, ignore2=None, ignore3=None):
+ def page_changed(self, ignore1=None, ignore2=None, newpage=None):
pagenum = self.widget("console-pages").get_current_page()
+
+ for i in range(self.widget("console-pages").get_n_pages()):
+ w = self.widget("console-pages").get_nth_page(i)
+ w.set_visible(i == newpage)
+
if pagenum < CONSOLE_PAGE_OFFSET:
self.last_gfx_page = pagenum
self.set_allow_fullscreen()
++++++ 5310e3ac-vmmDetails-toggle-visibilities-on-page-change.patch ++++++
Subject: vmmDetails: toggle visibilities on page change
From: Maros Zatko mzatko@redhat.com Fri Feb 28 19:35:49 2014 +0100
Date: Fri Feb 28 14:29:48 2014 -0500:
Git: 74e6d439035a7826f9ed0a70b1c4f0b1141997cc
Index: virt-manager-1.0.0/virtManager/details.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/details.py
+++ virt-manager-1.0.0/virtManager/details.py
@@ -1269,7 +1269,11 @@ class vmmDetails(vmmGObjectUI):
finally:
self.ignoreDetails = False
- def switch_page(self, ignore1=None, ignore2=None, newpage=None):
+ def switch_page(self, notebook=None, ignore2=None, newpage=None):
+ for i in range(notebook.get_n_pages()):
+ w = notebook.get_nth_page(i)
+ w.set_visible(i == newpage)
+
self.page_refresh(newpage)
self.sync_details_console_view(newpage)
++++++ 5310e52d-fix-setting-default-window-size.patch ++++++
Subject: details: Fix setting default window size
From: Cole Robinson crobinso@redhat.com Fri Feb 28 14:36:13 2014 -0500
Date: Fri Feb 28 14:36:13 2014 -0500:
Git: 3fcc2c2fed3f9ec0eb8a379080a6b616e18287f7
Index: virt-manager-1.0.0/virtManager/details.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/details.py
+++ virt-manager-1.0.0/virtManager/details.py
@@ -521,7 +521,11 @@ class vmmDetails(vmmGObjectUI):
# Set default window size
w, h = self.vm.get_details_window_size()
- self.topwin.set_default_size(w or 800, h or 600)
+ if w <= 0:
+ w = 800
+ if h <= 0:
+ h = 600
+ self.topwin.set_default_size(w, h)
self.oldhwkey = None
self.addhwmenu = None
++++++ 5318a2cd-cpu-model-fallback-failure-fix.patch ++++++
Subject: details: Fix fallback if fetching CPU models fails (bz 1072704)
From: Cole Robinson crobinso@redhat.com Thu Mar 6 11:31:09 2014 -0500
Date: Thu Mar 6 11:31:09 2014 -0500:
Git: b078ba8c3d69b62fe748d9182babef8971914277
Index: virt-manager-1.0.0/virtManager/details.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/details.py
+++ virt-manager-1.0.0/virtManager/details.py
@@ -969,8 +969,9 @@ class vmmDetails(vmmGObjectUI):
no_default = not self.is_customize_dialog
try:
- cpu_values = caps.get_cpu_values(self.vm.get_arch())
+ cpu_names = caps.get_cpu_values(self.vm.get_arch()).cpus
except:
+ cpu_names = []
logging.exception("Error populating CPU model list")
# CPU model combo
@@ -991,7 +992,7 @@ class vmmDetails(vmmGObjectUI):
model.append([_("Clear CPU configuration"), "3",
virtinst.CPU.SPECIAL_MODE_CLEAR, False])
model.append([None, None, None, True])
- for name in [c.model for c in cpu_values.cpus]:
+ for name in [c.model for c in cpu_names]:
model.append([name, name, name, False])
# Disk cache combo
++++++ 5318a626-adding-filesystem-device-fix.patch ++++++
Subject: fsdetails: Fix adding a filesystem device (bz 1073067)
From: Cole Robinson crobinso@redhat.com Thu Mar 6 11:45:26 2014 -0500
Date: Thu Mar 6 11:45:26 2014 -0500:
Git: 9074fc6c6080cf650cf97457dda799700ee2b635
Index: virt-manager-1.0.0/virtManager/fsdetails.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/fsdetails.py
+++ virt-manager-1.0.0/virtManager/fsdetails.py
@@ -158,8 +158,9 @@ class vmmFSDetails(vmmGObjectUI):
rowindex=0, check_visible=True)
def get_config_fs_readonly(self):
- return uiutil.get_list_selection(self.widget("fs-readonly"),
- rowindex=0, check_visible=True)
+ if not self.widget("fs-readonly").is_visible():
+ return None
+ return self.widget("fs-readonly").get_active()
def get_config_fs_driver(self):
return uiutil.get_list_selection(self.widget("fs-driver-combo"),
++++++ 5318aa88-invalid-libvirt-volume-XML.patch ++++++
Subject: Handle libvirt generating invalid volume XML (bz 1072770)
From: Cole Robinson crobinso@redhat.com Thu Mar 6 12:04:08 2014 -0500
Date: Thu Mar 6 12:04:08 2014 -0500:
Git: df7012a68b6a13a676e2019523f6863617a110d8
diff --git a/virtManager/connection.py b/virtManager/connection.py
index 96dfa1c..57e143d 100644
--- a/virtManager/connection.py
+++ b/virtManager/connection.py
@@ -179,7 +179,7 @@ class vmmConnection(vmmGObject):
for vol in pool.get_volumes(refresh=False).values():
try:
ret.append(vol.get_xmlobj(refresh_if_nec=False))
- except libvirt.libvirtError, e:
+ except Exception, e:
logging.debug("Fetching volume XML failed: %s", e)
return ret
self._backend.cb_fetch_all_vols = fetch_all_vols
diff --git a/virtinst/connection.py b/virtinst/connection.py
index a915f25..3cc5b79 100644
--- a/virtinst/connection.py
+++ b/virtinst/connection.py
@@ -222,7 +222,7 @@ class VirtualConnection(object):
try:
xml = vol.XMLDesc(0)
ret.append(StorageVolume(weakref.ref(self), parsexml=xml))
- except libvirt.libvirtError, e:
+ except Exception, e:
logging.debug("Fetching volume XML failed: %s", e)
if self.cache_object_fetch:
++++++ 5318b486-virtinstall-location-iso-fix.patch ++++++
Subject: virt-install: Fix --location iso again, and test it (bz 1071513)
From: Cole Robinson crobinso@redhat.com Thu Mar 6 12:35:01 2014 -0500
Date: Thu Mar 6 12:46:46 2014 -0500:
Git: 797afb3b273d08a74119c878b689730f0b36a252
Index: virt-manager-1.0.0/tests/__init__.py
===================================================================
--- virt-manager-1.0.0.orig/tests/__init__.py
+++ virt-manager-1.0.0/tests/__init__.py
@@ -21,6 +21,8 @@ import logging
import os
os.environ["VIRTINST_TEST_SUITE"] = "1"
+os.environ["VIRTINST_TEST_URL_DIR"] = os.path.abspath(
+ "tests/cli-test-xml/fakefedoratree/")
import virtinst
virtinst.stable_defaults = False
Index: virt-manager-1.0.0/tests/cli-test-xml/compare/virt-install-location-iso.xml
===================================================================
--- /dev/null
+++ virt-manager-1.0.0/tests/cli-test-xml/compare/virt-install-location-iso.xml
@@ -0,0 +1,129 @@
+<domain type="kvm">
+ <name>foobar</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>65536</memory>
+ <currentMemory>65536</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch="x86_64">hvm</type>
+ <kernel>./virtinst-vmlinuz.</kernel>
+ <initrd>./virtinst-initrd.img.</initrd>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu mode="custom" match="exact">
+ <model>core2duo</model>
+ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+ <timer name="hpet" present="no"/>
+ </clock>
+ destroy
+ destroy
+ destroy
+ <devices>
+ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="file" device="cdrom">
+ <driver name="qemu"/>
+ <source file="/home/crobinso/src/virt-manager/tests/cli-test-xml/fake.iso"/>
+ <target dev="hda" bus="ide"/>
+ <readonly/>
+ </disk>
+ <controller type="usb" index="0" model="ich9-ehci1"/>
+ <controller type="usb" index="0" model="ich9-uhci1">
+ <master startport="0"/>
+ </controller>
+ <controller type="usb" index="0" model="ich9-uhci2">
+ <master startport="2"/>
+ </controller>
+ <controller type="usb" index="0" model="ich9-uhci3">
+ <master startport="4"/>
+ </controller>
+ <interface type="bridge">
+ <source bridge="eth0"/>
+ <mac address="00:11:22:33:44:55"/>
+ <model type="virtio"/>
+ </interface>
+ <input type="tablet" bus="usb"/>
+ <graphics type="spice" port="-1" tlsPort="-1" autoport="yes"/>
+ <console type="pty"/>
+ <channel type="spicevmc">
+ <target type="virtio" name="com.redhat.spice.0"/>
+ </channel>
+ <sound model="ich6"/>
+ <video>
+ <model type="qxl"/>
+ </video>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ </devices>
+</domain>
+<domain type="kvm">
+ <name>foobar</name>
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
+ <memory>65536</memory>
+ <currentMemory>65536</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch="x86_64">hvm</type>
+ <boot dev="hd"/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu mode="custom" match="exact">
+ <model>core2duo</model>
+ </cpu>
+ <clock offset="utc">
+ <timer name="rtc" tickpolicy="catchup"/>
+ <timer name="pit" tickpolicy="delay"/>
+ <timer name="hpet" present="no"/>
+ </clock>
+ destroy
+ restart
+ restart
+ <devices>
+ <emulator>/usr/bin/qemu-kvm</emulator>
+ <disk type="block" device="cdrom">
+ <target dev="hda" bus="ide"/>
+ <readonly/>
+ </disk>
+ <controller type="usb" index="0" model="ich9-ehci1"/>
+ <controller type="usb" index="0" model="ich9-uhci1">
+ <master startport="0"/>
+ </controller>
+ <controller type="usb" index="0" model="ich9-uhci2">
+ <master startport="2"/>
+ </controller>
+ <controller type="usb" index="0" model="ich9-uhci3">
+ <master startport="4"/>
+ </controller>
+ <interface type="bridge">
+ <source bridge="eth0"/>
+ <mac address="00:11:22:33:44:55"/>
+ <model type="virtio"/>
+ </interface>
+ <input type="tablet" bus="usb"/>
+ <graphics type="spice" port="-1" tlsPort="-1" autoport="yes"/>
+ <console type="pty"/>
+ <channel type="spicevmc">
+ <target type="virtio" name="com.redhat.spice.0"/>
+ </channel>
+ <sound model="ich6"/>
+ <video>
+ <model type="qxl"/>
+ </video>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ <redirdev bus="usb" type="spicevmc"/>
+ </devices>
+</domain>
Index: virt-manager-1.0.0/tests/clitest.py
===================================================================
--- virt-manager-1.0.0.orig/tests/clitest.py
+++ virt-manager-1.0.0/tests/clitest.py
@@ -528,6 +528,7 @@ c.add_compare("--os-variant fedora20 --n
c.add_compare("--arch armv7l --machine vexpress-a9 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,extra_args=\"console=ttyAMA0 rw root=/dev/mmcblk0p3\" --disk %(EXISTIMG1)s --nographics", "arm-vexpress-plain", skip_check=support.SUPPORT_CONN_DISK_SD)
c.add_compare("--arch armv7l --machine vexpress-a15 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.initrd,dtb=/f19-arm.dtb,kernel_args=\"console=ttyAMA0 rw root=/dev/vda3\",extra_args=foo --disk %(EXISTIMG1)s --nographics --os-variant fedora19", "arm-vexpress-f19", skip_check=support.SUPPORT_CONN_VIRTIO_MMIO)
c.add_compare("--arch ppc64 --machine pseries --boot network --disk %(EXISTIMG1)s --os-variant fedora20", "ppc64-pseries-f20")
+c.add_compare("--nodisks --location tests/cli-test-xml/fake.iso", "location-iso") # Using --location iso mounting
c.add_valid("--cdrom %(EXISTIMG2)s --file %(EXISTIMG1)s --os-variant win2k3 --wait 0 --sound") # HVM windows install with disk
c.add_valid("--os-variant fedora20 --file %(EXISTIMG1)s --location %(TREEDIR)s --extra-args console=ttyS0 --sound") # F14 Directory tree URL install with extra-args
c.add_invalid("--nodisks --boot network --machine foobar") # Unknown machine type
Index: virt-manager-1.0.0/virtinst/distroinstaller.py
===================================================================
--- virt-manager-1.0.0.orig/virtinst/distroinstaller.py
+++ virt-manager-1.0.0/virtinst/distroinstaller.py
@@ -299,11 +299,12 @@ def _upload_media(conn, scratchdir, syst
# Enum of the various install media types we can have
-(MEDIA_LOCATION_PATH,
+(MEDIA_LOCATION_DIR,
+ MEDIA_LOCATION_CDROM,
MEDIA_LOCATION_URL,
MEDIA_CDROM_PATH,
MEDIA_CDROM_URL,
- MEDIA_CDROM_IMPLIED) = range(1, 6)
+ MEDIA_CDROM_IMPLIED) = range(1, 7)
class DistroInstaller(Installer):
@@ -324,7 +325,11 @@ class DistroInstaller(Installer):
if self.location and _is_url(self.conn, self.location):
return self.cdrom and MEDIA_CDROM_URL or MEDIA_LOCATION_URL
- return self.cdrom and MEDIA_CDROM_PATH or MEDIA_LOCATION_PATH
+ if self.cdrom:
+ return MEDIA_CDROM_PATH
+ if self.location and os.path.isdir(self.location):
+ return MEDIA_LOCATION_DIR
+ return MEDIA_LOCATION_CDROM
def _prepare_local(self):
transient = True
@@ -374,7 +379,7 @@ class DistroInstaller(Installer):
def _get_bootdev(self, isinstall, guest):
mediatype = self._get_media_type()
local = mediatype in [MEDIA_CDROM_PATH, MEDIA_CDROM_IMPLIED,
- MEDIA_LOCATION_PATH]
+ MEDIA_LOCATION_DIR, MEDIA_LOCATION_CDROM]
persistent_cd = (local and
self.cdrom and
self.livecd)
@@ -420,9 +425,10 @@ class DistroInstaller(Installer):
return
dev = None
- if mediatype == MEDIA_CDROM_PATH:
+ if mediatype == MEDIA_CDROM_PATH or mediatype == MEDIA_LOCATION_CDROM:
dev = self._prepare_local()
- else:
+
+ if mediatype != MEDIA_CDROM_PATH:
fetcher = urlfetcher.fetcherForURI(self.location,
scratchdir, meter)
try:
@@ -454,7 +460,7 @@ class DistroInstaller(Installer):
mediatype = self._get_media_type()
return mediatype in [MEDIA_CDROM_URL, MEDIA_LOCATION_URL,
- MEDIA_LOCATION_PATH]
+ MEDIA_LOCATION_DIR, MEDIA_LOCATION_CDROM]
def check_location(self, guest):
mediatype = self._get_media_type()
Index: virt-manager-1.0.0/virtinst/urlfetcher.py
===================================================================
--- virt-manager-1.0.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.0/virtinst/urlfetcher.py
@@ -189,10 +189,16 @@ class _MountedImageFetcher(_LocalImageFe
Fetcher capable of extracting files from a NFS server
or loopback mounted file, or local CDROM device
"""
+ _in_test_suite = bool("VIRTINST_TEST_SUITE" in os.environ)
+
def prepareLocation(self):
cmd = None
- self.srcdir = tempfile.mkdtemp(prefix="virtinstmnt.",
- dir=self.scratchdir)
+
+ if self._in_test_suite:
+ self.srcdir = os.environ["VIRTINST_TEST_URL_DIR"]
+ else:
+ self.srcdir = tempfile.mkdtemp(prefix="virtinstmnt.",
+ dir=self.scratchdir)
mountcmd = "/bin/mount"
logging.debug("Preparing mount at " + self.srcdir)
@@ -207,21 +213,24 @@ class _MountedImageFetcher(_LocalImageFe
logging.debug("mount cmd: %s", cmd)
- ret = subprocess.call(cmd)
- if ret != 0:
- self.cleanupLocation()
- raise ValueError(_("Mounting location '%s' failed") %
- (self.location))
+ if not self._in_test_suite:
+ ret = subprocess.call(cmd)
+ if ret != 0:
+ self.cleanupLocation()
+ raise ValueError(_("Mounting location '%s' failed") %
+ (self.location))
return True
def cleanupLocation(self):
logging.debug("Cleaning up mount at " + self.srcdir)
- cmd = ["/bin/umount", self.srcdir]
- subprocess.call(cmd)
- try:
- os.rmdir(self.srcdir)
- except:
- pass
+
+ if not self._in_test_suite:
+ cmd = ["/bin/umount", self.srcdir]
+ subprocess.call(cmd)
+ try:
+ os.rmdir(self.srcdir)
+ except:
+ pass
class _DirectImageFetcher(_LocalImageFetcher):
++++++ 5319db07-customize-add-disk-fix.patch ++++++
Subject: addhardware: Fix adding disk through 'customize' dialog (bz 1073808)
From: Cole Robinson crobinso@redhat.com Fri Mar 7 09:37:08 2014 -0500
Date: Fri Mar 7 09:43:19 2014 -0500:
Git: 7ef9d7fbfc4173b6a6e88b6fb74e895293ffda55
diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
index 75238d2..18f2aef 100644
--- a/virtManager/addhardware.py
+++ b/virtManager/addhardware.py
@@ -1477,6 +1477,7 @@ class vmmAddHardware(vmmGObjectUI):
disk.driver_cache = cache
# Generate target
+ disks = []
if not self.is_customize_dialog:
disks = (self.vm.get_disk_devices() +
self.vm.get_disk_devices(inactive=True))
@@ -1484,7 +1485,8 @@ class vmmAddHardware(vmmGObjectUI):
if d.target not in used:
used.append(d.target)
- prefer_ctrl = self._set_disk_controller(disk, controller_model, disks)
+ prefer_ctrl = self._set_disk_controller(
+ disk, controller_model, disks)
if not self.is_customize_dialog:
disk.generate_target(used, prefer_ctrl)
++++++ 531db6a7-new-volume-tooltip-logic.patch ++++++
Subject: storagebrowse: Duplicate tooltip logic for 'new volume' button
From: Cole Robinson crobinso@redhat.com Mon Mar 10 08:56:51 2014 -0400
Date: Mon Mar 10 08:57:11 2014 -0400:
Git: cfc52051b71bcfbf3f58ea6eddf457298f186727
diff --git a/virtManager/storagebrowse.py b/virtManager/storagebrowse.py
index 314a6ab..3f61352 100644
--- a/virtManager/storagebrowse.py
+++ b/virtManager/storagebrowse.py
@@ -208,7 +208,8 @@ class vmmStorageBrowser(vmmGObjectUI):
self.local_args["dialog_type"] = data.get("dialog_type")
self.local_args["choose_button"] = data.get("choose_button")
- self.widget("new-volume").set_visible(self.can_new_volume)
+ self.widget("new-volume").set_visible(
+ self.can_new_volume and self.allow_create())
# Convenience helpers
@@ -302,13 +303,17 @@ class vmmStorageBrowser(vmmGObjectUI):
def pool_selected(self, src_ignore=None):
pool = self.current_pool()
- newvol = bool(pool)
+ can_new_vol = False
+ tt = ""
if pool:
pool.tick()
- newvol = pool.is_active()
+ can_new_vol = (pool.is_active() and
+ pool.supports_volume_creation())
+ if not can_new_vol:
+ tt = _("Pool does not support volume creation")
- newvol = newvol and self.allow_create()
- self.widget("new-volume").set_sensitive(newvol)
+ self.widget("new-volume").set_sensitive(can_new_vol)
+ self.widget("new-volume").set_tooltip_text(tt)
self.populate_storage_volumes()
++++++ 531dbfa7-handle-errors-when-deregistering-events-on-close.patch ++++++
Subject: connection: Handle errors when deregistering events on close (bz 1069351)
From: Cole Robinson crobinso@redhat.com Mon Mar 10 09:33:04 2014 -0400
Date: Mon Mar 10 09:35:35 2014 -0400:
Git: 081e34715ffa5a210e1e0c8670fe3a1a3ec5180b
Otherwise this interrupts the close/cleanup routine, and the connection
never appears to disconnect in the UI. This causes error dialog spamming
when libvirtd goes down.
diff --git a/virtManager/connection.py b/virtManager/connection.py
index 57e143d..4c034b8 100644
--- a/virtManager/connection.py
+++ b/virtManager/connection.py
@@ -929,16 +929,25 @@ class vmmConnection(vmmGObject):
def close(self):
def cleanup(devs):
for dev in devs.values():
- dev.cleanup()
-
- if not self._backend.is_closed():
- if self._domain_cb_id is not None:
- self._backend.domainEventDeregisterAny(self._domain_cb_id)
- self._domain_cb_id = None
+ try:
+ dev.cleanup()
+ except:
+ logging.debug("Failed to cleanup %s", exc_info=True)
- if self._network_cb_id is not None:
- self._backend.networkEventDeregisterAny(self._network_cb_id)
- self._network_cb_id = None
+ try:
+ if not self._backend.is_closed():
+ if self._domain_cb_id is not None:
+ self._backend.domainEventDeregisterAny(
+ self._domain_cb_id)
+ self._domain_cb_id = None
+
+ if self._network_cb_id is not None:
+ self._backend.networkEventDeregisterAny(
+ self._network_cb_id)
+ self._network_cb_id = None
+ except:
+ logging.debug("Failed to deregister events in conn cleanup",
+ exc_info=True)
self._backend.close()
self.record = []
++++++ virtinst-detect-suse-distros.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- virt-manager-1.0.0.orig/virtinst/urlfetcher.py
+++ virt-manager-1.0.0/virtinst/urlfetcher.py
-@@ -287,6 +287,60 @@ def _distroFromTreeinfo(fetcher, arch, v
+@@ -296,6 +296,60 @@ def _distroFromTreeinfo(fetcher, arch, v
return ob
@@ -63,7 +63,7 @@
def getDistroStore(guest, fetcher):
stores = []
-@@ -303,6 +357,10 @@ def getDistroStore(guest, fetcher):
+@@ -312,6 +366,10 @@ def getDistroStore(guest, fetcher):
if dist:
return dist
@@ -74,7 +74,7 @@
# FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os
# dictionary, so would look like 'fedora9' or 'rhel5', so this needs
# to be a bit more intelligent
-@@ -799,12 +857,11 @@ class SLDistro(RHELDistro):
+@@ -808,12 +866,11 @@ class SLDistro(RHELDistro):
class SuseDistro(Distro):
name = "SUSE"
@@ -88,7 +88,7 @@
Distro.__init__(self, *args, **kwargs)
if re.match(r'i[4-9]86', self.arch):
self.arch = 'i386'
-@@ -815,18 +872,32 @@ class SuseDistro(Distro):
+@@ -824,18 +881,32 @@ class SuseDistro(Distro):
oldkern += "64"
oldinit += "64"
@@ -131,7 +131,7 @@
if not self.fetcher.hasFile("directory.yast"):
return False
-@@ -851,6 +922,27 @@ class SuseDistro(Distro):
+@@ -860,6 +931,27 @@ class SuseDistro(Distro):
return name
return self.os_variant
++++++ virtinst-xen-drive-type.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -1,10 +1,10 @@
Reference: bnc#813082
-Index: virt-manager-0.10.1/virtinst/devicedisk.py
+Index: virt-manager-1.0.0/virtinst/devicedisk.py
===================================================================
---- virt-manager-0.10.1.orig/virtinst/devicedisk.py
-+++ virt-manager-0.10.1/virtinst/devicedisk.py
-@@ -555,6 +555,12 @@ class VirtualDisk(VirtualDevice):
+--- virt-manager-1.0.0.orig/virtinst/devicedisk.py
++++ virt-manager-1.0.0/virtinst/devicedisk.py
+@@ -558,6 +558,12 @@ class VirtualDisk(VirtualDevice):
return None
if self.conn.is_qemu():
return self.DRIVER_QEMU
@@ -17,7 +17,7 @@
return None
def _get_default_driver_type(self):
-@@ -568,6 +574,8 @@ class VirtualDisk(VirtualDevice):
+@@ -571,6 +577,8 @@ class VirtualDisk(VirtualDevice):
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
"""
if self.driver_name != self.DRIVER_QEMU:
++++++ virtman-autorestart.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -1,8 +1,8 @@
-Index: virt-manager-0.10.1/virtManager/details.py
+Index: virt-manager-1.0.0/virtManager/details.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/details.py
-+++ virt-manager-0.10.1/virtManager/details.py
-@@ -2009,12 +2009,10 @@ class vmmDetails(vmmGObjectUI):
+--- virt-manager-1.0.0.orig/virtManager/details.py
++++ virt-manager-1.0.0/virtManager/details.py
+@@ -2018,12 +2018,10 @@ class vmmDetails(vmmGObjectUI):
return self._change_config_helper(df, da, hf, ha)
@@ -19,7 +19,7 @@
auto = self.widget("config-autostart")
try:
self.vm.set_autostart(auto.get_active())
-@@ -2023,6 +2021,11 @@ class vmmDetails(vmmGObjectUI):
+@@ -2032,6 +2030,11 @@ class vmmDetails(vmmGObjectUI):
(_("Error changing autostart value: %s") % str(e)))
return False
@@ -31,7 +31,7 @@
if self.edited(EDIT_BOOTORDER):
bootdevs = self.get_config_boot_order()
add_define(self.vm.set_boot_order, bootdevs)
-@@ -2377,6 +2380,8 @@ class vmmDetails(vmmGObjectUI):
+@@ -2386,6 +2389,8 @@ class vmmDetails(vmmGObjectUI):
buttons=Gtk.ButtonsType.OK,
dialog_type=dtype)
++++++ virtman-autoyast-support.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- virt-manager-1.0.0.orig/virtManager/create.py
+++ virt-manager-1.0.0/virtManager/create.py
-@@ -1228,11 +1228,34 @@ class vmmCreate(vmmGObjectUI):
+@@ -1232,11 +1232,34 @@ class vmmCreate(vmmGObjectUI):
variant = self.widget("install-os-version")
variant.set_active(0)
@@ -37,7 +37,7 @@
# Get previous
type_row = self._selected_os_row()
if not type_row:
-@@ -1586,7 +1609,10 @@ class vmmCreate(vmmGObjectUI):
+@@ -1591,7 +1614,10 @@ class vmmCreate(vmmGObjectUI):
if extra:
extraargs += extra
if ks:
@@ -49,7 +49,7 @@
if extraargs:
self.guest.installer.extraargs = extraargs
-@@ -1979,6 +2005,7 @@ class vmmCreate(vmmGObjectUI):
+@@ -1984,6 +2010,7 @@ class vmmCreate(vmmGObjectUI):
dl = self.set_os_val(self.widget("install-os-type"), distro_type)
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
self.set_distro_labels(dl, vl)
++++++ virtman-default-guest-from-host-os.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -1,7 +1,7 @@
-Index: virt-manager-0.10.1/virtManager/create.py
+Index: virt-manager-1.0.0/virtManager/create.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/create.py
-+++ virt-manager-0.10.1/virtManager/create.py
+--- virt-manager-1.0.0.orig/virtManager/create.py
++++ virt-manager-1.0.0/virtManager/create.py
@@ -21,6 +21,8 @@
import logging
import threading
@@ -11,7 +11,7 @@
# pylint: disable=E0611
from gi.repository import GObject
-@@ -1130,6 +1132,51 @@ class vmmCreate(vmmGObjectUI):
+@@ -1130,6 +1132,55 @@ class vmmCreate(vmmGObjectUI):
return
self.start_detection(forward=forward)
@@ -26,6 +26,10 @@
+ return 'linux', 'opensuse13'
+ if "openSUSE 12" in line:
+ return 'linux', 'opensuse12'
++ if "SUSE Linux Enterprise Server 12" in line:
++ return 'linux', 'sles12'
++ if "SUSE Linux Enterprise Desktop 12" in line:
++ return 'linux', 'sled12'
+ if "SUSE Linux Enterprise Server 11" in line:
+ return 'linux', 'sles11'
+ if "SUSE Linux Enterprise Desktop 11" in line:
@@ -63,7 +67,7 @@
def toggle_detect_os(self, src):
dodetect = src.get_active()
-@@ -1141,6 +1188,8 @@ class vmmCreate(vmmGObjectUI):
+@@ -1141,6 +1192,8 @@ class vmmCreate(vmmGObjectUI):
if dodetect:
self.mediaDetected = False
self.detect_media_os()
++++++ virtman-device-flags.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -1,7 +1,7 @@
-Index: virt-manager-0.10.1/virtManager/addhardware.py
+Index: virt-manager-1.0.0/virtManager/addhardware.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/addhardware.py
-+++ virt-manager-0.10.1/virtManager/addhardware.py
+--- virt-manager-1.0.0.orig/virtManager/addhardware.py
++++ virt-manager-1.0.0/virtManager/addhardware.py
@@ -1287,6 +1287,18 @@ class vmmAddHardware(vmmGObjectUI):
if controller is not None:
logging.debug("Adding controller:\n%s",
@@ -21,11 +21,11 @@
# Hotplug device
attach_err = False
try:
-Index: virt-manager-0.10.1/virtManager/details.py
+Index: virt-manager-1.0.0/virtManager/details.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/details.py
-+++ virt-manager-0.10.1/virtManager/details.py
-@@ -2270,6 +2270,17 @@ class vmmDetails(vmmGObjectUI):
+--- virt-manager-1.0.0.orig/virtManager/details.py
++++ virt-manager-1.0.0/virtManager/details.py
+@@ -2279,6 +2279,17 @@ class vmmDetails(vmmGObjectUI):
text1=(_("Are you sure you want to remove this device?"))):
return
@@ -43,11 +43,11 @@
# Define the change
try:
self.vm.remove_device(dev_id_info)
-Index: virt-manager-0.10.1/virtManager/domain.py
+Index: virt-manager-1.0.0/virtManager/domain.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/domain.py
-+++ virt-manager-0.10.1/virtManager/domain.py
-@@ -897,6 +897,10 @@ class vmmDomain(vmmLibvirtObject):
+--- virt-manager-1.0.0.orig/virtManager/domain.py
++++ virt-manager-1.0.0/virtManager/domain.py
+@@ -898,6 +898,10 @@ class vmmDomain(vmmLibvirtObject):
devxml = devobj.get_xml_config()
self._backend.attachDevice(devxml)
@@ -58,7 +58,7 @@
def detach_device(self, devobj):
"""
Hotunplug device from running guest
-@@ -915,6 +919,10 @@ class vmmDomain(vmmLibvirtObject):
+@@ -916,6 +920,10 @@ class vmmDomain(vmmLibvirtObject):
xml = devobj.get_xml_config()
self._backend.updateDeviceFlags(xml, flags)
++++++ virtman-show-suse-install-repos.patch ++++++
Index: virt-manager-1.0.0/virtManager/create.py
===================================================================
--- virt-manager-1.0.0.orig/virtManager/create.py
+++ virt-manager-1.0.0/virtManager/create.py
@@ -18,6 +18,7 @@
# MA 02110-1301 USA.
#
+import traceback
import logging
import threading
import time
@@ -366,7 +367,13 @@ class vmmCreate(vmmGObjectUI):
self.widget("install-url-options").set_expanded(False)
urlmodel = self.widget("install-url-box").get_model()
ksmodel = self.widget("install-ks-box").get_model()
- self.populate_media_model(urlmodel, self.config.get_media_urls())
+ urllist = self.config.get_media_urls()
+ (index, inst_repos) = util.getInstallRepos()
+ for u in urllist:
+ if u in inst_repos:
+ inst_repos.remove(u)
+ media_urllist = urllist + inst_repos
+ self.populate_media_model(urlmodel, media_urllist)
self.populate_media_model(ksmodel, self.config.get_kickstart_urls())
self.set_distro_labels("-", "-", force=True)
Index: virt-manager-1.0.0/virtinst/util.py
===================================================================
--- virt-manager-1.0.0.orig/virtinst/util.py
+++ virt-manager-1.0.0/virtinst/util.py
@@ -23,12 +23,14 @@ import os
import random
import re
import stat
+import commands
import libvirt
import libxml2
_host_blktap_capable = None
+_host_repo_url = None
def listify(l):
@@ -531,3 +533,92 @@ def convert_units(value, old_unit, new_u
power = get_power(new_unit)
return in_bytes / pow(factor, power)
+
+def getHostInstallSource():
+ global _host_repo_url
+ if _host_repo_url is not None:
+ return _host_repo_url
+
+ if os.path.exists('/var/lib/YaST2/install.inf'):
+ server_ip = server_name = server_dir = inst_mode = None
+ f = open('/var/lib/YaST2/install.inf')
+ lines = f.readlines()
+ f.close()
+ # Newer install.inf files use RepoURL. Older versions require parsing more fields
+ for line in lines:
+ if line.startswith('RepoURL:'):
+ repo_url = line[:-1].split('?', 1)[0]
+ repo_url = repo_url.split(' ')
+ if repo_url[1]:
+ if repo_url[1].startswith('ftp:') or repo_url[1].startswith('http:') or repo_url[1].startswith('smb:') or repo_url[1].startswith('nfs:'):
+ _host_repo_url = repo_url[1]
+ return repo_url[1]
+ return None
+ elif line.startswith('InstMode:'):
+ inst_mode = line[:-1].split('?', 1)[0]
+ inst_mode = inst_mode.split(' ')
+ inst_mode = inst_mode[1]
+ if inst_mode != 'ftp' and inst_mode != 'http' and inst_mode != 'smb' and inst_mode != 'nfs':
+ return None
+ elif line.startswith('ServerIP:'):
+ server_ip = line[:-1].split('?', 1)[0]
+ server_ip = server_ip.split(' ')
+ server_ip = server_ip[1]
+ elif line.startswith('ServerName:'):
+ server_name = line[:-1].split('?', 1)[0]
+ server_name = server_name.split(' ')
+ server_name = server_name[1]
+ elif line.startswith('Serverdir:'):
+ server_dir = line[:-1].split('?', 1)[0]
+ server_dir = server_dir.split(' ')
+ server_dir = server_dir[1]
+ if inst_mode:
+ repo_url = inst_mode + "://"
+ if server_name:
+ repo_url = repo_url + server_name + "/"
+ if server_dir:
+ repo_url = repo_url + server_dir
+ elif server_ip:
+ repo_url = repo_url + server_ip + "/"
+ if server_dir:
+ repo_url = repo_url + server_dir
+ _host_repo_url = repo_url
+ return repo_url
+ return None
+
+def getInstallRepos(enabled_sources_only = True):
+ dom0_inst_source = getHostInstallSource()
+ locations = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $6 }'")
+ locations = locations[(locations.rfind('URI')):].split()
+ index = 0
+ index_dom0 = -1
+ number_of_sources = 0
+ zypper_output = []
+ # If we only want to list enabled sources
+ if enabled_sources_only == True:
+ enabled = commands.getoutput("/usr/bin/zypper lr -u | awk -F'|' '{ print $4 }'")
+ enabled = enabled[(enabled.rfind('Enabled')):].split()
+ for e in enabled:
+ if e == "Yes":
+ str = locations[index]
+ if str.startswith('ftp://') or str.startswith('http://') or str.startswith('nfs://') or str.startswith('smb://'):
+ zypper_output.append(str)
+ if dom0_inst_source is not None and str == dom0_inst_source:
+ index_dom0 = number_of_sources
+ number_of_sources += 1
+ index += 1
+ else:
+ locations.sort()
+ for l in locations:
+ str = locations[index]
+ if str.startswith('ftp://') or str.startswith('http://') or str.startswith('nfs://') or str.startswith('smb://'):
+ zypper_output.append(str)
+ if dom0_inst_source is not None and str == dom0_inst_source:
+ index_dom0 = number_of_sources
+ number_of_sources += 1
+ index += 1
+ if index_dom0 == -1 and dom0_inst_source:
+ index_dom0 = 0
+ zypper_output.insert(0, dom0_inst_source)
+ return (index_dom0, zypper_output)
+
++++++ virtman-update-backend.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -2,7 +2,7 @@
===================================================================
--- virt-manager-1.0.0.orig/virtManager/domain.py
+++ virt-manager-1.0.0/virtManager/domain.py
-@@ -1836,7 +1836,14 @@ class vmmDomain(vmmLibvirtObject):
+@@ -1849,7 +1849,14 @@ class vmmDomain(vmmLibvirtObject):
info = []
if not self._using_events() or self._enable_cpu_stats:
++++++ virtman-vminstall.patch ++++++
--- /var/tmp/diff_new_pack.sSWsrR/_old 2014-03-11 17:28:44.000000000 +0100
+++ /var/tmp/diff_new_pack.sSWsrR/_new 2014-03-11 17:28:44.000000000 +0100
@@ -1,7 +1,7 @@
-Index: virt-manager-0.10.1/ui/manager.ui
+Index: virt-manager-1.0.0/ui/manager.ui
===================================================================
---- virt-manager-0.10.1.orig/ui/manager.ui
-+++ virt-manager-0.10.1/ui/manager.ui
+--- virt-manager-1.0.0.orig/ui/manager.ui
++++ virt-manager-1.0.0/ui/manager.ui
@@ -277,7 +277,7 @@
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
@@ -19,10 +19,10 @@
</packing>
</child>
<child>
-Index: virt-manager-0.10.1/virtManager/manager.py
+Index: virt-manager-1.0.0/virtManager/manager.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/manager.py
-+++ virt-manager-0.10.1/virtManager/manager.py
+--- virt-manager-1.0.0.orig/virtManager/manager.py
++++ virt-manager-1.0.0/virtManager/manager.py
@@ -95,6 +95,7 @@ class vmmManager(vmmGObjectUI):
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
"action-show-preferences": (GObject.SignalFlags.RUN_FIRST, None, []),
@@ -51,10 +51,10 @@
def show_about(self, src_ignore):
self.emit("action-show-about")
-Index: virt-manager-0.10.1/virtManager/vmmenu.py
+Index: virt-manager-1.0.0/virtManager/vmmenu.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/vmmenu.py
-+++ virt-manager-0.10.1/virtManager/vmmenu.py
+--- virt-manager-1.0.0.orig/virtManager/vmmenu.py
++++ virt-manager-1.0.0/virtManager/vmmenu.py
@@ -21,9 +21,28 @@
# pylint: disable=E0611
from gi.repository import Gtk
@@ -84,10 +84,10 @@
# Build toolbar shutdown button menu (manager and details toolbar) #
####################################################################
-Index: virt-manager-0.10.1/virtManager/config.py
+Index: virt-manager-1.0.0/virtManager/config.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/config.py
-+++ virt-manager-0.10.1/virtManager/config.py
+--- virt-manager-1.0.0.orig/virtManager/config.py
++++ virt-manager-1.0.0/virtManager/config.py
@@ -191,6 +191,13 @@ class vmmConfig(object):
# General app wide helpers (gconf agnostic)
@@ -102,10 +102,10 @@
def get_appname(self):
return self.appname
def get_appversion(self):
-Index: virt-manager-0.10.1/virtManager/engine.py
+Index: virt-manager-1.0.0/virtManager/engine.py
===================================================================
---- virt-manager-0.10.1.orig/virtManager/engine.py
-+++ virt-manager-0.10.1/virtManager/engine.py
+--- virt-manager-1.0.0.orig/virtManager/engine.py
++++ virt-manager-1.0.0/virtManager/engine.py
@@ -28,6 +28,8 @@ import logging
import re
import Queue
@@ -123,7 +123,7 @@
self.conns = {}
self.err = vmmErrorDialog()
-@@ -832,6 +835,7 @@ class vmmEngine(vmmGObject):
+@@ -841,6 +844,7 @@ class vmmEngine(vmmGObject):
obj.connect("action-show-domain", self._do_show_vm)
obj.connect("action-show-preferences", self._do_show_preferences)
obj.connect("action-show-create", self._do_show_create)
@@ -131,7 +131,7 @@
obj.connect("action-show-about", self._do_show_about)
obj.connect("action-show-host", self._do_show_host)
obj.connect("action-show-connect", self._do_show_connect)
-@@ -872,11 +876,42 @@ class vmmEngine(vmmGObject):
+@@ -881,11 +885,42 @@ class vmmEngine(vmmGObject):
self.windowCreate = obj
return self.windowCreate
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org