- 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

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=146
This commit is contained in:
Charles Arnold 2014-02-28 14:58:33 +00:00 committed by Git OBS Bridge
parent 598a7cea4f
commit 674941bbf7
19 changed files with 511 additions and 48 deletions

View File

@ -0,0 +1,19 @@
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"

View File

@ -0,0 +1,20 @@
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

View File

@ -0,0 +1,19 @@
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()

View File

@ -0,0 +1,58 @@
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 <mkletzan@redhat.com>
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 "

View File

@ -0,0 +1,40 @@
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 <mkletzan@redhat.com>
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)

View File

@ -0,0 +1,21 @@
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 <mkletzan@redhat.com>
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)

View File

@ -0,0 +1,22 @@
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 <mkletzan@redhat.com>
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

View File

@ -0,0 +1,63 @@
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 <chenhanxiao@cn.fujitsu.com>
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

View File

@ -0,0 +1,39 @@
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:

View File

@ -0,0 +1,34 @@
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

View File

@ -0,0 +1,23 @@
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 = [" "]

View File

@ -0,0 +1,65 @@
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):

View File

@ -1,5 +1,22 @@
-------------------------------------------------------------------
Wed Feb 26 17:02:25 UTC 2014 - cbosdonnat@suse.com
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

View File

@ -35,6 +35,18 @@ Url: http://virt-manager.org/
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
Patch50: virtman-desktop.patch
Patch51: virtman-cdrom.patch
Patch52: virtman-kvm.patch
@ -62,11 +74,11 @@ BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define verrel %{version}-%{release}
Requires: dbus-1-x11
Requires: dconf
Requires: virt-manager-common = %{verrel}
Requires: gtk3
Requires: python-gconf
Requires: virt-manager-common = %{verrel}
Requires: dconf
Requires: dbus-1-x11
Requires: vm-install >= 0.5.6
# Libvirt-glib
@ -81,12 +93,12 @@ Requires: typelib-1_0-Vte-2_90
Requires: gtk-vnc2
Requires: libspice-client-glib-2_0-8
Requires: libspice-client-gtk-3_0-4
Requires: python-gobject-cairo
Requires: typelib-1_0-GVnc-1_0
Requires: typelib-1_0-Gtk-3_0
Requires: typelib-1_0-GtkVnc-2_0
Requires: typelib-1_0-SpiceClientGlib-2_0
Requires: typelib-1_0-SpiceClientGtk-3_0
Requires: typelib-1_0-Gtk-3_0
Requires: typelib-1_0-GVnc-1_0
Requires: typelib-1_0-GtkVnc-2_0
Requires: python-gobject-cairo
Recommends: python-SpiceClientGtk
Requires: virt-install
@ -115,9 +127,9 @@ Group: System/Monitoring
# This version not strictly required: virt-manager should work with older,
# however varying amounts of functionality will not be enabled.
Requires: libvirt-python >= 0.7.0
Requires: python-urlgrabber
Requires: python-ipaddr
Requires: python-libxml2
Requires: python-urlgrabber
%description common
Common files used by the different virt-manager interfaces, as well as
@ -128,13 +140,12 @@ virt-install related tools.
Summary: Utilities for installing virtual machines
Group: System/Monitoring
Requires: python-libxml2
Requires: virt-manager-common = %{verrel}
Provides: python-virtinst
Provides: virt-clone
Provides: virt-convert
Provides: virt-image
Provides: virt-convert
Provides: python-virtinst
Obsoletes: python-virtinst <= 0.600.4
Supplements: virt-manager
@ -146,6 +157,18 @@ machine).
%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
%patch50 -p1
%patch51 -p1
%patch52 -p1

View File

@ -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 @@ Index: virt-manager-0.10.1/virtinst/devicedisk.py
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:

View File

@ -37,7 +37,7 @@ Index: virt-manager-1.0.0/virtManager/create.py
# Get previous
type_row = self._selected_os_row()
if not type_row:
@@ -1586,7 +1609,10 @@ class vmmCreate(vmmGObjectUI):
@@ -1587,7 +1610,10 @@ class vmmCreate(vmmGObjectUI):
if extra:
extraargs += extra
if ks:
@ -49,7 +49,7 @@ Index: virt-manager-1.0.0/virtManager/create.py
if extraargs:
self.guest.installer.extraargs = extraargs
@@ -1979,6 +2005,7 @@ class vmmCreate(vmmGObjectUI):
@@ -1980,6 +2006,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)

View File

@ -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,10 +21,10 @@ Index: virt-manager-0.10.1/virtManager/addhardware.py
# 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
--- virt-manager-1.0.0.orig/virtManager/details.py
+++ virt-manager-1.0.0/virtManager/details.py
@@ -2270,6 +2270,17 @@ class vmmDetails(vmmGObjectUI):
text1=(_("Are you sure you want to remove this device?"))):
return
@ -43,11 +43,11 @@ Index: virt-manager-0.10.1/virtManager/details.py
# 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 @@ Index: virt-manager-0.10.1/virtManager/domain.py
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)

View File

@ -2,7 +2,7 @@ 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
@@ -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:

View File

@ -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 @@ Index: virt-manager-0.10.1/ui/manager.ui
</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 @@ Index: virt-manager-0.10.1/virtManager/manager.py
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 @@ Index: virt-manager-0.10.1/virtManager/vmmenu.py
# 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 @@ Index: virt-manager-0.10.1/virtManager/config.py
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 @@ Index: virt-manager-0.10.1/virtManager/engine.py
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 @@ Index: virt-manager-0.10.1/virtManager/engine.py
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