- Update to virt-manager 3.0.0 (fate#326786)
virt-manager-3.0.0.tar.bz2 * virt-install –cloud-init support (Athina Plaskasoviti, Cole Robinson) * The virt-convert tool has been removed. Please use virt-v2v instead * A handful of UI XML configuration options have been removed. The XML editor can be used instead. For a larger discussion see this thread: https://www.redhat.com/archives/virt-tools-list/ 2019-June/msg00117.html * The ‘New VM’ UI now has a ‘Manual Install’ option which creates a VM without any required install media * In the ‘New VM’ UI, the network/pxe install option has been removed. If you need network boot, choose ‘Manual Install’ and set the boot device after initial VM creation * ‘Clone VM’ UI has been reworked and simplified * ‘Migrate VM’ UI now has an XML editor for the destination VM * Global and per-vm option to disable graphical console autoconnect. This makes it easier to use virt-manager alongside another client like virt-viewer * virt-manager: set guest time after VM restore (Michael Weiser) * virt-manager: option to delete storage when removing disk device (Lily Nie) * virt-manager: show warnings if snapshot operation is unsafe (Michael Weiser) * Unattended install improvements (Fabiano Fidêncio) * cli: new –xml XPATH=VAL option for making direct XML changes * virt-install: new –reinstall=DOMAIN option * virt-install: new –autoconsole text|graphical|none option * virt-install: new –os-variant detect=on,require=on suboptions OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=509
This commit is contained in:
parent
f48ef10e68
commit
6de106691e
@ -1,38 +0,0 @@
|
||||
From cb90bbc8671aa25e23e55341745cc2682547e5f0 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Thu, 7 Dec 2017 11:17:03 +0100
|
||||
Subject: [PATCH 2/4] virtinst: python3: avoid comparison of None and int
|
||||
|
||||
This avoids the following error in python3:
|
||||
|
||||
File "/usr/share/virt-manager/virtinst/progress.py", line 249, in _do_update
|
||||
ave_dl = format_number(self.re.average_rate())
|
||||
File "/usr/share/virt-manager/virtinst/progress.py", line 481, in format_number
|
||||
while number > thresh and depth < max_depth:
|
||||
TypeError: '>' not supported between instances of 'NoneType' and 'int'
|
||||
---
|
||||
virtinst/progress.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: virt-manager-2.1.0/virtinst/progress.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/progress.py
|
||||
+++ virt-manager-2.1.0/virtinst/progress.py
|
||||
@@ -350,7 +350,7 @@ class RateEstimator:
|
||||
self.start_time = now
|
||||
self.last_update_time = now
|
||||
self.last_amount_read = 0
|
||||
- self.ave_rate = None
|
||||
+ self.ave_rate = 0
|
||||
|
||||
def update(self, amount_read, now=None):
|
||||
if now is None:
|
||||
@@ -363,7 +363,7 @@ class RateEstimator:
|
||||
# if we just started this file, all bets are off
|
||||
self.last_update_time = now
|
||||
self.last_amount_read = amount_read
|
||||
- self.ave_rate = None
|
||||
+ self.ave_rate = 0
|
||||
return
|
||||
|
||||
time_diff = now - self.last_update_time
|
@ -1,110 +0,0 @@
|
||||
Subject: guest: Don't set default uefi if firmware= is set
|
||||
From: Cole Robinson crobinso@redhat.com Fri Jul 12 15:58:22 2019 -0400
|
||||
Date: Fri Jul 12 16:01:21 2019 -0400:
|
||||
Git: 0c223ab21f0cff216b4a1ab2070a43f0e943d308
|
||||
|
||||
|
||||
diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml b/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml
|
||||
new file mode 100644
|
||||
index 00000000..b062e805
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-install-aarch64-firmware-no-override.xml
|
||||
@@ -0,0 +1,55 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>vm1</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os firmware="efi">
|
||||
+ <type arch="aarch64" machine="virt">hvm</type>
|
||||
+ <boot dev="network"/>
|
||||
+ </os>
|
||||
+ <cpu mode="host-passthrough"/>
|
||||
+ <clock offset="utc"/>
|
||||
+ <on_reboot>destroy</on_reboot>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
|
||||
+ <controller type="usb" index="0" model="qemu-xhci" ports="15"/>
|
||||
+ <interface type="bridge">
|
||||
+ <source bridge="testsuitebr0"/>
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <console type="pty"/>
|
||||
+ <channel type="unix">
|
||||
+ <source mode="bind"/>
|
||||
+ <target type="virtio" name="org.qemu.guest_agent.0"/>
|
||||
+ </channel>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
+<domain type="kvm">
|
||||
+ <name>vm1</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os firmware="efi">
|
||||
+ <type arch="aarch64" machine="virt">hvm</type>
|
||||
+ <boot dev="network"/>
|
||||
+ </os>
|
||||
+ <cpu mode="host-passthrough"/>
|
||||
+ <clock offset="utc"/>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
|
||||
+ <controller type="usb" index="0" model="qemu-xhci" ports="15"/>
|
||||
+ <interface type="bridge">
|
||||
+ <source bridge="testsuitebr0"/>
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <console type="pty"/>
|
||||
+ <channel type="unix">
|
||||
+ <source mode="bind"/>
|
||||
+ <target type="virtio" name="org.qemu.guest_agent.0"/>
|
||||
+ </channel>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
diff --git a/tests/clitest.py b/tests/clitest.py
|
||||
index 7ef324bc..a309f937 100644
|
||||
--- a/tests/clitest.py
|
||||
+++ b/tests/clitest.py
|
||||
@@ -990,6 +990,7 @@ c.add_compare("--arch aarch64 --boot kernel=/f19-arm.kernel,initrd=/f19-arm.init
|
||||
c.add_compare("--arch aarch64 --cdrom %(EXISTIMG2)s --boot loader=CODE.fd,nvram.template=VARS.fd --disk %(EXISTIMG1)s --cpu none --events on_crash=preserve,on_reboot=destroy,on_poweroff=restart", "aarch64-cdrom")
|
||||
c.add_compare("--connect %(URI-KVM-AARCH64)s --disk %(EXISTIMG1)s --import --os-variant fedora21 --panic default", "aarch64-kvm-import") # the --panic is a no-op
|
||||
c.add_compare("--connect %(URI-KVM-AARCH64)s --disk size=1 --os-variant fedora22 --features gic_version=host --network network=default,address.type=pci --controller type=scsi,model=virtio-scsi,address.type=pci", "aarch64-kvm-gic")
|
||||
+c.add_compare("--connect %(URI-KVM-AARCH64)s --arch aarch64 --disk none --pxe --boot firmware=efi", "aarch64-firmware-no-override")
|
||||
|
||||
|
||||
# Simple headless guests for various architectures
|
||||
diff --git a/virtinst/guest.py b/virtinst/guest.py
|
||||
index 41357644..f0fcfe7d 100644
|
||||
--- a/virtinst/guest.py
|
||||
+++ b/virtinst/guest.py
|
||||
@@ -561,8 +561,9 @@ class Guest(XMLBuilder):
|
||||
return path
|
||||
|
||||
def is_uefi(self):
|
||||
- return bool(self.os.loader and
|
||||
- self.os.loader_type == "pflash")
|
||||
+ if self.os.loader and self.os.loader_type == "pflash":
|
||||
+ return True
|
||||
+ return self.os.firmware == "efi"
|
||||
|
||||
def set_uefi_path(self, path):
|
||||
"""
|
||||
@@ -781,11 +782,13 @@ class Guest(XMLBuilder):
|
||||
not self.os.kernel and
|
||||
not self.os.loader and
|
||||
self.os.loader_ro is None and
|
||||
- self.os.nvram is None)
|
||||
+ self.os.nvram is None and
|
||||
+ self.os.firmware is None)
|
||||
|
||||
if use_default_uefi or self.uefi_requested:
|
||||
try:
|
||||
path = self.get_uefi_path()
|
||||
+ log.debug("Setting UEFI path=%s", path)
|
||||
self.set_uefi_path(path)
|
||||
except RuntimeError as e:
|
||||
if self.uefi_requested:
|
@ -1,22 +0,0 @@
|
||||
Subject: domcapabilities: Get video devices
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Thu Oct 3 10:44:52 2019 +0200
|
||||
Date: Fri Oct 4 11:15:09 2019 -0400:
|
||||
Git: 1547e16d62736c861a0e4dadeb86ef372d2698bd
|
||||
|
||||
domcapabilities already handles disk and hostdev. Let's add support for
|
||||
getting video devices as well.
|
||||
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py
|
||||
index f11f18aa..9cc27bc2 100644
|
||||
--- a/virtinst/domcapabilities.py
|
||||
+++ b/virtinst/domcapabilities.py
|
||||
@@ -95,6 +95,7 @@ class _Devices(_CapsBlock):
|
||||
XML_NAME = "devices"
|
||||
hostdev = XMLChildProperty(_make_capsblock("hostdev"), is_single=True)
|
||||
disk = XMLChildProperty(_make_capsblock("disk"), is_single=True)
|
||||
+ video = XMLChildProperty(_make_capsblock("video"), is_single=True)
|
||||
|
||||
|
||||
class _Features(_CapsBlock):
|
@ -1,34 +0,0 @@
|
||||
Subject: details: Fix showing the firmware type in case of firmware auto selection
|
||||
From: Lin Ma lma@suse.com Wed Jan 15 10:34:12 2020 +0800
|
||||
Date: Wed Jan 15 10:21:46 2020 -0500:
|
||||
Git: 15a9502b7b7a263c4d66ff2b3f31c209f58fe0b4
|
||||
|
||||
For a shutoff VM, If user select uefi firmware auto selection, e.g.
|
||||
<os firmware='efi'>
|
||||
...
|
||||
</os>
|
||||
|
||||
Its firmware information is set to 'BIOS' in details, This is incorrect.
|
||||
This fixes it.
|
||||
|
||||
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||
Signed-off-by: Lin Ma <lma@suse.com>
|
||||
|
||||
Index: virt-manager-2.2.1/virtManager/details/details.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/details/details.py
|
||||
+++ virt-manager-2.2.1/virtManager/details/details.py
|
||||
@@ -2017,8 +2017,11 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
# Firmware
|
||||
domcaps = self.vm.get_domain_capabilities()
|
||||
- firmware = domcaps.label_for_firmware_path(
|
||||
- self.vm.get_xmlobj().os.loader)
|
||||
+ if self.vm.get_xmlobj().is_uefi():
|
||||
+ firmware = 'UEFI'
|
||||
+ else:
|
||||
+ firmware = domcaps.label_for_firmware_path(
|
||||
+ self.vm.get_xmlobj().os.loader)
|
||||
if self.widget("overview-firmware").is_visible():
|
||||
uiutil.set_list_selection(
|
||||
self.widget("overview-firmware"), firmware)
|
@ -1,27 +0,0 @@
|
||||
Subject: virt-xml: fix defined_xml_is_unchanged
|
||||
From: Pavel Hrdina phrdina@redhat.com Tue Dec 3 13:02:21 2019 +0100
|
||||
Date: Tue Dec 3 13:04:37 2019 +0100:
|
||||
Git: 29f9f5f2d7f47fe6cc3333f2a9e6c6209db5a8f3
|
||||
|
||||
Commit <53f075ab76e1c372474ae0d88f202e487d9f213f> added a warning if the
|
||||
VM XML is not changed after removing default devices but the code was
|
||||
incorrect. We have to compare strings instead of string vs Guest object
|
||||
and also the condition was inverted.
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virt-xml b/virt-xml
|
||||
index 71445c9f..7b0174c9 100755
|
||||
--- a/virt-xml
|
||||
+++ b/virt-xml
|
||||
@@ -105,8 +105,8 @@ def get_domain_and_guest(conn, domstr):
|
||||
|
||||
def defined_xml_is_unchanged(conn, domain, original_xml):
|
||||
rawxml = get_xmldesc(domain, inactive=True)
|
||||
- new_xml = virtinst.Guest(conn, parsexml=rawxml)
|
||||
- return new_xml != original_xml
|
||||
+ new_xml = virtinst.Guest(conn, parsexml=rawxml).get_xml()
|
||||
+ return new_xml == original_xml
|
||||
|
||||
|
||||
################
|
@ -1,29 +0,0 @@
|
||||
Subject: domcapabilities: Add supports_video_bochs()
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Thu Oct 3 10:47:15 2019 +0200
|
||||
Date: Fri Oct 4 11:15:09 2019 -0400:
|
||||
Git: 2e20b128a1a1f064c5036d3d3d0cf5b09117b9da
|
||||
|
||||
Returns whether bochs display is supported, according to the domain
|
||||
capabilities.
|
||||
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/domcapabilities.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/domcapabilities.py
|
||||
+++ virt-manager-2.2.1/virtinst/domcapabilities.py
|
||||
@@ -325,6 +325,14 @@ class DomainCapabilities(XMLBuilder):
|
||||
"""
|
||||
return bool(self.features.sev.supported)
|
||||
|
||||
+ def supports_video_bochs(self):
|
||||
+ """
|
||||
+ Returns False if either libvirt or qemu do not have support to bochs
|
||||
+ video type.
|
||||
+ """
|
||||
+ models = self.devices.video.get_enum("modelType").get_values()
|
||||
+ return bool("bochs" in models)
|
||||
+
|
||||
XML_NAME = "domainCapabilities"
|
||||
os = XMLChildProperty(_OS, is_single=True)
|
||||
cpu = XMLChildProperty(_CPU, is_single=True)
|
@ -1,27 +0,0 @@
|
||||
Subject: urlfetcher: Don't override fullurl when it's explicitly set
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Fri Aug 2 17:01:44 2019 +0200
|
||||
Date: Tue Aug 6 17:59:05 2019 -0400:
|
||||
Git: 3009888a0ed200a4f472dd32239a7c5157fef391
|
||||
|
||||
acquireFile method receives an optional "fullurl" argument. In case it's
|
||||
not passed, its value is set as the same value of the filename. However,
|
||||
when fullurl is passed, it should be used and not overriden by the
|
||||
filename, otherwise fetcher.acquireFile() will just bail.
|
||||
|
||||
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py
|
||||
index 07f8b5ea..6084bf01 100644
|
||||
--- a/virtinst/install/urlfetcher.py
|
||||
+++ b/virtinst/install/urlfetcher.py
|
||||
@@ -411,7 +411,8 @@ class DirectFetcher(_URLFetcher):
|
||||
return filename
|
||||
|
||||
def acquireFile(self, filename, fullurl=None):
|
||||
- fullurl = filename
|
||||
+ if not fullurl:
|
||||
+ fullurl = filename
|
||||
filename = os.path.basename(filename)
|
||||
fetcher = fetcherForURI(fullurl, self.scratchdir, self.meter, direct=True)
|
||||
return fetcher.acquireFile(filename, fullurl) # pylint: disable=protected-access
|
@ -1,25 +0,0 @@
|
||||
Subject: guest: fix warning message when machine type is changed for secure boot
|
||||
From: Pavel Hrdina phrdina@redhat.com Mon Jul 8 10:44:43 2019 +0200
|
||||
Date: Mon Jul 8 10:57:46 2019 +0200:
|
||||
Git: 3c6e85375d0cd87dcf8ac70b41db0d899851338e
|
||||
|
||||
Introduced by commit <3586d1897>.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1727811
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virtinst/guest.py b/virtinst/guest.py
|
||||
index ef227d17..41357644 100644
|
||||
--- a/virtinst/guest.py
|
||||
+++ b/virtinst/guest.py
|
||||
@@ -586,7 +586,8 @@ class Guest(XMLBuilder):
|
||||
self.os.loader_secure = True
|
||||
if self.os.machine and "q35" not in self.os.machine:
|
||||
log.warning("Changing machine type from '%s' to 'q35' "
|
||||
- "which is required for UEFI secure boot.")
|
||||
+ "which is required for UEFI secure boot.",
|
||||
+ self.os.machine)
|
||||
self.os.machine = "q35"
|
||||
|
||||
def disable_hyperv_for_uefi(self):
|
@ -1,29 +0,0 @@
|
||||
Subject: virt-install: Use minutes instead of seconds on get_time_string()
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Thu Jul 25 14:09:53 2019 +0200
|
||||
Date: Thu Jul 25 19:13:13 2019 -0400:
|
||||
Git: 414ffa5ef82548d502a4de98d40228a68bdb29c1
|
||||
|
||||
get_time_string() currently uses self._wait_secs, while it should use
|
||||
self._wait_mins, resulting on confusing messages when using `--wait`
|
||||
option, as shown below:
|
||||
|
||||
fidencio@laerte ~/src/upstream/virt-manager $ ./virt-install --install fedora30 --unattended --wait 20
|
||||
...
|
||||
Waiting 1200 minutes for installation to complete.
|
||||
|
||||
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virt-install b/virt-install
|
||||
index af6c75bf..8efa4960 100755
|
||||
--- a/virt-install
|
||||
+++ b/virt-install
|
||||
@@ -610,7 +610,7 @@ class WaitHandler:
|
||||
self._start_time = time.time()
|
||||
|
||||
def get_time_string(self):
|
||||
- timestr = _(" %d minutes") % self._wait_secs
|
||||
+ timestr = _(" %d minutes") % self._wait_mins
|
||||
if self._wait_forever:
|
||||
timestr = ""
|
||||
ret = _("Waiting%(time_string)s for installation to complete.") % {
|
@ -1,52 +0,0 @@
|
||||
Subject: connection: Avoid repeated default pool creation attempts
|
||||
From: Michael Weiser michael.weiser@gmx.de Fri Oct 25 21:27:18 2019 +0200
|
||||
Date: Tue Nov 12 12:28:34 2019 -0500:
|
||||
Git: 51d84c54cb63350145f4ad3a2adba17313e1f227
|
||||
|
||||
During startup virtinst.StoragePool.build_default_pool() tries to
|
||||
determine whether the default storage pool already exists. Because
|
||||
events have not yet been processed, the list of existing storage pools
|
||||
is still empty. Therefore it seems as if it does not exist yet and
|
||||
build_default_pool() falls back to creating it which causes an error
|
||||
message from libvirtd in the system log:
|
||||
|
||||
libvirtd: operation failed: pool 'default' already exists with uuid.
|
||||
|
||||
Move default pool creation after event processing to avoid these
|
||||
redundant creation attempts.
|
||||
|
||||
Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
|
||||
|
||||
diff --git a/virtManager/connection.py b/virtManager/connection.py
|
||||
index f6dc5f5b..e526d495 100644
|
||||
--- a/virtManager/connection.py
|
||||
+++ b/virtManager/connection.py
|
||||
@@ -990,13 +990,6 @@ class vmmConnection(vmmGObject):
|
||||
log.debug("%s capabilities:\n%s",
|
||||
self.get_uri(), self.caps.get_xml())
|
||||
|
||||
- # Try to create the default storage pool
|
||||
- # We want this before events setup to save some needless polling
|
||||
- try:
|
||||
- virtinst.StoragePool.build_default_pool(self.get_backend())
|
||||
- except Exception as e:
|
||||
- log.debug("Building default pool failed: %s", str(e))
|
||||
-
|
||||
self._add_conn_events()
|
||||
|
||||
try:
|
||||
@@ -1025,6 +1018,14 @@ class vmmConnection(vmmGObject):
|
||||
self._init_object_event = None
|
||||
self._init_object_count = None
|
||||
|
||||
+ # Try to create the default storage pool
|
||||
+ # We need this after events setup so we can determine if the default
|
||||
+ # pool already exists
|
||||
+ try:
|
||||
+ virtinst.StoragePool.build_default_pool(self.get_backend())
|
||||
+ except Exception as e:
|
||||
+ log.debug("Building default pool failed: %s", str(e))
|
||||
+
|
||||
def _open_thread(self):
|
||||
ConnectError = None
|
||||
try:
|
@ -1,39 +0,0 @@
|
||||
Subject: urlfetcher: Force a flush after writing to a file
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Mon Aug 5 13:47:25 2019 +0200
|
||||
Date: Tue Aug 6 17:59:05 2019 -0400:
|
||||
Git: 5324582747a57c5df1574ed99dbe20d3d0f65747
|
||||
|
||||
While downloading really small files, on some file systems, the files
|
||||
may not be flushed on time for whatever reason they've been downloaded.
|
||||
|
||||
This issue was noticed after trying to perform unattended installations
|
||||
and noticing that some files, particularly really small ones, where just
|
||||
empty.
|
||||
|
||||
While the original issue would be fixed by doing the flush on
|
||||
_HTTPURLFetcher::_write(), let's also force it on _URLFetcher::_write()
|
||||
to do the same.
|
||||
|
||||
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py
|
||||
index e48c801c..07f8b5ea 100644
|
||||
--- a/virtinst/install/urlfetcher.py
|
||||
+++ b/virtinst/install/urlfetcher.py
|
||||
@@ -156,6 +156,7 @@ class _URLFetcher(object):
|
||||
fileobj.write(buff)
|
||||
total += len(buff)
|
||||
self.meter.update(total)
|
||||
+ fileobj.flush()
|
||||
return total
|
||||
|
||||
def _grabber(self, url):
|
||||
@@ -291,6 +292,7 @@ class _HTTPURLFetcher(_URLFetcher):
|
||||
fileobj.write(data)
|
||||
total += len(data)
|
||||
self.meter.update(total)
|
||||
+ fileobj.flush()
|
||||
return total
|
||||
|
||||
|
@ -1,63 +0,0 @@
|
||||
Subject: createnet: Fix XML editor error when dhcp fields are empty
|
||||
From: Cole Robinson crobinso@redhat.com Wed Jan 29 18:43:58 2020 -0500
|
||||
Date: Wed Jan 29 18:53:31 2020 -0500:
|
||||
Git: 5573aeb44100bcabdc24ab1cd19ec96bb4cb9d62
|
||||
|
||||
We need to handle the case when ip == None
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1726586
|
||||
|
||||
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||
|
||||
--- virt-manager-2.2.1.orig/virtManager/createnet.py
|
||||
+++ virt-manager-2.2.1/virtManager/createnet.py
|
||||
@@ -414,31 +414,35 @@ class vmmCreateNetwork(vmmGObjectUI):
|
||||
if self.get_config_ipv4_enable():
|
||||
ip = self.get_config_ip4()
|
||||
ipobj = net.ips.add_new()
|
||||
- ipobj.address = str(ip.network_address + 1)
|
||||
- ipobj.netmask = str(ip.netmask)
|
||||
+ if ip:
|
||||
+ ipobj.address = str(ip.network_address + 1)
|
||||
+ ipobj.netmask = str(ip.netmask)
|
||||
|
||||
if self.get_config_dhcpv4_enable():
|
||||
dhcpobj = ipobj.ranges.add_new()
|
||||
- dhcpobj.start = str(
|
||||
- self.get_config_dhcpv4_start().network_address
|
||||
- )
|
||||
- dhcpobj.end = str(self.get_config_dhcpv4_end().network_address)
|
||||
+ start = self.get_config_dhcpv4_start()
|
||||
+ end = self.get_config_dhcpv4_end()
|
||||
+ if start:
|
||||
+ dhcpobj.start = str(start.network_address)
|
||||
+ if end:
|
||||
+ dhcpobj.end = str(end.network_address)
|
||||
|
||||
if self.get_config_ipv6_enable():
|
||||
ip = self.get_config_ip6()
|
||||
ipobj = net.ips.add_new()
|
||||
ipobj.family = "ipv6"
|
||||
- ipobj.address = str(ip.network_address + 1)
|
||||
- ipobj.prefix = str(ip.prefixlen)
|
||||
+ if ip:
|
||||
+ ipobj.address = str(ip.network_address + 1)
|
||||
+ ipobj.prefix = str(ip.prefixlen)
|
||||
|
||||
if self.get_config_dhcpv6_enable():
|
||||
dhcpobj = ipobj.ranges.add_new()
|
||||
- dhcpobj.start = str(
|
||||
- self.get_config_dhcpv6_start().network_address
|
||||
- )
|
||||
- dhcpobj.end = str(
|
||||
- self.get_config_dhcpv6_end().network_address
|
||||
- )
|
||||
+ start = self.get_config_dhcpv6_start()
|
||||
+ end = self.get_config_dhcpv6_end()
|
||||
+ if start:
|
||||
+ dhcpobj.start = str(start.network_address)
|
||||
+ if end:
|
||||
+ dhcpobj.end = str(end.network_address)
|
||||
|
||||
return net
|
||||
|
@ -1,35 +0,0 @@
|
||||
Subject: devices: video: Simplify model hvm check
|
||||
From: Cole Robinson crobinso@redhat.com Thu Oct 3 15:41:44 2019 -0400
|
||||
Date: Thu Oct 3 15:41:44 2019 -0400:
|
||||
Git: 651e5b6d753930a2e7536efa4e6d20f57b038e80
|
||||
|
||||
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||
|
||||
diff --git a/virtinst/devices/video.py b/virtinst/devices/video.py
|
||||
index 3d8ab939..3ebc561f 100644
|
||||
--- a/virtinst/devices/video.py
|
||||
+++ b/virtinst/devices/video.py
|
||||
@@ -27,6 +27,8 @@ class DeviceVideo(Device):
|
||||
|
||||
@staticmethod
|
||||
def default_model(guest):
|
||||
+ if not guest.os.is_hvm():
|
||||
+ return None
|
||||
if guest.os.is_pseries():
|
||||
return "vga"
|
||||
if guest.os.is_arm_machvirt() or guest.os.is_riscv_virt():
|
||||
@@ -37,11 +39,9 @@ class DeviceVideo(Device):
|
||||
if guest.has_gl():
|
||||
return "virtio"
|
||||
return "qxl"
|
||||
- if guest.os.is_hvm():
|
||||
- if guest.conn.is_qemu():
|
||||
- return "qxl"
|
||||
- return "vga"
|
||||
- return None
|
||||
+ if guest.conn.is_qemu():
|
||||
+ return "qxl"
|
||||
+ return "vga"
|
||||
|
||||
def set_defaults(self, guest):
|
||||
if not self.model:
|
@ -1,39 +0,0 @@
|
||||
Subject: graphics: Default to 'vga' instead of 'qxl' for non-spice
|
||||
From: Cole Robinson crobinso@redhat.com Mon Aug 31 13:43:56 2020 -0400
|
||||
Date: Mon Aug 31 13:43:56 2020 -0400:
|
||||
Git: 7e3fb3f281835ba6779886a89b27376cc423ef94
|
||||
|
||||
qxl doesn't add anything for the VNC case, and qxl is more likely
|
||||
to be compiled out of qemu since it is dependent on spice, so vga
|
||||
is the safer default for getting a working config
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1833704
|
||||
|
||||
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||
|
||||
diff --git a/tests/cli-test-xml/compare/virt-install-x86_64-graphics.xml b/tests/cli-test-xml/compare/virt-install-x86_64-graphics.xml
|
||||
index ea9b184f..c1b06ca1 100644
|
||||
--- a/tests/cli-test-xml/compare/virt-install-x86_64-graphics.xml
|
||||
+++ b/tests/cli-test-xml/compare/virt-install-x86_64-graphics.xml
|
||||
@@ -48,7 +48,7 @@
|
||||
<input type="tablet" bus="usb"/>
|
||||
<graphics type="vnc" port="-1"/>
|
||||
<video>
|
||||
- <model type="qxl"/>
|
||||
+ <model type="vga"/>
|
||||
</video>
|
||||
<memballoon model="virtio"/>
|
||||
<rng model="virtio">
|
||||
diff --git a/virtinst/devices/video.py b/virtinst/devices/video.py
|
||||
index fcca91b6..f9383131 100644
|
||||
--- a/virtinst/devices/video.py
|
||||
+++ b/virtinst/devices/video.py
|
||||
@@ -42,8 +42,6 @@ class DeviceVideo(Device):
|
||||
if (guest.is_uefi() and
|
||||
guest.lookup_domcaps().supports_video_bochs()):
|
||||
return "bochs"
|
||||
- if guest.conn.is_qemu():
|
||||
- return "qxl"
|
||||
return "vga"
|
||||
|
||||
def set_defaults(self, guest):
|
@ -1,27 +0,0 @@
|
||||
Subject: video: Prefer "bochs" when it's supported.
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Thu Oct 3 10:50:34 2019 +0200
|
||||
Date: Fri Oct 4 11:17:10 2019 -0400:
|
||||
Git: 8f4c53ea960459516794ba533060a176cc26f121
|
||||
|
||||
Preferring "bochs" display device is the way to go when dealing with a
|
||||
Linux guest using UEFI and that's quite well described here:
|
||||
https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1753644
|
||||
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtinst/devices/video.py b/virtinst/devices/video.py
|
||||
index 3ebc561f..fcca91b6 100644
|
||||
--- a/virtinst/devices/video.py
|
||||
+++ b/virtinst/devices/video.py
|
||||
@@ -39,6 +39,9 @@ class DeviceVideo(Device):
|
||||
if guest.has_gl():
|
||||
return "virtio"
|
||||
return "qxl"
|
||||
+ if (guest.is_uefi() and
|
||||
+ guest.lookup_domcaps().supports_video_bochs()):
|
||||
+ return "bochs"
|
||||
if guest.conn.is_qemu():
|
||||
return "qxl"
|
||||
return "vga"
|
@ -1,37 +0,0 @@
|
||||
Subject: urlfetcher: Deal with 'file://' in _LocalURLFetcher()
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Tue Sep 24 14:26:43 2019 +0200
|
||||
Date: Wed Oct 2 11:58:34 2019 -0400:
|
||||
Git: 9465da4174e778e7607908f18d74fd8aa2cba2fe
|
||||
|
||||
osinfo-db may contain files pointing to local paths, which will have the
|
||||
format 'file:///usr/share/...'.
|
||||
|
||||
With the current code, virt-install would just bail as it doesn't
|
||||
understand the 'file://' schema. Let's start using urllib (which is
|
||||
already imported in the very same file) and parse the URL so both
|
||||
'file:///usr/share/...' and '/usr/share/...' would work.
|
||||
|
||||
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtinst/install/urlfetcher.py b/virtinst/install/urlfetcher.py
|
||||
index 6084bf01..e52efc8e 100644
|
||||
--- a/virtinst/install/urlfetcher.py
|
||||
+++ b/virtinst/install/urlfetcher.py
|
||||
@@ -365,11 +365,13 @@ class _LocalURLFetcher(_URLFetcher):
|
||||
For grabbing files from a local directory
|
||||
"""
|
||||
def _hasFile(self, url):
|
||||
- return os.path.exists(url)
|
||||
+ parsed = urllib.parse.urlparse(url)
|
||||
+ return os.path.exists(parsed.path)
|
||||
|
||||
def _grabber(self, url):
|
||||
- urlobj = open(url, "rb")
|
||||
- size = os.path.getsize(url)
|
||||
+ parsed = urllib.parse.urlparse(url)
|
||||
+ urlobj = open(parsed.path, "rb")
|
||||
+ size = os.path.getsize(parsed.path)
|
||||
return urlobj, size
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
Subject: fix resizing of spice clients with guest resizing enabled
|
||||
From: Florian Ludwig f.ludwig@greyrook.com Wed Oct 9 11:18:53 2019 +0200
|
||||
Date: Tue Nov 12 11:46:35 2019 -0500:
|
||||
Git: ae19d6d6ec0b48085ce1c765fb2264e27fb51c63
|
||||
|
||||
Fixes 1414718
|
||||
|
||||
diff --git a/virtManager/details/console.py b/virtManager/details/console.py
|
||||
index 8ef8631a..193e79eb 100644
|
||||
--- a/virtManager/details/console.py
|
||||
+++ b/virtManager/details/console.py
|
||||
@@ -374,7 +374,10 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
if is_resizeguest:
|
||||
# With resize guest, we don't want to maintain aspect ratio,
|
||||
# since the guest can resize to arbitrary resolutions.
|
||||
- self._viewer.console_set_size_request(req.width, req.height)
|
||||
+ viewer_alloc = Gdk.Rectangle()
|
||||
+ viewer_alloc.width = req.width
|
||||
+ viewer_alloc.height = req.height
|
||||
+ self._viewer.console_size_allocate(viewer_alloc)
|
||||
return
|
||||
|
||||
if not is_scale:
|
@ -1,24 +0,0 @@
|
||||
Subject: domcaps: Fix check for uncached security features
|
||||
From: Cole Robinson crobinso@redhat.com Tue Nov 12 14:15:56 2019 -0500
|
||||
Date: Tue Nov 12 14:17:21 2019 -0500:
|
||||
Git: d934d6f266e1731a5b881bbb9ae4cd60acd7887e
|
||||
|
||||
We need to check against None, which is the initial value, otherwise
|
||||
a host with none of the security features present will repeatedly poll
|
||||
libvirt baseline APIs
|
||||
|
||||
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||
|
||||
diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py
|
||||
index ea0ffd1f..34991ed7 100644
|
||||
--- a/virtinst/domcapabilities.py
|
||||
+++ b/virtinst/domcapabilities.py
|
||||
@@ -296,7 +296,7 @@ class DomainCapabilities(XMLBuilder):
|
||||
'virt-ssbd',
|
||||
'md-clear']
|
||||
|
||||
- if self._features:
|
||||
+ if self._features is not None:
|
||||
return self._features
|
||||
|
||||
self._features = []
|
@ -1,22 +0,0 @@
|
||||
Subject: addhardware: Add "bochs" display to the video list
|
||||
From: Fabiano Fidêncio fidencio@redhat.com Wed Oct 2 10:45:28 2019 +0200
|
||||
Date: Fri Oct 4 11:17:14 2019 -0400:
|
||||
Git: d9736db9d983d01c03929de226365dbf56a791a3
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1753644
|
||||
|
||||
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||
|
||||
diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py
|
||||
index 842eada1..881f0e02 100644
|
||||
--- a/virtManager/addhardware.py
|
||||
+++ b/virtManager/addhardware.py
|
||||
@@ -663,7 +663,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
if guest.conn.is_xen():
|
||||
return ["xen", "vga"]
|
||||
if guest.conn.is_qemu() or guest.conn.is_test():
|
||||
- return ["vga", "qxl", "virtio"]
|
||||
+ return ["vga", "bochs", "qxl", "virtio"]
|
||||
return []
|
||||
|
||||
@staticmethod
|
@ -1,25 +0,0 @@
|
||||
Subject: details: fix detection of firmware auto-selection
|
||||
From: Pavel Hrdina phrdina@redhat.com Tue Jul 21 12:33:56 2020 +0200
|
||||
Date: Thu Aug 13 16:40:53 2020 +0200:
|
||||
Git: e8bf16b983558010cc9645e09eb36117e9e4fba4
|
||||
|
||||
Commit <15a9502b7b7a263c4d66ff2b3f31c209f58fe0b4> fixed firmware
|
||||
detection but incorrectly. It will always show only "UEFI" even if
|
||||
the firmware auto-selection is not used because the function is_uefi()
|
||||
checks both the old style and the new auto-selection.
|
||||
|
||||
We have to check only for the auto-selection option.
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
--- virt-manager-2.2.1.orig/virtManager/details/details.py
|
||||
+++ virt-manager-2.2.1/virtManager/details/details.py
|
||||
@@ -2017,7 +2017,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
|
||||
# Firmware
|
||||
domcaps = self.vm.get_domain_capabilities()
|
||||
- if self.vm.get_xmlobj().is_uefi():
|
||||
+ if self.vm.get_xmlobj().os.firmware == "efi":
|
||||
firmware = 'UEFI'
|
||||
else:
|
||||
firmware = domcaps.label_for_firmware_path(
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1c28128eee24bc5fdd3f67a3b3e6713cac14ed9664619948f98f1ca71ec992f
|
||||
size 1483469
|
3
virt-manager-3.0.0.tar.bz2
Normal file
3
virt-manager-3.0.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:01103f0ac50fa783bb130d7b3330a32abfcb4d2bc112024e490c5cdce5908651
|
||||
size 1584794
|
@ -1,3 +1,77 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 16 05:24:21 MDT 2020 - carnold@suse.com
|
||||
|
||||
- Update to virt-manager 3.0.0 (fate#326786)
|
||||
virt-manager-3.0.0.tar.bz2
|
||||
* virt-install –cloud-init support (Athina Plaskasoviti, Cole
|
||||
Robinson)
|
||||
* The virt-convert tool has been removed. Please use virt-v2v
|
||||
instead
|
||||
* A handful of UI XML configuration options have been removed.
|
||||
The XML editor can be used instead. For a larger discussion see
|
||||
this thread: https://www.redhat.com/archives/virt-tools-list/
|
||||
2019-June/msg00117.html
|
||||
* The ‘New VM’ UI now has a ‘Manual Install’ option which creates
|
||||
a VM without any required install media
|
||||
* In the ‘New VM’ UI, the network/pxe install option has been
|
||||
removed. If you need network boot, choose ‘Manual Install’ and
|
||||
set the boot device after initial VM creation
|
||||
* ‘Clone VM’ UI has been reworked and simplified
|
||||
* ‘Migrate VM’ UI now has an XML editor for the destination VM
|
||||
* Global and per-vm option to disable graphical console
|
||||
autoconnect. This makes it easier to use virt-manager alongside
|
||||
another client like virt-viewer
|
||||
* virt-manager: set guest time after VM restore (Michael Weiser)
|
||||
* virt-manager: option to delete storage when removing disk
|
||||
device (Lily Nie)
|
||||
* virt-manager: show warnings if snapshot operation is unsafe
|
||||
(Michael Weiser)
|
||||
* Unattended install improvements (Fabiano Fidêncio)
|
||||
* cli: new –xml XPATH=VAL option for making direct XML changes
|
||||
* virt-install: new –reinstall=DOMAIN option
|
||||
* virt-install: new –autoconsole text|graphical|none option
|
||||
* virt-install: new –os-variant detect=on,require=on suboptions
|
||||
* cli: –clock, –keywrap, –blkiotune, –cputune additions (Athina
|
||||
Plaskasoviti)
|
||||
* cli: add –features kvm.hint-dedicated.state= (Menno Lageman)
|
||||
* cli:–iommu option (Menno Lageman)
|
||||
* cli: Add –graphics websocket= support (Petr Benes)
|
||||
* cli: Add –disk type=nvme source.* suboptions
|
||||
* cli: Fill in all –filesystem suboptions
|
||||
* Translation string improvements (Pino Toscano)
|
||||
* Convert from .pod to .rst for man pages
|
||||
* Switch to pytest as our test runner
|
||||
* Massively improved unittest and uitest code coverage
|
||||
* Now using github issues as our bug tracker
|
||||
- Drop patches contained in new tarball
|
||||
3c6e8537-guest-fix-warning-message-when-machine-type-is-changed-for-secure-boot.patch
|
||||
0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch
|
||||
414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch
|
||||
53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch
|
||||
3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch
|
||||
9465da41-urlfetcher-Deal-with-file-in-_LocalURLFetcher.patch
|
||||
651e5b6d-devices-video-Simplify-model-hvm-check.patch
|
||||
1547e16d-domcapabilities-Get-video-devices.patch
|
||||
2e20b128-domcapabilities-Add-supports_video_bochs.patch
|
||||
d9736db9-addhardware-Add-bochs-display-to-the-video-list.patch
|
||||
8f4c53ea-video-Prefer-bochs-when-its-supported..patch
|
||||
ae19d6d6-fix-resizing-of-spice-clients-with-guest-resizing-enabled.patch
|
||||
51d84c54-connection-Avoid-repeated-default-pool-creation-attempts.patch
|
||||
d934d6f2-domcaps-Fix-check-for-uncached-security-features.patch
|
||||
29f9f5f2-virt-xml-fix-defined_xml_is_unchanged.patch
|
||||
15a9502b-Fix-showing-the-firmware-type-in-case-of-firmware-auto-selection.patch
|
||||
5573aeb4-createnet-Fix-XML-editor-error-when-dhcp-fields-are-empty.patch
|
||||
e8bf16b9-details-fix-detection-of-firmware-auto-selection.patch
|
||||
7e3fb3f2-graphics-Default-to-vga-instead-of-qxl-for-non-spice.patch
|
||||
- Drop deprecated patches
|
||||
virtman-fix-env-script-interpreter.patch
|
||||
virtinst-osdict-get_supported.patch
|
||||
virtconv-python2-to-python3-conversion.patch
|
||||
virtinst-python2-to-python3-conversion.patch
|
||||
virtman-python2-to-python3-conversion.patch
|
||||
virttests-python2-to-python3-conversion.patch
|
||||
0002-virtinst-python3-avoid-comparison-of-None-and-int.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 3 13:59:39 MDT 2020 - carnold@suse.com
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
%global default_hvs "qemu,xen,lxc"
|
||||
|
||||
Name: virt-manager
|
||||
Version: 2.2.1
|
||||
Version: 3.0.0
|
||||
Release: 0
|
||||
Summary: Virtual Machine Manager
|
||||
License: GPL-2.0-or-later
|
||||
@ -32,25 +32,6 @@ Source1: virt-install.rb
|
||||
Source2: virt-install.desktop
|
||||
Source3: virt-manager-supportconfig
|
||||
# Upstream Patches
|
||||
Patch1: 3c6e8537-guest-fix-warning-message-when-machine-type-is-changed-for-secure-boot.patch
|
||||
Patch2: 0c223ab2-guest-Dont-set-default-uefi-if-firmware-is-set.patch
|
||||
Patch3: 414ffa5e-virt-install-Use-minutes-instead-of-seconds-on-get_time_string.patch
|
||||
Patch4: 53245827-urlfetcher-Force-a-flush-after-writing-to-a-file.patch
|
||||
Patch5: 3009888a-urlfetcher-Dont-override-fullurl-when-its-explicitly-set.patch
|
||||
Patch6: 9465da41-urlfetcher-Deal-with-file-in-_LocalURLFetcher.patch
|
||||
Patch7: 651e5b6d-devices-video-Simplify-model-hvm-check.patch
|
||||
Patch8: 1547e16d-domcapabilities-Get-video-devices.patch
|
||||
Patch9: 2e20b128-domcapabilities-Add-supports_video_bochs.patch
|
||||
Patch10: d9736db9-addhardware-Add-bochs-display-to-the-video-list.patch
|
||||
Patch11: 8f4c53ea-video-Prefer-bochs-when-its-supported..patch
|
||||
Patch12: ae19d6d6-fix-resizing-of-spice-clients-with-guest-resizing-enabled.patch
|
||||
Patch13: 51d84c54-connection-Avoid-repeated-default-pool-creation-attempts.patch
|
||||
Patch14: d934d6f2-domcaps-Fix-check-for-uncached-security-features.patch
|
||||
Patch15: 29f9f5f2-virt-xml-fix-defined_xml_is_unchanged.patch
|
||||
Patch16: 15a9502b-Fix-showing-the-firmware-type-in-case-of-firmware-auto-selection.patch
|
||||
Patch17: 5573aeb4-createnet-Fix-XML-editor-error-when-dhcp-fields-are-empty.patch
|
||||
Patch18: e8bf16b9-details-fix-detection-of-firmware-auto-selection.patch
|
||||
Patch19: 7e3fb3f2-graphics-Default-to-vga-instead-of-qxl-for-non-spice.patch
|
||||
# SUSE Only
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-kvm.patch
|
||||
@ -58,8 +39,7 @@ Patch72: virtman-show-suse-install-repos.patch
|
||||
Patch73: virtman-dont-allow-grub.xen-to-be-deleted.patch
|
||||
Patch74: virtinst-pvgrub2-bootloader.patch
|
||||
Patch75: virtinst-change-location-for-grub_xen.patch
|
||||
Patch76: virtman-fix-env-script-interpreter.patch
|
||||
Patch77: virtinst-set-qemu-emulator.patch
|
||||
Patch76: virtinst-set-qemu-emulator.patch
|
||||
# Features or Enhancements
|
||||
Patch103: virtman-load-stored-uris.patch
|
||||
Patch120: virtinst-default-xen-to-qcow2-format.patch
|
||||
@ -81,22 +61,15 @@ Patch155: virtman-dont-specify-vte-version.patch
|
||||
Patch156: virtman-dont-specify-gtksource-version.patch
|
||||
Patch157: virtman-fix-restore-vm-menu-selection.patch
|
||||
Patch158: virtman-disallow-adding-floppy-disk.patch
|
||||
Patch160: virtinst-xen-drive-type.patch
|
||||
Patch161: virtinst-xenbus-disk-index-fix.patch
|
||||
Patch162: virtinst-refresh_before_fetch_pool.patch
|
||||
Patch163: virtinst-use-xenpae-kernel-for-32bit.patch
|
||||
Patch164: virtinst-use-qemu-for-cdrom-device.patch
|
||||
Patch165: virtinst-keep-install-iso-attached.patch
|
||||
Patch166: virtinst-osdict-get_supported.patch
|
||||
Patch167: virtinst-dont-use-special-copy-cpu-features.patch
|
||||
Patch168: virtinst-set-default-nic.patch
|
||||
# Python2 to Python3 patches
|
||||
Patch200: virtconv-python2-to-python3-conversion.patch
|
||||
Patch201: virtinst-python2-to-python3-conversion.patch
|
||||
Patch202: virtman-python2-to-python3-conversion.patch
|
||||
Patch203: virttests-python2-to-python3-conversion.patch
|
||||
Patch204: 0002-virtinst-python3-avoid-comparison-of-None-and-int.patch
|
||||
Patch205: virtman-register-delete-event-for-details-dialog.patch
|
||||
Patch159: virtman-register-delete-event-for-details-dialog.patch
|
||||
Patch170: virtinst-xen-drive-type.patch
|
||||
Patch171: virtinst-xenbus-disk-index-fix.patch
|
||||
Patch172: virtinst-refresh_before_fetch_pool.patch
|
||||
Patch173: virtinst-use-xenpae-kernel-for-32bit.patch
|
||||
Patch174: virtinst-use-qemu-for-cdrom-device.patch
|
||||
Patch175: virtinst-keep-install-iso-attached.patch
|
||||
Patch176: virtinst-dont-use-special-copy-cpu-features.patch
|
||||
Patch177: virtinst-set-default-nic.patch
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -123,6 +96,7 @@ BuildRequires: gtk3-tools
|
||||
BuildRequires: intltool
|
||||
BuildRequires: perl
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-docutils
|
||||
BuildRequires: python3-gobject
|
||||
BuildRequires: python3-libvirt-python >= 0.7.0
|
||||
BuildRequires: python3-libxml2-python
|
||||
@ -168,7 +142,6 @@ Requires: virt-manager-common = %{verrel}
|
||||
Requires: python3-requests
|
||||
Provides: python3-virtinst
|
||||
Provides: virt-clone
|
||||
Provides: virt-convert
|
||||
Obsoletes: python-virtinst <= 0.600.4
|
||||
Supplements: virt-manager
|
||||
|
||||
@ -181,25 +154,6 @@ machine).
|
||||
%prep
|
||||
%setup -q
|
||||
# Upstream Patches
|
||||
%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
|
||||
# SUSE Only
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
@ -208,7 +162,6 @@ machine).
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch77 -p1
|
||||
# Enhancements
|
||||
%patch103 -p1
|
||||
%patch120 -p1
|
||||
@ -230,22 +183,15 @@ machine).
|
||||
%patch156 -p1
|
||||
%patch157 -p1
|
||||
%patch158 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
%patch164 -p1
|
||||
%patch165 -p1
|
||||
%patch166 -p1
|
||||
%patch167 -p1
|
||||
%patch168 -p1
|
||||
# Python2 to Python3 patches
|
||||
%patch200 -p1
|
||||
%patch201 -p1
|
||||
%patch202 -p1
|
||||
%patch203 -p1
|
||||
%patch204 -p1
|
||||
%patch205 -p1
|
||||
%patch159 -p1
|
||||
%patch170 -p1
|
||||
%patch171 -p1
|
||||
%patch172 -p1
|
||||
%patch173 -p1
|
||||
%patch174 -p1
|
||||
%patch175 -p1
|
||||
%patch176 -p1
|
||||
%patch177 -p1
|
||||
|
||||
%build
|
||||
%if %{default_hvs}
|
||||
@ -295,9 +241,9 @@ fi
|
||||
|
||||
%{_mandir}/man1/%{name}.1*
|
||||
|
||||
%dir %{_datadir}/virt-manager/ui
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/ui
|
||||
%{_datadir}/%{name}/ui/*.ui
|
||||
%{_datadir}/%{name}/virt-manager
|
||||
%{_datadir}/%{name}/virtManager
|
||||
|
||||
%dir %{_datadir}/icons/hicolor
|
||||
@ -306,7 +252,7 @@ fi
|
||||
%{_datadir}/%{name}/icons
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
|
||||
%{_datadir}/appdata/%{name}.appdata.xml
|
||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/applications/YaST2/virt-install.desktop
|
||||
%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml
|
||||
@ -318,33 +264,24 @@ fi
|
||||
%defattr(-,root,root,-)
|
||||
%dir %{_datadir}/%{name}
|
||||
|
||||
%{_datadir}/%{name}/virtconv
|
||||
%{_datadir}/%{name}/virtinst
|
||||
|
||||
%files -n virt-install
|
||||
%defattr(-,root,root,-)
|
||||
%{_mandir}/man1/virt-install.1*
|
||||
%{_mandir}/man1/virt-clone.1*
|
||||
%{_mandir}/man1/virt-convert.1*
|
||||
%{_mandir}/man1/virt-xml.1*
|
||||
|
||||
%{_datadir}/%{name}/virt-install
|
||||
%{_bindir}/virt-install
|
||||
%{_datadir}/bash-completion/completions/virt-install
|
||||
%{_datadir}/%{name}/virt-clone
|
||||
%{_bindir}/virt-clone
|
||||
%{_datadir}/bash-completion/completions/virt-clone
|
||||
%{_datadir}/%{name}/virt-convert
|
||||
%{_datadir}/bash-completion/completions/virt-convert
|
||||
%{_datadir}/%{name}/virt-xml
|
||||
%{_bindir}/virt-xml
|
||||
%{_datadir}/bash-completion/completions/virt-xml
|
||||
|
||||
%dir %{_datadir}/YaST2
|
||||
%dir %{_datadir}/YaST2/clients
|
||||
%dir %{_datadir}/applications/YaST2
|
||||
%dir %{_datadir}/appdata
|
||||
%{_datadir}/YaST2/clients/virt-install.rb
|
||||
|
||||
%{_bindir}/virt-install
|
||||
%{_bindir}/virt-clone
|
||||
%{_bindir}/virt-convert
|
||||
%{_bindir}/virt-xml
|
||||
|
||||
%changelog
|
||||
|
@ -1,13 +0,0 @@
|
||||
Index: virt-manager-2.2.0/virtconv/vmx.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtconv/vmx.py
|
||||
+++ virt-manager-2.2.0/virtconv/vmx.py
|
||||
@@ -259,7 +259,7 @@ class vmx_parser(parser_class):
|
||||
|
||||
def _find_keys(prefixes):
|
||||
ret = []
|
||||
- for key, value in config.items():
|
||||
+ for key, value in list(config.items()):
|
||||
for p in xmlutil.listify(prefixes):
|
||||
if key.startswith(p):
|
||||
ret.append((key, value))
|
@ -1,10 +1,10 @@
|
||||
References: bsc#1010060
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
@@ -273,6 +273,12 @@ class _SUSEContent(object):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
@@ -277,6 +277,12 @@ class _SUSEContent(object):
|
||||
self.product_name.strip().rsplit(' ')[5][2])
|
||||
distro_version = sle_version
|
||||
|
||||
@ -17,17 +17,17 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
return distro_version
|
||||
|
||||
|
||||
@@ -550,6 +556,9 @@ class _SuseDistro(_RHELDistro):
|
||||
# Tumbleweed 8 digit date
|
||||
return "opensusetumbleweed"
|
||||
@@ -563,6 +569,9 @@ class _SuseDistro(_RHELDistro):
|
||||
|
||||
version = distro_version.split('.', 1)[0].strip()
|
||||
|
||||
+ if self._variant_prefix.startswith(("caasp")):
|
||||
+ return self._variant_prefix + distro_version
|
||||
+
|
||||
if int(version) < 10:
|
||||
return self._variant_prefix + "9"
|
||||
|
||||
@@ -622,6 +631,14 @@ class _OpensuseDistro(_SuseDistro):
|
||||
if str(self._variant_prefix).startswith(("sles", "sled", "oes")):
|
||||
sp_version = ""
|
||||
if len(distro_version.split('.', 1)) == 2:
|
||||
@@ -632,6 +641,14 @@ class _OpensuseDistro(_SuseDistro):
|
||||
famregex = ".*openSUSE.*"
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
class _OESDistro(_SuseDistro):
|
||||
PRETTY_NAME = "OES"
|
||||
matching_distros = ["oes"]
|
||||
@@ -838,6 +855,7 @@ def _build_distro_list(osobj):
|
||||
@@ -869,6 +886,7 @@ def _build_distro_list(osobj):
|
||||
_SLESDistro,
|
||||
_SLEDDistro,
|
||||
_OpensuseDistro,
|
||||
|
@ -1,24 +1,24 @@
|
||||
References: fate#326698 - Add pvh support to virt-manager
|
||||
At this time support is disabled in this patch.
|
||||
|
||||
Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
Index: virt-manager-3.0.0/virtManager/createvm.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/createvm.py
|
||||
+++ virt-manager-2.2.1/virtManager/createvm.py
|
||||
@@ -792,6 +792,9 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
for guest in guests:
|
||||
if not guest.domains:
|
||||
--- virt-manager-3.0.0.orig/virtManager/createvm.py
|
||||
+++ virt-manager-3.0.0/virtManager/createvm.py
|
||||
@@ -837,6 +837,9 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
break
|
||||
if label is None:
|
||||
continue
|
||||
+ # xenpvh is currently unsupported
|
||||
+ if guest.os_type == "xenpvh":
|
||||
+ continue
|
||||
|
||||
gtype = guest.os_type
|
||||
dom = guest.domains[0]
|
||||
Index: virt-manager-2.2.1/virtinst/domain/os.py
|
||||
# Determine if this is the default given by guest_lookup
|
||||
if (gtype == self._capsinfo.os_type and
|
||||
Index: virt-manager-3.0.0/virtinst/domain/os.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/domain/os.py
|
||||
+++ virt-manager-2.2.1/virtinst/domain/os.py
|
||||
--- virt-manager-3.0.0.orig/virtinst/domain/os.py
|
||||
+++ virt-manager-3.0.0/virtinst/domain/os.py
|
||||
@@ -32,6 +32,8 @@ class DomainOs(XMLBuilder):
|
||||
return self.os_type == "hvm"
|
||||
def is_xenpv(self):
|
||||
@ -28,11 +28,11 @@ Index: virt-manager-2.2.1/virtinst/domain/os.py
|
||||
def is_container(self):
|
||||
return self.os_type == "exe"
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
Index: virt-manager-3.0.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.2.1/virtinst/guest.py
|
||||
@@ -824,7 +824,7 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-3.0.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-3.0.0/virtinst/guest.py
|
||||
@@ -814,7 +814,7 @@ class Guest(XMLBuilder):
|
||||
|
||||
usb_tablet = False
|
||||
usb_keyboard = False
|
||||
@ -41,11 +41,11 @@ Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
usb_tablet = self.osinfo.supports_usbtablet()
|
||||
if (self.os.is_arm_machvirt() or
|
||||
self.os.is_riscv_virt() or
|
||||
Index: virt-manager-2.2.1/virtManager/object/domain.py
|
||||
Index: virt-manager-3.0.0/virtManager/object/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/object/domain.py
|
||||
+++ virt-manager-2.2.1/virtManager/object/domain.py
|
||||
@@ -1150,6 +1150,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
--- virt-manager-3.0.0.orig/virtManager/object/domain.py
|
||||
+++ virt-manager-3.0.0/virtManager/object/domain.py
|
||||
@@ -1223,6 +1223,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
return self.get_xmlobj().os.is_xenpv()
|
||||
def is_hvm(self):
|
||||
return self.get_xmlobj().os.is_hvm()
|
||||
@ -54,11 +54,11 @@ Index: virt-manager-2.2.1/virtManager/object/domain.py
|
||||
|
||||
def get_uuid(self):
|
||||
if self._uuid is None:
|
||||
Index: virt-manager-2.2.1/virtManager/connection.py
|
||||
Index: virt-manager-3.0.0/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-2.2.1/virtManager/connection.py
|
||||
@@ -223,6 +223,8 @@ class vmmConnection(vmmGObject):
|
||||
--- virt-manager-3.0.0.orig/virtManager/connection.py
|
||||
+++ virt-manager-3.0.0/virtManager/connection.py
|
||||
@@ -211,6 +211,8 @@ class vmmConnection(vmmGObject):
|
||||
label = "xen (paravirt)"
|
||||
elif gtype == "hvm":
|
||||
label = "xen (fullvirt)"
|
||||
|
@ -1,10 +1,10 @@
|
||||
References: bsc#1054986
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
@@ -586,6 +586,10 @@ class _SuseDistro(_RHELDistro):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
@@ -596,6 +596,10 @@ class _SuseDistro(_RHELDistro):
|
||||
if re.search("openSUSE Tumbleweed", self.cache.treeinfo_name):
|
||||
return "opensusetumbleweed"
|
||||
|
||||
@ -15,7 +15,7 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
version, update = self.cache.split_version()
|
||||
base = self._variant_prefix + str(version)
|
||||
while update >= 0:
|
||||
@@ -593,7 +597,10 @@ class _SuseDistro(_RHELDistro):
|
||||
@@ -603,7 +607,10 @@ class _SuseDistro(_RHELDistro):
|
||||
# SLE doesn't use '.0' for initial releases in
|
||||
# osinfo-db (sles11, sles12, etc)
|
||||
if update > 0 or not base.startswith('sle'):
|
||||
@ -27,7 +27,7 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
if OSDB.lookup_os(tryvar):
|
||||
return tryvar
|
||||
update -= 1
|
||||
@@ -607,6 +614,14 @@ class _SuseDistro(_RHELDistro):
|
||||
@@ -617,6 +624,14 @@ class _SuseDistro(_RHELDistro):
|
||||
return var
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
class _SLESDistro(_SuseDistro):
|
||||
PRETTY_NAME = "SLES"
|
||||
matching_distros = ["sles"]
|
||||
@@ -852,6 +867,7 @@ def _build_distro_list(osobj):
|
||||
@@ -883,6 +898,7 @@ def _build_distro_list(osobj):
|
||||
_FedoraDistro,
|
||||
_RHELDistro,
|
||||
_CentOSDistro,
|
||||
|
@ -1,10 +1,10 @@
|
||||
References: fate#326960, bsc#1123942
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/installer.py
|
||||
@@ -446,7 +446,10 @@ class Installer(object):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/installer.py
|
||||
@@ -594,7 +594,10 @@ class Installer(object):
|
||||
guest.bootloader = "pygrub"
|
||||
else:
|
||||
guest.bootloader = None
|
||||
@ -16,16 +16,16 @@ Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
log.debug("Using grub.xen to boot guest")
|
||||
on_reboot_value = guest.on_reboot
|
||||
self._alter_bootconfig(guest)
|
||||
Index: virt-manager-2.2.1/virtManager/delete.py
|
||||
Index: virt-manager-3.0.0/virtManager/delete.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/delete.py
|
||||
+++ virt-manager-2.2.1/virtManager/delete.py
|
||||
@@ -246,7 +246,7 @@ def populate_storage_list(storage_list,
|
||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False, True))
|
||||
--- virt-manager-3.0.0.orig/virtManager/delete.py
|
||||
+++ virt-manager-3.0.0/virtManager/delete.py
|
||||
@@ -458,7 +458,7 @@ def _populate_storage_list(storage_list,
|
||||
model.clear()
|
||||
|
||||
for target, path, ro, shared, is_media in diskdata:
|
||||
- if not path or path == "/usr/lib/grub2/x86_64-xen/grub.xen":
|
||||
+ if not path or "grub.xen" in path:
|
||||
for diskdata in diskdatas:
|
||||
- if not diskdata.path or diskdata.path == "/usr/lib/grub2/x86_64-xen/grub.xen":
|
||||
+ if not diskdata.path or "grub.xen" in diskdata.path:
|
||||
continue
|
||||
|
||||
# There are a few pieces here
|
||||
|
@ -1,10 +1,10 @@
|
||||
Reference: bnc#885380
|
||||
Allow Xen based VMs to default to using qcow2
|
||||
Index: virt-manager-2.2.0/virtinst/support.py
|
||||
Index: virt-manager-3.0.0/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/support.py
|
||||
+++ virt-manager-2.2.0/virtinst/support.py
|
||||
@@ -249,7 +249,7 @@ class SupportCache:
|
||||
--- virt-manager-3.0.0.orig/virtinst/support.py
|
||||
+++ virt-manager-3.0.0/virtinst/support.py
|
||||
@@ -242,7 +242,7 @@ class SupportCache:
|
||||
# This is an arbitrary check to say whether it's a good idea to
|
||||
# default to qcow2. It might be fine for xen or qemu older than the versions
|
||||
# here, but until someone tests things I'm going to be a bit conservative.
|
||||
|
@ -1,19 +1,19 @@
|
||||
Enhancement to correctly detect Open Enterprise Server media is
|
||||
selected as the installation source.
|
||||
Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
@@ -553,7 +553,7 @@ class _SuseDistro(_RHELDistro):
|
||||
if int(version) < 10:
|
||||
return self._variant_prefix + "9"
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
@@ -563,7 +563,7 @@ class _SuseDistro(_RHELDistro):
|
||||
|
||||
version = distro_version.split('.', 1)[0].strip()
|
||||
|
||||
- if str(self._variant_prefix).startswith(("sles", "sled")):
|
||||
+ if str(self._variant_prefix).startswith(("sles", "sled", "oes")):
|
||||
sp_version = ""
|
||||
if len(distro_version.split('.', 1)) == 2:
|
||||
sp_version = 'sp' + distro_version.split('.', 1)[1].strip()
|
||||
@@ -622,6 +622,14 @@ class _OpensuseDistro(_SuseDistro):
|
||||
@@ -632,6 +632,14 @@ class _OpensuseDistro(_SuseDistro):
|
||||
famregex = ".*openSUSE.*"
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ Index: virt-manager-2.2.1/virtinst/install/urldetect.py
|
||||
class _DebianDistro(_DistroTree):
|
||||
# ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/
|
||||
# daily builds: https://d-i.debian.org/daily-images/amd64/
|
||||
@@ -830,6 +838,7 @@ def _build_distro_list(osobj):
|
||||
@@ -861,6 +869,7 @@ def _build_distro_list(osobj):
|
||||
_SLESDistro,
|
||||
_SLEDDistro,
|
||||
_OpensuseDistro,
|
||||
|
@ -12,11 +12,11 @@ It should be noted that selecting "Customize configuration before install"
|
||||
and "CPUs" -> "Copy host CPU definition" also inserts 'host-model' so
|
||||
this change mirrors what is already done there.
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/domain/cpu.py
|
||||
Index: virt-manager-3.0.0/virtinst/domain/cpu.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/domain/cpu.py
|
||||
+++ virt-manager-2.2.0/virtinst/domain/cpu.py
|
||||
@@ -89,12 +89,16 @@ class DomainCpu(XMLBuilder):
|
||||
--- virt-manager-3.0.0.orig/virtinst/domain/cpu.py
|
||||
+++ virt-manager-3.0.0/virtinst/domain/cpu.py
|
||||
@@ -122,12 +122,16 @@ class DomainCpu(XMLBuilder):
|
||||
val = self.SPECIAL_MODE_HOST_MODEL
|
||||
|
||||
if (val == self.SPECIAL_MODE_HOST_MODEL or
|
||||
|
@ -2,11 +2,11 @@ Older SLE guests have a two stage installation that need the ISO.
|
||||
Newer SLE PV guests hang when a cdrom device is attached without
|
||||
an ISO file.
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/install/installer.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-2.2.0/virtinst/install/installer.py
|
||||
@@ -111,7 +111,8 @@ class Installer(object):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/installer.py
|
||||
@@ -166,7 +166,8 @@ class Installer(object):
|
||||
def _remove_install_cdrom_media(self, guest):
|
||||
if not self._install_cdrom_device_added:
|
||||
return
|
||||
|
@ -2,11 +2,11 @@ When both the content file and .treeinfo file are missing from the media
|
||||
look in the media.1/products and media.1/media files for information.
|
||||
Caasp 4.0 has not content or .treeinfo file on the media
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/install/urldetect.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-2.2.0/virtinst/install/urldetect.py
|
||||
@@ -488,8 +488,23 @@ class _SuseDistro(_RHELDistro):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
@@ -504,8 +504,23 @@ class _SuseDistro(_RHELDistro):
|
||||
cache.checked_for_suse_content = True
|
||||
content_str = cache.acquire_file_content("content")
|
||||
if content_str is None:
|
||||
@ -31,4 +31,4 @@ Index: virt-manager-2.2.0/virtinst/install/urldetect.py
|
||||
+ content_str = products_str + "\n" + media_str
|
||||
try:
|
||||
cache.suse_content = _SUSEContent(content_str)
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
|
@ -1,11 +1,11 @@
|
||||
Enhancement for the following GUI wizard installation option.
|
||||
1) If Xen, leave 'Architecture options' expanded so users know PV
|
||||
is the default
|
||||
Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
Index: virt-manager-3.0.0/virtManager/createvm.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/createvm.py
|
||||
+++ virt-manager-2.2.1/virtManager/createvm.py
|
||||
@@ -404,8 +404,20 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
--- virt-manager-3.0.0.orig/virtManager/createvm.py
|
||||
+++ virt-manager-3.0.0/virtManager/createvm.py
|
||||
@@ -460,8 +460,20 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
self.widget("method-local").set_active(True)
|
||||
self.widget("create-conn").set_active(-1)
|
||||
activeconn = self._populate_conn_list(urihint)
|
||||
|
@ -1,18 +0,0 @@
|
||||
Some distros are out of support for normal customers but continue
|
||||
to be supported through LTSS contracts for others. Hence the EOL
|
||||
date in the osinfo-db file may be past but we want the distro to
|
||||
continue to show up in the list.
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/osdict.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/osdict.py
|
||||
+++ virt-manager-2.2.0/virtinst/osdict.py
|
||||
@@ -445,7 +445,7 @@ class _OsVariant(object):
|
||||
|
||||
# If no EOL is present, assume EOL if release was > 5 years ago
|
||||
if rel is not None:
|
||||
- rel5 = _glib_to_datetime(rel) + datetime.timedelta(days=365 * 5)
|
||||
+ rel5 = _glib_to_datetime(rel) + datetime.timedelta(days=365 * 10)
|
||||
return now > rel5
|
||||
return False
|
||||
|
@ -2,11 +2,11 @@ Reference: bnc#863821
|
||||
grub.xen is required to boot PV VMs that use the BTRFS filesystem.
|
||||
This patch forces the use of grub.xen (instead of using pygrub) for
|
||||
suse distros SLE12GA, openSUSE 13.2, and newer.
|
||||
Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/installer.py
|
||||
@@ -167,7 +167,8 @@ class Installer(object):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/installer.py
|
||||
@@ -218,7 +218,8 @@ class Installer(object):
|
||||
|
||||
def _alter_treemedia_bootconfig(self, guest):
|
||||
if not self._treemedia:
|
||||
@ -16,7 +16,7 @@ Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
|
||||
kernel, initrd, kernel_args = self._treemedia_bootconfig
|
||||
if kernel:
|
||||
@@ -436,6 +437,20 @@ class Installer(object):
|
||||
@@ -584,6 +585,20 @@ class Installer(object):
|
||||
install_xml = None
|
||||
if self.has_install_phase():
|
||||
install_xml = self._get_install_xml(guest, meter)
|
||||
@ -34,6 +34,6 @@ Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
+ on_reboot_value = guest.on_reboot
|
||||
+ self._alter_bootconfig(guest)
|
||||
+ guest.on_reboot = on_reboot_value
|
||||
final_xml = guest.get_xml()
|
||||
final_xml = self._pre_reinstall_xml or guest.get_xml()
|
||||
|
||||
log.debug("Generated install XML: %s",
|
||||
|
@ -1,92 +0,0 @@
|
||||
Index: virt-manager-2.2.1/virtinst/osdict.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/osdict.py
|
||||
+++ virt-manager-2.2.1/virtinst/osdict.py
|
||||
@@ -54,7 +54,7 @@ def _sort(tosort):
|
||||
distro_mappings = {}
|
||||
retlist = []
|
||||
|
||||
- for key, osinfo in tosort.items():
|
||||
+ for key, osinfo in list(tosort.items()):
|
||||
# Libosinfo has some duplicate version numbers here, so append .1
|
||||
# if there's a collision
|
||||
sortby = _sortby(osinfo)
|
||||
Index: virt-manager-2.2.1/virtinst/install/installertreemedia.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/installertreemedia.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/installertreemedia.py
|
||||
@@ -20,7 +20,7 @@ from ..osdict import OSDB
|
||||
(MEDIA_DIR,
|
||||
MEDIA_ISO,
|
||||
MEDIA_URL,
|
||||
- MEDIA_KERNEL) = range(1, 5)
|
||||
+ MEDIA_KERNEL) = list(range(1, 5))
|
||||
|
||||
|
||||
def _is_url(url):
|
||||
Index: virt-manager-2.2.1/virtinst/xmlbuilder.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/xmlbuilder.py
|
||||
+++ virt-manager-2.2.1/virtinst/xmlbuilder.py
|
||||
@@ -661,7 +661,7 @@ class XMLBuilder(object):
|
||||
whenever child objects are added or removed
|
||||
"""
|
||||
typecount = {}
|
||||
- for propname, xmlprop in self._all_child_props().items():
|
||||
+ for propname, xmlprop in list(self._all_child_props().items()):
|
||||
for obj in xmlutil.listify(getattr(self, propname)):
|
||||
idxstr = ""
|
||||
if not xmlprop.is_single:
|
||||
Index: virt-manager-2.2.1/virtinst/domcapabilities.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/domcapabilities.py
|
||||
+++ virt-manager-2.2.1/virtinst/domcapabilities.py
|
||||
@@ -218,7 +218,7 @@ class DomainCapabilities(XMLBuilder):
|
||||
return _("BIOS")
|
||||
return _("None")
|
||||
|
||||
- for arch, patterns in self._uefi_arch_patterns.items():
|
||||
+ for arch, patterns in list(self._uefi_arch_patterns.items()):
|
||||
for pattern in patterns:
|
||||
if re.match(pattern, path):
|
||||
return (_("UEFI %(arch)s: %(path)s") %
|
||||
Index: virt-manager-2.2.1/virtinst/devices/disk.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-2.2.1/virtinst/devices/disk.py
|
||||
@@ -269,7 +269,7 @@ class DeviceDisk(Device):
|
||||
digit = 1
|
||||
|
||||
seen_valid = True
|
||||
- gen_t += "%c" % (ord('a') + digit - 1)
|
||||
+ gen_t += "%c" % int(ord('a') + digit - 1)
|
||||
|
||||
return gen_t
|
||||
|
||||
@@ -879,11 +879,11 @@ class DeviceDisk(Device):
|
||||
def get_target():
|
||||
first_found = None
|
||||
|
||||
- ran = range(maxnode)
|
||||
+ ran = list(range(maxnode))
|
||||
if pref_ctrl is not None:
|
||||
# We assume narrow SCSI bus and libvirt assigning 7
|
||||
# (1-7, 8-14, etc.) devices per controller
|
||||
- ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
+ ran = list(range(pref_ctrl * 7, (pref_ctrl + 1) * 7))
|
||||
|
||||
for i in ran:
|
||||
postfix = self.num_to_target(i + 1)
|
||||
Index: virt-manager-2.2.1/virtinst/pollhelpers.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-2.2.1/virtinst/pollhelpers.py
|
||||
@@ -129,7 +129,7 @@ def fetch_pools(backend, origmap, build_
|
||||
for obj in objs:
|
||||
try:
|
||||
obj.refresh(0)
|
||||
- except Exception, e:
|
||||
+ except Exception as e:
|
||||
pass
|
||||
|
||||
return _new_poll_helper(origmap, name,
|
@ -13,27 +13,27 @@ status affects the hypervisor connection.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/pollhelpers.py
|
||||
Index: virt-manager-3.0.0/virtinst/pollhelpers.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-2.2.0/virtinst/pollhelpers.py
|
||||
@@ -119,6 +119,19 @@ def fetch_pools(backend, origmap, build_
|
||||
name = "pool"
|
||||
--- virt-manager-3.0.0.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-3.0.0/virtinst/pollhelpers.py
|
||||
@@ -48,6 +48,19 @@ def fetch_pools(backend, origmap, build_
|
||||
typename = "pool"
|
||||
list_cb = backend.listAllStoragePools
|
||||
support_cb = backend.support.conn_storage
|
||||
+
|
||||
+ # Refresh pools before poll_helper. For those
|
||||
+ # 'active' but target path not exist (or other reasons
|
||||
+ # causing the pool not working), but libvirtd not
|
||||
+ # refresh the status, this will make it refreshed
|
||||
+ # and mark that pool as 'inactive'.
|
||||
+ objs = backend.listAllStoragePools()
|
||||
+ for obj in objs:
|
||||
+ try:
|
||||
+ obj.refresh(0)
|
||||
+ except Exception as e: # pragma: no cover
|
||||
+ pass
|
||||
+
|
||||
return _new_poll_helper(origmap, typename, list_cb, build_cb, support_cb)
|
||||
|
||||
|
||||
if backend.support.conn_listallstoragepools() and not FORCE_OLD_POLL:
|
||||
+
|
||||
+ # Refresh pools before poll_helper. For those
|
||||
+ # 'active' but target path not exist (or other reasons
|
||||
+ # causing the pool not working), but libvirtd not
|
||||
+ # refresh the status, this will make it refreshed
|
||||
+ # and mark that pool as 'inactive'.
|
||||
+ objs = backend.listAllStoragePools()
|
||||
+ for obj in objs:
|
||||
+ try:
|
||||
+ obj.refresh(0)
|
||||
+ except Exception, e:
|
||||
+ pass
|
||||
+
|
||||
return _new_poll_helper(origmap, name,
|
||||
backend.listAllStoragePools, build_func)
|
||||
else:
|
||||
|
@ -1,10 +1,10 @@
|
||||
Reference: bnc#869024
|
||||
Disable graphics on s390x
|
||||
Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
Index: virt-manager-3.0.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.2.1/virtinst/guest.py
|
||||
@@ -225,7 +225,10 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-3.0.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-3.0.0/virtinst/guest.py
|
||||
@@ -195,7 +195,10 @@ class Guest(XMLBuilder):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = False
|
||||
self.skip_default_usbredir = False
|
||||
@ -14,9 +14,9 @@ Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
+ else:
|
||||
+ self.skip_default_graphics = False
|
||||
self.skip_default_rng = False
|
||||
self.disable_default_memballoon = False
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_APP_DEFAULT
|
||||
@@ -480,7 +483,7 @@ class Guest(XMLBuilder):
|
||||
|
||||
@@ -337,7 +340,7 @@ class Guest(XMLBuilder):
|
||||
if not os_support:
|
||||
return False
|
||||
|
||||
@ -24,8 +24,8 @@ Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
+ if self.os.is_x86() or self.os.is_s390x():
|
||||
return True
|
||||
|
||||
return False
|
||||
@@ -864,7 +867,7 @@ class Guest(XMLBuilder):
|
||||
return False # pragma: no cover
|
||||
@@ -854,7 +857,7 @@ class Guest(XMLBuilder):
|
||||
self.add_device(dev)
|
||||
|
||||
def _add_default_video_device(self):
|
||||
|
@ -1,10 +1,10 @@
|
||||
Set cache mode for target installation disk to unsafe for better
|
||||
performance.
|
||||
Index: virt-manager-2.2.1/virtinst/install/installer.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-2.2.1/virtinst/install/installer.py
|
||||
@@ -422,11 +422,22 @@ class Installer(object):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/installer.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/installer.py
|
||||
@@ -570,11 +570,22 @@ class Installer(object):
|
||||
guest.memory) = data
|
||||
|
||||
def _get_install_xml(self, guest, meter):
|
||||
|
@ -1,11 +1,11 @@
|
||||
References: bsc#1172356
|
||||
Libvirt doesn't accept "Hypervisor default" as a model name
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/devices/interface.py
|
||||
Index: virt-manager-3.0.0/virtinst/devices/interface.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/devices/interface.py
|
||||
+++ virt-manager-2.2.1/virtinst/devices/interface.py
|
||||
@@ -256,6 +256,8 @@ class DeviceInterface(Device):
|
||||
--- virt-manager-3.0.0.orig/virtinst/devices/interface.py
|
||||
+++ virt-manager-3.0.0/virtinst/devices/interface.py
|
||||
@@ -284,6 +284,8 @@ class DeviceInterface(Device):
|
||||
return "e1000e"
|
||||
if not guest.os.is_x86():
|
||||
return None
|
||||
|
@ -1,11 +1,11 @@
|
||||
Use the correct qemu emulator based on the architecture.
|
||||
We want to get away from using the old qemu-dm emulator
|
||||
for Xen HVM guests so default to qemu-system-i386.
|
||||
Index: virt-manager-2.2.1/virtinst/guest.py
|
||||
Index: virt-manager-3.0.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.2.1/virtinst/guest.py
|
||||
@@ -740,6 +740,10 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-3.0.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-3.0.0/virtinst/guest.py
|
||||
@@ -727,6 +727,10 @@ class Guest(XMLBuilder):
|
||||
self._add_default_memballoon()
|
||||
|
||||
self.clock.set_defaults(self)
|
||||
|
@ -2,11 +2,11 @@ References: bsc#989639
|
||||
When the device added is a cdrom device (/dev/sr0), don't use
|
||||
"phy" as the driver name but instead use "qemu".
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
Index: virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
@@ -389,7 +389,8 @@ class DeviceDisk(Device):
|
||||
--- virt-manager-3.0.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
@@ -384,7 +384,8 @@ class DeviceDisk(Device):
|
||||
# Recommended xen defaults from here:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1171550#c9
|
||||
# If type block, use name=phy. Otherwise do the same as qemu
|
||||
|
@ -4,11 +4,11 @@ a non pae version. The sles10 sp4 32bit kernel will only boot para-
|
||||
virtualized if the pae kernel is selected.
|
||||
Note that sles12 and newer has no 32bit release.
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/install/urldetect.py
|
||||
Index: virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-2.2.0/virtinst/install/urldetect.py
|
||||
@@ -533,9 +533,14 @@ class _SuseDistro(_RHELDistro):
|
||||
--- virt-manager-3.0.0.orig/virtinst/install/urldetect.py
|
||||
+++ virt-manager-3.0.0/virtinst/install/urldetect.py
|
||||
@@ -549,9 +549,14 @@ class _SuseDistro(_RHELDistro):
|
||||
|
||||
if self.type == "xen":
|
||||
# Matches Opensuse > 10.2 and sles 10
|
||||
|
@ -4,11 +4,11 @@ issue on btrfs.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-2.2.1/virtinst/storage.py
|
||||
Index: virt-manager-3.0.0/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-2.2.1/virtinst/storage.py
|
||||
@@ -548,6 +548,11 @@ class StorageVolume(_StorageObject):
|
||||
--- virt-manager-3.0.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-3.0.0/virtinst/storage.py
|
||||
@@ -569,6 +569,11 @@ class StorageVolume(_StorageObject):
|
||||
return self._pool_xml.get_disk_type()
|
||||
file_type = property(_get_vol_type)
|
||||
|
||||
@ -20,11 +20,11 @@ Index: virt-manager-2.2.1/virtinst/storage.py
|
||||
|
||||
##################
|
||||
# XML properties #
|
||||
Index: virt-manager-2.2.1/virtinst/support.py
|
||||
Index: virt-manager-3.0.0/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtinst/support.py
|
||||
+++ virt-manager-2.2.1/virtinst/support.py
|
||||
@@ -283,6 +283,7 @@ class SupportCache:
|
||||
--- virt-manager-3.0.0.orig/virtinst/support.py
|
||||
+++ virt-manager-3.0.0/virtinst/support.py
|
||||
@@ -269,6 +269,7 @@ class SupportCache:
|
||||
conn_vnc_none_auth = _make(hv_version={"qemu": "2.9.0"})
|
||||
conn_device_boot_order = _make(hv_version={"qemu": 0, "test": 0})
|
||||
conn_riscv_virt_pci_default = _make(version="5.3.0", hv_version={"qemu": "4.0.0"})
|
||||
|
@ -2,11 +2,11 @@ Reference: bnc#813082
|
||||
Virt-manager on Xen doesn't fill in any type thereby defaulting to
|
||||
'raw'. This patch will generate the correct XML on Xen.
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
Index: virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
@@ -406,6 +406,10 @@ class DeviceDisk(Device):
|
||||
--- virt-manager-3.0.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
@@ -401,6 +401,10 @@ class DeviceDisk(Device):
|
||||
https://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
||||
"""
|
||||
if self.driver_name != self.DRIVER_NAME_QEMU:
|
||||
|
@ -6,14 +6,14 @@ types (ide vs xen) it added xvda with hda. These disks were then
|
||||
passed to qemu where it error'ed out with the disks having the same
|
||||
index (in this case both are 0).
|
||||
|
||||
Index: virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
Index: virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
@@ -861,6 +861,17 @@ class DeviceDisk(Device):
|
||||
--- virt-manager-3.0.0.orig/virtinst/devices/disk.py
|
||||
+++ virt-manager-3.0.0/virtinst/devices/disk.py
|
||||
@@ -850,6 +850,17 @@ class DeviceDisk(Device):
|
||||
:returns: generated target
|
||||
"""
|
||||
prefix, maxnode = self.get_target_prefix(skip_targets)
|
||||
prefix, maxnode = self.get_target_prefix()
|
||||
+ postfix_targets = []
|
||||
+ if self.conn.is_xen():
|
||||
+ prefixes = [ "hd", "xvd", "vd", "sd", "fd" ]
|
||||
@ -28,10 +28,10 @@ Index: virt-manager-2.2.0/virtinst/devices/disk.py
|
||||
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
||||
skip_targets.sort()
|
||||
|
||||
@@ -874,7 +885,12 @@ class DeviceDisk(Device):
|
||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
@@ -857,7 +868,12 @@ class DeviceDisk(Device):
|
||||
first_found = None
|
||||
|
||||
for i in ran:
|
||||
for i in range(maxnode):
|
||||
- gen_t = prefix + self.num_to_target(i + 1)
|
||||
+ postfix = self.num_to_target(i + 1)
|
||||
+ gen_t = prefix + postfix
|
||||
|
@ -1,11 +1,11 @@
|
||||
References: bsc#919692
|
||||
Because openSUSE repos combine 32 and 64 bit sources we need to
|
||||
continue showing the 'Architecture' pop-up.
|
||||
Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
Index: virt-manager-3.0.0/virtManager/createvm.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/createvm.py
|
||||
+++ virt-manager-2.2.1/virtManager/createvm.py
|
||||
@@ -830,11 +830,6 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
--- virt-manager-3.0.0.orig/virtManager/createvm.py
|
||||
+++ virt-manager-3.0.0/virtManager/createvm.py
|
||||
@@ -862,11 +862,6 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
for guest in self.conn.caps.guests:
|
||||
if guest.os_type == self._capsinfo.os_type:
|
||||
archs.append(guest.arch)
|
||||
|
@ -6,11 +6,11 @@ Steps to get a KVM VM in the crashed state:
|
||||
4) Edit the VM's /etc/default/grub file and remove the crashkernel information
|
||||
and then run grub2-mkconfig /boot/grub2/grub.cfg.
|
||||
5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger"
|
||||
Index: virt-manager-2.2.0/virtManager/manager.py
|
||||
Index: virt-manager-3.0.0/virtManager/manager.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/manager.py
|
||||
+++ virt-manager-2.2.0/virtManager/manager.py
|
||||
@@ -784,7 +784,7 @@ class vmmManager(vmmGObjectUI):
|
||||
--- virt-manager-3.0.0.orig/virtManager/manager.py
|
||||
+++ virt-manager-3.0.0/virtManager/manager.py
|
||||
@@ -779,7 +779,7 @@ class vmmManager(vmmGObjectUI):
|
||||
show_pause = bool(vm and vm.is_unpauseable())
|
||||
else:
|
||||
show_pause = bool(vm and vm.is_pauseable())
|
||||
@ -19,10 +19,10 @@ Index: virt-manager-2.2.0/virtManager/manager.py
|
||||
|
||||
if vm and vm.managedsave_supported:
|
||||
self.change_run_text(vm.has_managed_save())
|
||||
Index: virt-manager-2.2.0/virtManager/vmmenu.py
|
||||
Index: virt-manager-3.0.0/virtManager/vmmenu.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-2.2.0/virtManager/vmmenu.py
|
||||
--- virt-manager-3.0.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-3.0.0/virtManager/vmmenu.py
|
||||
@@ -21,6 +21,7 @@ class _VMMenu(Gtk.Menu):
|
||||
self._parent = src
|
||||
self._current_vm_cb = current_vm_cb
|
||||
@ -31,15 +31,15 @@ Index: virt-manager-2.2.0/virtManager/vmmenu.py
|
||||
|
||||
self._init_state()
|
||||
|
||||
@@ -84,6 +85,7 @@ class VMShutdownMenu(_VMMenu):
|
||||
@@ -85,6 +86,7 @@ class VMShutdownMenu(_VMMenu):
|
||||
name = getattr(child, "vmm_widget_name", None)
|
||||
if name in statemap:
|
||||
child.set_sensitive(statemap[name])
|
||||
+ child.set_visible(statemap[name])
|
||||
|
||||
if name == "reset":
|
||||
child.set_tooltip_text(None)
|
||||
@@ -105,7 +107,8 @@ class VMActionMenu(_VMMenu):
|
||||
|
||||
class VMActionMenu(_VMMenu):
|
||||
@@ -99,7 +101,8 @@ class VMActionMenu(_VMMenu):
|
||||
self._add_action(_("R_esume"), "resume", VMActionUI.resume,
|
||||
Gtk.STOCK_MEDIA_PAUSE)
|
||||
s = self._add_action(_("_Shut Down"), "shutdown", None)
|
||||
@ -49,7 +49,7 @@ Index: virt-manager-2.2.0/virtManager/vmmenu.py
|
||||
|
||||
self.add(Gtk.SeparatorMenuItem())
|
||||
self._add_action(_("Clone..."), "clone",
|
||||
@@ -125,7 +128,7 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -120,7 +123,7 @@ class VMActionMenu(_VMMenu):
|
||||
def update_widget_states(self, vm):
|
||||
statemap = {
|
||||
"run": bool(vm and vm.is_runable()),
|
||||
@ -58,7 +58,7 @@ Index: virt-manager-2.2.0/virtManager/vmmenu.py
|
||||
"suspend": bool(vm and vm.is_stoppable()),
|
||||
"resume": bool(vm and vm.is_paused()),
|
||||
"migrate": bool(vm and vm.is_stoppable()),
|
||||
@@ -142,6 +145,8 @@ class VMActionMenu(_VMMenu):
|
||||
@@ -137,6 +140,8 @@ class VMActionMenu(_VMMenu):
|
||||
child.get_submenu().update_widget_states(vm)
|
||||
if name in statemap:
|
||||
child.set_sensitive(statemap[name])
|
||||
|
@ -1,16 +1,16 @@
|
||||
References: bnc#907958
|
||||
Sanity check for those who forget '-X' on ssh and try to start virt-manager
|
||||
Index: virt-manager-2.2.0/virt-manager
|
||||
Index: virt-manager-3.0.0/virtManager/virtmanager.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virt-manager
|
||||
+++ virt-manager-2.2.0/virt-manager
|
||||
@@ -66,8 +66,11 @@ def _import_gtk(leftovers):
|
||||
--- virt-manager-3.0.0.orig/virtManager/virtmanager.py
|
||||
+++ virt-manager-3.0.0/virtManager/virtmanager.py
|
||||
@@ -67,8 +67,11 @@ def _import_gtk(leftovers):
|
||||
print("gtk3 3.22.0 or later is required.")
|
||||
sys.exit(1)
|
||||
|
||||
- # This will error if Gtk wasn't correctly initialized
|
||||
- Gtk.init()
|
||||
+ if os.environ.has_key('DISPLAY') and os.environ['DISPLAY']:
|
||||
+ if 'DISPLAY' in os.environ and os.environ['DISPLAY']:
|
||||
+ # This will error if Gtk wasn't correctly initialized
|
||||
+ Gtk.Window()
|
||||
+ else:
|
||||
|
@ -1,12 +1,12 @@
|
||||
Index: virt-manager-2.0.0/data/virt-manager.desktop.in
|
||||
Index: virt-manager-3.0.0/data/virt-manager.desktop.in
|
||||
===================================================================
|
||||
--- virt-manager-2.0.0.orig/data/virt-manager.desktop.in
|
||||
+++ virt-manager-2.0.0/data/virt-manager.desktop.in
|
||||
--- virt-manager-3.0.0.orig/data/virt-manager.desktop.in
|
||||
+++ virt-manager-3.0.0/data/virt-manager.desktop.in
|
||||
@@ -1,8 +1,19 @@
|
||||
[Desktop Entry]
|
||||
_Name=Virtual Machine Manager
|
||||
-_Comment=Manage virtual machines
|
||||
+_Comment=Manage Virtual Machines for Xen and KVM
|
||||
Name=Virtual Machine Manager
|
||||
-Comment=Manage virtual machines
|
||||
+Comment=Manage Virtual Machines for Xen and KVM
|
||||
Icon=virt-manager
|
||||
-Exec=virt-manager
|
||||
+Version=1.0
|
||||
|
@ -4,11 +4,11 @@ in this patch anyways to correctly set up a bus if a floppy were
|
||||
added.
|
||||
|
||||
|
||||
Index: virt-manager-2.2.1/virtManager/addhardware.py
|
||||
Index: virt-manager-3.0.0/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-2.2.1/virtManager/addhardware.py
|
||||
@@ -528,6 +528,9 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-3.0.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-3.0.0/virtManager/addhardware.py
|
||||
@@ -481,6 +481,9 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
buses = domcaps.devices.disk.get_enum("bus").get_values()
|
||||
else:
|
||||
buses = vmmAddHardware.disk_old_recommended_buses(guest)
|
||||
@ -18,16 +18,15 @@ Index: virt-manager-2.2.1/virtManager/addhardware.py
|
||||
|
||||
bus_map = {
|
||||
"disk": ["ide", "sata", "scsi", "sd", "usb", "virtio", "xen"],
|
||||
@@ -539,7 +542,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
@@ -500,6 +503,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
"usb": _("USB"),
|
||||
"virtio": _("VirtIO"),
|
||||
"xen": _("Xen"),
|
||||
+ "fdc": _("FDC"),
|
||||
}
|
||||
return bus_mappings.get(bus, bus)
|
||||
|
||||
@staticmethod
|
||||
def disk_pretty_bus(bus):
|
||||
- if bus in ["ide", "sata", "scsi", "usb", "sd"]:
|
||||
+ if bus in ["ide", "sata", "scsi", "usb", "sd", "fdc"]:
|
||||
return bus.upper()
|
||||
if bus in ["xen"]:
|
||||
return bus.capitalize()
|
||||
@@ -724,8 +727,9 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
@@ -681,8 +685,9 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
"drive-harddisk", _("Disk device")])
|
||||
target_model.append([DeviceDisk.DEVICE_CDROM,
|
||||
"media-optical", _("CDROM device")])
|
||||
|
@ -1,16 +1,16 @@
|
||||
Reference: bnc#885094
|
||||
grub.xen is required to boot Xen PV VMs using BTRFS. It belongs to
|
||||
the grub2-x86_64-xen RPM and should never be deleted.
|
||||
Index: virt-manager-2.0.0/virtManager/delete.py
|
||||
Index: virt-manager-3.0.0/virtManager/delete.py
|
||||
===================================================================
|
||||
--- virt-manager-2.0.0.orig/virtManager/delete.py
|
||||
+++ virt-manager-2.0.0/virtManager/delete.py
|
||||
@@ -246,7 +246,7 @@ def populate_storage_list(storage_list,
|
||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False, True))
|
||||
--- virt-manager-3.0.0.orig/virtManager/delete.py
|
||||
+++ virt-manager-3.0.0/virtManager/delete.py
|
||||
@@ -458,7 +458,7 @@ def _populate_storage_list(storage_list,
|
||||
model.clear()
|
||||
|
||||
for target, path, ro, shared, is_media in diskdata:
|
||||
- if not path:
|
||||
+ if not path or path == "/usr/lib/grub2/x86_64-xen/grub.xen":
|
||||
for diskdata in diskdatas:
|
||||
- if not diskdata.path:
|
||||
+ if not diskdata.path or diskdata.path == "/usr/lib/grub2/x86_64-xen/grub.xen":
|
||||
continue
|
||||
|
||||
# There are a few pieces here
|
||||
|
@ -1,5 +1,7 @@
|
||||
--- virt-manager-2.2.0/virtManager/xmleditor.py.orig 2019-06-25 12:21:53.267971599 -0600
|
||||
+++ virt-manager-2.2.0/virtManager/xmleditor.py 2019-06-25 12:22:20.854908884 -0600
|
||||
Index: virt-manager-3.0.0/virtManager/xmleditor.py
|
||||
===================================================================
|
||||
--- virt-manager-3.0.0.orig/virtManager/xmleditor.py
|
||||
+++ virt-manager-3.0.0/virtManager/xmleditor.py
|
||||
@@ -7,12 +7,12 @@ import gi
|
||||
from virtinst import log
|
||||
|
||||
@ -7,13 +9,13 @@
|
||||
-try:
|
||||
- gi.require_version("GtkSource", "4")
|
||||
- log.debug("Using GtkSource 4")
|
||||
-except ValueError:
|
||||
-except ValueError: # pragma: no cover
|
||||
- gi.require_version("GtkSource", "3.0")
|
||||
- log.debug("Using GtkSource 3.0")
|
||||
+#try:
|
||||
+# gi.require_version("GtkSource", "4")
|
||||
+# log.debug("Using GtkSource 4")
|
||||
+#except ValueError:
|
||||
+#except ValueError: # pragma: no cover
|
||||
+# gi.require_version("GtkSource", "3.0")
|
||||
+# log.debug("Using GtkSource 3.0")
|
||||
from gi.repository import GtkSource
|
||||
|
@ -2,10 +2,10 @@ Creates a problem for gobject-introspection identifying what
|
||||
version of vte is really allowed. Vte 2.91 is installed on the
|
||||
host but the RPM is built requiring 2.90.
|
||||
|
||||
Index: virt-manager-2.2.0/virtManager/details/serialcon.py
|
||||
Index: virt-manager-3.0.0/virtManager/details/serialcon.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/details/serialcon.py
|
||||
+++ virt-manager-2.2.0/virtManager/details/serialcon.py
|
||||
--- virt-manager-3.0.0.orig/virtManager/details/serialcon.py
|
||||
+++ virt-manager-3.0.0/virtManager/details/serialcon.py
|
||||
@@ -12,12 +12,12 @@ from gi.repository import Gtk
|
||||
from virtinst import log
|
||||
|
||||
@ -13,13 +13,13 @@ Index: virt-manager-2.2.0/virtManager/details/serialcon.py
|
||||
-try:
|
||||
- gi.require_version("Vte", "2.91")
|
||||
- log.debug("Using VTE API 2.91")
|
||||
-except ValueError:
|
||||
-except ValueError: # pragma: no cover
|
||||
- gi.require_version("Vte", "2.90")
|
||||
- log.debug("Using VTE API 2.90")
|
||||
+#try:
|
||||
+# gi.require_version("Vte", "2.91")
|
||||
+# log.debug("Using VTE API 2.91")
|
||||
+#except ValueError:
|
||||
+#except ValueError: # pragma: no cover
|
||||
+# gi.require_version("Vte", "2.90")
|
||||
+# log.debug("Using VTE API 2.90")
|
||||
from gi.repository import Vte
|
||||
|
@ -1,40 +0,0 @@
|
||||
--- virt-manager-2.1.0/virt-clone.orig 2019-02-04 10:40:20.390102363 -0700
|
||||
+++ virt-manager-2.1.0/virt-clone 2019-02-04 10:40:41.122360052 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright(c) FUJITSU Limited 2007.
|
||||
#
|
||||
--- virt-manager-2.1.0/virt-convert.orig 2019-02-04 10:41:50.275219728 -0700
|
||||
+++ virt-manager-2.1.0/virt-convert 2019-02-04 10:41:55.563285476 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright 2008, 2013, 2014 Red Hat, Inc.
|
||||
#
|
||||
--- virt-manager-2.1.0/virt-install.orig 2019-02-04 10:41:17.258809255 -0700
|
||||
+++ virt-manager-2.1.0/virt-install 2019-02-04 10:41:22.370872807 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright 2005-2014 Red Hat, Inc.
|
||||
#
|
||||
--- virt-manager-2.1.0/virt-manager.orig 2019-02-04 10:41:02.902630789 -0700
|
||||
+++ virt-manager-2.1.0/virt-manager 2019-02-04 10:41:11.870742273 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2006, 2014 Red Hat, Inc.
|
||||
# Copyright (C) 2006 Daniel P. Berrange <berrange@redhat.com>
|
||||
--- virt-manager-2.1.0/virt-xml.orig 2019-02-04 10:41:32.923003992 -0700
|
||||
+++ virt-manager-2.1.0/virt-xml 2019-02-04 10:41:38.803077096 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright 2013-2014 Red Hat, Inc.
|
||||
#
|
@ -3,11 +3,11 @@ virt-manager no longer tracks the saved state but leaves it up to libvirt.
|
||||
Libvirt returns libvirt.VIR_DOMAIN_PMSUSPENDED after a vm has been 'saved'.
|
||||
|
||||
|
||||
Index: virt-manager-2.2.0/virtManager/object/domain.py
|
||||
Index: virt-manager-3.0.0/virtManager/object/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/object/domain.py
|
||||
+++ virt-manager-2.2.0/virtManager/object/domain.py
|
||||
@@ -1454,7 +1454,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
--- virt-manager-3.0.0.orig/virtManager/object/domain.py
|
||||
+++ virt-manager-3.0.0/virtManager/object/domain.py
|
||||
@@ -1530,7 +1530,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
return (self.is_stoppable() or
|
||||
self.status() in [libvirt.VIR_DOMAIN_CRASHED])
|
||||
def is_runable(self):
|
||||
|
@ -2,16 +2,16 @@ References: bnc#892003
|
||||
For very large memory VMs Xen takes a long time scrubbing memory
|
||||
which causes the libvirt connection to timeout. Upstream was not
|
||||
interested in making this a preferences option (4/11/2015)
|
||||
Index: virt-manager-2.2.1/virtManager/connection.py
|
||||
Index: virt-manager-3.0.0/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-2.2.1/virtManager/connection.py
|
||||
@@ -995,7 +995,7 @@ class vmmConnection(vmmGObject):
|
||||
--- virt-manager-3.0.0.orig/virtManager/connection.py
|
||||
+++ virt-manager-3.0.0/virtManager/connection.py
|
||||
@@ -970,7 +970,7 @@ class vmmConnection(vmmGObject):
|
||||
self._add_conn_events()
|
||||
|
||||
try:
|
||||
- self._backend.setKeepAlive(20, 1)
|
||||
+ self._backend.setKeepAlive(20, 10)
|
||||
except Exception as e:
|
||||
if (not isinstance(e, AttributeError) and
|
||||
not self.support.is_error_nosupport(e)):
|
||||
log.debug("Failed to setKeepAlive: %s", str(e))
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
/usr/bin/kvm doesn't exist on suse distros so check instead for
|
||||
/usr/bin/qemu-system-x86_64
|
||||
Index: virt-manager-2.2.0/virtManager/createconn.py
|
||||
Index: virt-manager-3.0.0/virtManager/createconn.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/createconn.py
|
||||
+++ virt-manager-2.2.0/virtManager/createconn.py
|
||||
@@ -67,7 +67,7 @@ class vmmCreateConn(vmmGObjectUI):
|
||||
--- virt-manager-3.0.0.orig/virtManager/createconn.py
|
||||
+++ virt-manager-3.0.0/virtManager/createconn.py
|
||||
@@ -33,7 +33,7 @@ def _default_uri(): # pragma: no cover
|
||||
|
||||
if (os.path.exists("/usr/bin/qemu") or
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
- os.path.exists("/usr/bin/kvm") or
|
||||
+ os.path.exists("/usr/bin/qemu-system-x86_64") or
|
||||
os.path.exists("/usr/libexec/qemu-kvm") or
|
||||
glob.glob("/usr/bin/qemu-system-*")):
|
||||
return "qemu:///system"
|
||||
if (os.path.exists("/usr/bin/qemu") or
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
- os.path.exists("/usr/bin/kvm") or
|
||||
+ os.path.exists("/usr/bin/qemu-system-x86_64") or
|
||||
os.path.exists("/usr/libexec/qemu-kvm") or
|
||||
glob.glob("/usr/bin/qemu-system-*")):
|
||||
return "qemu:///system"
|
||||
|
@ -1,250 +0,0 @@
|
||||
Index: virt-manager-2.2.1/virt-manager
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virt-manager
|
||||
+++ virt-manager-2.2.1/virt-manager
|
||||
@@ -66,7 +66,7 @@ def _import_gtk(leftovers):
|
||||
print("gtk3 3.22.0 or later is required.")
|
||||
sys.exit(1)
|
||||
|
||||
- if os.environ.has_key('DISPLAY') and os.environ['DISPLAY']:
|
||||
+ if 'DISPLAY' in os.environ and os.environ['DISPLAY']:
|
||||
# This will error if Gtk wasn't correctly initialized
|
||||
Gtk.Window()
|
||||
else:
|
||||
Index: virt-manager-2.2.1/virtManager/details/console.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/details/console.py
|
||||
+++ virt-manager-2.2.1/virtManager/details/console.py
|
||||
@@ -21,7 +21,7 @@ from ..vmwindow import DETAILS_PAGE_CONS
|
||||
(_CONSOLE_PAGE_UNAVAILABLE,
|
||||
_CONSOLE_PAGE_AUTHENTICATE,
|
||||
_CONSOLE_PAGE_SERIAL,
|
||||
- _CONSOLE_PAGE_VIEWER) = range(4)
|
||||
+ _CONSOLE_PAGE_VIEWER) = list(range(4))
|
||||
|
||||
|
||||
class _TimedRevealer(vmmGObject):
|
||||
Index: virt-manager-2.2.1/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-2.2.1/virtManager/connection.py
|
||||
@@ -159,7 +159,7 @@ class vmmConnection(vmmGObject):
|
||||
|
||||
(_STATE_DISCONNECTED,
|
||||
_STATE_CONNECTING,
|
||||
- _STATE_ACTIVE) = range(1, 4)
|
||||
+ _STATE_ACTIVE) = list(range(1, 4))
|
||||
|
||||
def __init__(self, uri):
|
||||
self._uri = uri
|
||||
Index: virt-manager-2.2.1/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-2.2.1/virtManager/addhardware.py
|
||||
@@ -44,7 +44,7 @@ from .xmleditor import vmmXMLEditor
|
||||
PAGE_TPM,
|
||||
PAGE_RNG,
|
||||
PAGE_PANIC,
|
||||
- PAGE_VSOCK) = range(17)
|
||||
+ PAGE_VSOCK) = list(range(17))
|
||||
|
||||
|
||||
def _build_combo(combo, values, default_value=None, sort=True):
|
||||
Index: virt-manager-2.2.1/virtManager/details/snapshots.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/details/snapshots.py
|
||||
+++ virt-manager-2.2.1/virtManager/details/snapshots.py
|
||||
@@ -55,7 +55,7 @@ def _make_screenshot_pixbuf(mime, sdata)
|
||||
|
||||
|
||||
def _mime_to_ext(val, reverse=False):
|
||||
- for m, e in mimemap.items():
|
||||
+ for m, e in list(mimemap.items()):
|
||||
if val == m and not reverse:
|
||||
return e
|
||||
if val == e and reverse:
|
||||
Index: virt-manager-2.2.1/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-2.2.1/virtManager/engine.py
|
||||
@@ -22,7 +22,7 @@ from .lib.inspection import vmmInspectio
|
||||
from .systray import vmmSystray
|
||||
|
||||
(PRIO_HIGH,
|
||||
- PRIO_LOW) = range(1, 3)
|
||||
+ PRIO_LOW) = list(range(1, 3))
|
||||
|
||||
|
||||
def _show_startup_error(fn):
|
||||
Index: virt-manager-2.2.1/virtManager/device/mediacombo.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/device/mediacombo.py
|
||||
+++ virt-manager-2.2.1/virtManager/device/mediacombo.py
|
||||
@@ -22,7 +22,7 @@ class vmmMediaCombo(vmmGObjectUI):
|
||||
(MEDIA_FIELD_PATH,
|
||||
MEDIA_FIELD_LABEL,
|
||||
MEDIA_FIELD_HAS_MEDIA,
|
||||
- MEDIA_FIELD_KEY) = range(MEDIA_FIELDS_NUM)
|
||||
+ MEDIA_FIELD_KEY) = list(range(MEDIA_FIELDS_NUM))
|
||||
|
||||
def __init__(self, conn, builder, topwin):
|
||||
vmmGObjectUI.__init__(self, None, None, builder=builder, topwin=topwin)
|
||||
Index: virt-manager-2.2.1/virtManager/manager.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/manager.py
|
||||
+++ virt-manager-2.2.1/virtManager/manager.py
|
||||
@@ -33,7 +33,7 @@ ROW_IS_CONN_CONNECTED,
|
||||
ROW_IS_VM,
|
||||
ROW_IS_VM_RUNNING,
|
||||
ROW_COLOR,
|
||||
-ROW_INSPECTION_OS_ICON) = range(11)
|
||||
+ROW_INSPECTION_OS_ICON) = list(range(11))
|
||||
|
||||
# Columns in the tree view
|
||||
(COL_NAME,
|
||||
@@ -41,7 +41,7 @@ COL_GUEST_CPU,
|
||||
COL_HOST_CPU,
|
||||
COL_MEM,
|
||||
COL_DISK,
|
||||
-COL_NETWORK) = range(6)
|
||||
+COL_NETWORK) = list(range(6))
|
||||
|
||||
|
||||
def _style_get_prop(widget, propname):
|
||||
Index: virt-manager-2.2.1/virtManager/device/addstorage.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/device/addstorage.py
|
||||
+++ virt-manager-2.2.1/virtManager/device/addstorage.py
|
||||
@@ -108,7 +108,7 @@ class vmmAddStorage(vmmGObjectUI):
|
||||
errmsg = _("Errors were encountered changing permissions for the "
|
||||
"following directories:")
|
||||
details = ""
|
||||
- for p, error in errors.items():
|
||||
+ for p, error in list(errors.items()):
|
||||
if p not in broken_paths:
|
||||
continue
|
||||
details += "%s : %s\n" % (p, error)
|
||||
Index: virt-manager-2.2.1/virtManager/details/details.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/details/details.py
|
||||
+++ virt-manager-2.2.1/virtManager/details/details.py
|
||||
@@ -104,7 +104,7 @@ from ..xmleditor import vmmXMLEditor
|
||||
|
||||
EDIT_FS,
|
||||
|
||||
- EDIT_HOSTDEV_ROMBAR) = range(1, 59)
|
||||
+ EDIT_HOSTDEV_ROMBAR) = list(range(1, 59))
|
||||
|
||||
|
||||
# Columns in hw list model
|
||||
@@ -112,7 +112,7 @@ from ..xmleditor import vmmXMLEditor
|
||||
HW_LIST_COL_ICON_NAME,
|
||||
HW_LIST_COL_TYPE,
|
||||
HW_LIST_COL_DEVICE,
|
||||
- HW_LIST_COL_KEY) = range(5)
|
||||
+ HW_LIST_COL_KEY) = list(range(5))
|
||||
|
||||
# Types for the hw list model: numbers specify what order they will be listed
|
||||
(HW_LIST_TYPE_GENERAL,
|
||||
@@ -137,7 +137,7 @@ from ..xmleditor import vmmXMLEditor
|
||||
HW_LIST_TYPE_TPM,
|
||||
HW_LIST_TYPE_RNG,
|
||||
HW_LIST_TYPE_PANIC,
|
||||
- HW_LIST_TYPE_VSOCK) = range(23)
|
||||
+ HW_LIST_TYPE_VSOCK) = list(range(23))
|
||||
|
||||
remove_pages = [HW_LIST_TYPE_NIC, HW_LIST_TYPE_INPUT,
|
||||
HW_LIST_TYPE_GRAPHICS, HW_LIST_TYPE_SOUND, HW_LIST_TYPE_CHAR,
|
||||
@@ -152,7 +152,7 @@ remove_pages = [HW_LIST_TYPE_NIC, HW_LIS
|
||||
BOOT_LABEL,
|
||||
BOOT_ICON,
|
||||
BOOT_ACTIVE,
|
||||
- BOOT_CAN_SELECT) = range(5)
|
||||
+ BOOT_CAN_SELECT) = list(range(5))
|
||||
|
||||
|
||||
def _calculate_disk_bus_index(disklist):
|
||||
Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/createvm.py
|
||||
+++ virt-manager-2.2.1/virtManager/createvm.py
|
||||
@@ -40,7 +40,7 @@ DEFAULT_MEM = 1024
|
||||
PAGE_INSTALL,
|
||||
PAGE_MEM,
|
||||
PAGE_STORAGE,
|
||||
- PAGE_FINISH) = range(5)
|
||||
+ PAGE_FINISH) = list(range(5))
|
||||
|
||||
(INSTALL_PAGE_ISO,
|
||||
INSTALL_PAGE_URL,
|
||||
@@ -48,13 +48,13 @@ DEFAULT_MEM = 1024
|
||||
INSTALL_PAGE_IMPORT,
|
||||
INSTALL_PAGE_CONTAINER_APP,
|
||||
INSTALL_PAGE_CONTAINER_OS,
|
||||
- INSTALL_PAGE_VZ_TEMPLATE) = range(7)
|
||||
+ INSTALL_PAGE_VZ_TEMPLATE) = list(range(7))
|
||||
|
||||
# Column numbers for os type/version list models
|
||||
(OS_COL_ID,
|
||||
OS_COL_LABEL,
|
||||
OS_COL_IS_SEP,
|
||||
- OS_COL_IS_SHOW_ALL) = range(4)
|
||||
+ OS_COL_IS_SHOW_ALL) = list(range(4))
|
||||
|
||||
|
||||
#####################
|
||||
@@ -2123,7 +2123,7 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
'insecure': self._get_config_oscontainer_isecure,
|
||||
'root_password': self._get_config_oscontainer_root_password,
|
||||
}
|
||||
- for key, getter in bootstrap_arg_keys.items():
|
||||
+ for key, getter in list(bootstrap_arg_keys.items()):
|
||||
bootstrap_args[key] = getter()
|
||||
|
||||
parentobj = self._customize_window or self
|
||||
Index: virt-manager-2.2.1/virtManager/preferences.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/preferences.py
|
||||
+++ virt-manager-2.2.1/virtManager/preferences.py
|
||||
@@ -129,7 +129,7 @@ class vmmPreferences(vmmGObjectUI):
|
||||
}
|
||||
model.append([-1, _("System default (%s)") %
|
||||
vals[self.config.default_console_resizeguest]])
|
||||
- for key, val in vals.items():
|
||||
+ for key, val in list(vals.items()):
|
||||
model.append([key, val])
|
||||
combo.set_model(model)
|
||||
uiutil.init_combo_text_column(combo, 1)
|
||||
Index: virt-manager-2.2.1/virtManager/migrate.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/migrate.py
|
||||
+++ virt-manager-2.2.1/virtManager/migrate.py
|
||||
@@ -23,7 +23,7 @@ from .object.domain import vmmDomain
|
||||
NUM_COLS = 3
|
||||
(COL_LABEL,
|
||||
COL_URI,
|
||||
- COL_CAN_MIGRATE) = range(NUM_COLS)
|
||||
+ COL_CAN_MIGRATE) = list(range(NUM_COLS))
|
||||
|
||||
|
||||
class vmmMigrateDialog(vmmGObjectUI):
|
||||
Index: virt-manager-2.2.1/virtManager/hoststorage.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/hoststorage.py
|
||||
+++ virt-manager-2.2.1/virtManager/hoststorage.py
|
||||
@@ -32,13 +32,13 @@ VOL_NUM_COLUMNS = 7
|
||||
VOL_COLUMN_SIZESTR,
|
||||
VOL_COLUMN_FORMAT,
|
||||
VOL_COLUMN_INUSEBY,
|
||||
- VOL_COLUMN_SENSITIVE) = range(VOL_NUM_COLUMNS)
|
||||
+ VOL_COLUMN_SENSITIVE) = list(range(VOL_NUM_COLUMNS))
|
||||
|
||||
POOL_NUM_COLUMNS = 4
|
||||
(POOL_COLUMN_CONNKEY,
|
||||
POOL_COLUMN_LABEL,
|
||||
POOL_COLUMN_ISACTIVE,
|
||||
- POOL_COLUMN_PERCENT) = range(POOL_NUM_COLUMNS)
|
||||
+ POOL_COLUMN_PERCENT) = list(range(POOL_NUM_COLUMNS))
|
||||
|
||||
ICON_RUNNING = "state_running"
|
||||
ICON_SHUTOFF = "state_shutoff"
|
@ -6,12 +6,12 @@ it is not recognized as a top level dialog on python3 and therefore we explicitl
|
||||
need to set the connection event. Not getting the event to cleanup leaves us in a
|
||||
bad state for when the details dialog is reopened.
|
||||
|
||||
Index: virt-manager-2.2.0/virtManager/vmwindow.py
|
||||
Index: virt-manager-3.0.0/virtManager/vmwindow.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/virtManager/vmwindow.py
|
||||
+++ virt-manager-2.2.0/virtManager/vmwindow.py
|
||||
@@ -141,6 +141,9 @@ class vmmVMWindow(vmmGObjectUI):
|
||||
self.console.details_auth_login),
|
||||
--- virt-manager-3.0.0.orig/virtManager/vmwindow.py
|
||||
+++ virt-manager-3.0.0/virtManager/vmwindow.py
|
||||
@@ -131,6 +131,9 @@ class vmmVMWindow(vmmGObjectUI):
|
||||
"on_details_menu_view_autoconnect_activate": self._autoconnect_ui_changed_cb,
|
||||
})
|
||||
|
||||
+ # Make sure the delete event is properly registered for the details dialog
|
||||
|
@ -1,12 +1,12 @@
|
||||
Enhancement that gets installation repos from zypper.
|
||||
These locations are then presented as potential installation
|
||||
sources when creating a VM.
|
||||
Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
Index: virt-manager-3.0.0/virtManager/createvm.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.1.orig/virtManager/createvm.py
|
||||
+++ virt-manager-2.2.1/virtManager/createvm.py
|
||||
@@ -99,6 +99,70 @@ def is_virt_bootstrap_installed():
|
||||
return pkgutil.find_loader('virtBootstrap') is not None
|
||||
--- virt-manager-3.0.0.orig/virtManager/createvm.py
|
||||
+++ virt-manager-3.0.0/virtManager/createvm.py
|
||||
@@ -164,6 +164,70 @@ class _GuestData:
|
||||
return guest
|
||||
|
||||
|
||||
+################################################
|
||||
@ -76,7 +76,7 @@ Index: virt-manager-2.2.1/virtManager/createvm.py
|
||||
##############
|
||||
# Main class #
|
||||
##############
|
||||
@@ -368,7 +432,13 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
@@ -422,7 +486,13 @@ class vmmCreateVM(vmmGObjectUI):
|
||||
self.widget("install-url-entry").set_text("")
|
||||
self.widget("install-url-options").set_expanded(False)
|
||||
urlmodel = self.widget("install-url-combo").get_model()
|
||||
|
@ -1,35 +0,0 @@
|
||||
Index: virt-manager-2.2.0/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/tests/clitest.py
|
||||
+++ virt-manager-2.2.0/tests/clitest.py
|
||||
@@ -300,7 +300,7 @@ class Command(object):
|
||||
|
||||
def _run(self):
|
||||
conn = None
|
||||
- for idx in reversed(range(len(self.argv))):
|
||||
+ for idx in reversed(list(range(len(self.argv)))):
|
||||
if self.argv[idx] == "--connect":
|
||||
conn = utils.URIs.openconn(self.argv[idx + 1])
|
||||
break
|
||||
Index: virt-manager-2.2.0/tests/test_inject.py
|
||||
===================================================================
|
||||
--- virt-manager-2.2.0.orig/tests/test_inject.py
|
||||
+++ virt-manager-2.2.0/tests/test_inject.py
|
||||
@@ -15,7 +15,7 @@ FEDORA_URL = "http://dl.fedoraproject.or
|
||||
|
||||
(WARN_RHEL5,
|
||||
WARN_DEBIAN,
|
||||
- WARN_FEDORA) = range(1, 4)
|
||||
+ WARN_FEDORA) = list(range(1, 4))
|
||||
|
||||
|
||||
def prompt():
|
||||
@@ -117,7 +117,7 @@ def _make_tests():
|
||||
return lambda s: _test_distro(_d)
|
||||
|
||||
idx = 0
|
||||
- for dname, dobj in _alldistros.items():
|
||||
+ for dname, dobj in list(_alldistros.items()):
|
||||
idx += 1
|
||||
setattr(InjectTests, "testInitrd%.3d_%s" %
|
||||
(idx, dname.replace("-", "_")), _make_check_cb(dobj))
|
Loading…
x
Reference in New Issue
Block a user