- Update to virt-manager 1.3.0
virt-manager-1.3.0.tar.bz2 * Git hosting moved to http://github.com/virt-manager/virt-manager * Switch translation infrastructure from transifex to fedora.zanata.org * Add dogtail UI tests and infrastructure * Improved support for s390x kvm (Kevin Zhao) * virt-install and virt-manager now remove created disk images if VM install startup fails * Replace urlgrabber usage with requests and urllib2 * virt-install: add –network virtualport support for openvswitch (Daniel P. Berrange) * virt-install: support multiple –security labels * virt-install: support –features kvm_hidden=on|off (Pavel Hrdina) * virt-install: add –features pmu=on|off * virt-install: add –features pvspinlock=on|off (Abhijeet Kasurde) * virt-install: add –events on_lockfailure=on|off (Abhijeet Kasurde) * virt-install: add –network link_state=up|down * virt-install: add –vcpu placement=static|auto - Dropped virt-manager-1.2.1.tar.bz2 34db1af7-fix-adding-iscsi-pools.patch 360fe110-add-s390x-arch-support.patch 4970615f-fix-qemu-vs-lxc-detection.patch 590f5a52-urlfetcher-Clear-cached-ftp-connection-on-cleanupLoc.patch 5e68b0fc-dont-try-to-set-vmport-on-non-x86.patch 601a82cb-fix-console_type-if-xen.patch 76bad650-fix-virt-xml-define-and-update.patch 77423e7a-connection-catch-more-errors-in-filter_nodedevs.patch 8dbe96fc-add-s390x-arch-support.patch a9b303fb-fix-copy-host-cpu-definition.patch aebebbf8-report-an-error-for-pxe-install-without-network.patch cde2f0ef-Suppress-gi-warnings-about-lack-of-require_version.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=283
This commit is contained in:
parent
3a04fd715a
commit
6bbd8f8c21
@ -1,52 +0,0 @@
|
||||
Subject: createpool: Fix adding iscsi pools (bz 1231558)
|
||||
From: Cole Robinson crobinso@redhat.com Sun Jun 21 15:47:31 2015 -0400
|
||||
Date: Sun Jun 21 15:47:31 2015 -0400:
|
||||
Git: 34db1af7b661b7eb5df4c71fc910d31c1ae9f7a4
|
||||
|
||||
|
||||
diff --git a/virtManager/createpool.py b/virtManager/createpool.py
|
||||
index bd18d43..1eaa805 100644
|
||||
--- a/virtManager/createpool.py
|
||||
+++ b/virtManager/createpool.py
|
||||
@@ -479,9 +479,11 @@ class vmmCreatePool(vmmGObjectUI):
|
||||
source_list = self.widget("pool-source-path")
|
||||
target_list = self.widget("pool-target-path")
|
||||
|
||||
- pool = uiutil.get_list_selection(source_list, column=2)
|
||||
+ pool = uiutil.get_list_selection(source_list, column=2,
|
||||
+ check_entry=False)
|
||||
if pool is None:
|
||||
- pool = uiutil.get_list_selection(target_list, column=2)
|
||||
+ pool = uiutil.get_list_selection(target_list, column=2,
|
||||
+ check_entry=False)
|
||||
|
||||
return pool
|
||||
|
||||
diff --git a/virtManager/uiutil.py b/virtManager/uiutil.py
|
||||
index 82d2c1d..40b74d4 100644
|
||||
--- a/virtManager/uiutil.py
|
||||
+++ b/virtManager/uiutil.py
|
||||
@@ -70,17 +70,21 @@ def get_list_selected_row(widget, check_visible=False):
|
||||
return row
|
||||
|
||||
|
||||
-def get_list_selection(widget, column=0, check_visible=False):
|
||||
+def get_list_selection(widget, column=0,
|
||||
+ check_visible=False, check_entry=True):
|
||||
"""
|
||||
Helper to simplify getting the selected row and value in a list/tree/combo.
|
||||
If nothing is selected, and the widget is a combo box with a text entry,
|
||||
return the value of that.
|
||||
+
|
||||
+ :param check_entry: If True, attempt to check the widget's text entry
|
||||
+ using the logic described above.
|
||||
"""
|
||||
row = get_list_selected_row(widget, check_visible=check_visible)
|
||||
if row is not None:
|
||||
return row[column]
|
||||
|
||||
- if hasattr(widget, "get_has_entry"):
|
||||
+ if check_entry and hasattr(widget, "get_has_entry"):
|
||||
if widget.get_has_entry():
|
||||
return widget.get_child().get_text().strip()
|
||||
|
@ -1,71 +0,0 @@
|
||||
Subject: virtinst: correctly find the sles s390x kernel and initrd
|
||||
From: Charles Arnold carnold@suse.com Fri Sep 11 09:41:09 2015 -0600
|
||||
Date: Fri Sep 11 12:48:52 2015 -0400:
|
||||
Git: 360fe11040b0d7dc0235aecf10e96536619c616b
|
||||
|
||||
Allow virt-install to correctly find the SLES kernel/initrd on the media
|
||||
when installing an s390x VM.
|
||||
|
||||
Signed-off-by: Charles Arnold <carnold@suse.com>
|
||||
|
||||
(crobinso: fix minor pep8 issues)
|
||||
|
||||
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
|
||||
index c48e9d5..40f7c05 100644
|
||||
--- a/virtinst/urlfetcher.py
|
||||
+++ b/virtinst/urlfetcher.py
|
||||
@@ -369,6 +369,8 @@ def _distroFromSUSEContent(fetcher, arch, vmtype=None):
|
||||
arch = "x86_64"
|
||||
elif cbuf.find("i586") != -1:
|
||||
arch = "i586"
|
||||
+ elif cbuf.find("s390x") != -1:
|
||||
+ arch = "s390x"
|
||||
|
||||
dclass = GenericDistro
|
||||
if distribution:
|
||||
@@ -934,16 +936,22 @@ class SuseDistro(Distro):
|
||||
oldkern += "64"
|
||||
oldinit += "64"
|
||||
|
||||
- # Tested with Opensuse >= 10.2, 11, and sles 10
|
||||
- self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch,
|
||||
- "boot/%s/loader/initrd" % self.arch)]
|
||||
- # Tested with Opensuse 10.0
|
||||
- self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern,
|
||||
- "boot/loader/%s" % oldinit))
|
||||
+ if self.arch == "s390x":
|
||||
+ self._hvm_kernel_paths = [("boot/%s/linux" % self.arch,
|
||||
+ "boot/%s/initrd" % self.arch)]
|
||||
+ # No Xen on s390x
|
||||
+ self._xen_kernel_paths = []
|
||||
+ else:
|
||||
+ # Tested with Opensuse >= 10.2, 11, and sles 10
|
||||
+ self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch,
|
||||
+ "boot/%s/loader/initrd" % self.arch)]
|
||||
+ # Tested with Opensuse 10.0
|
||||
+ self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern,
|
||||
+ "boot/loader/%s" % oldinit))
|
||||
|
||||
- # Matches Opensuse > 10.2 and sles 10
|
||||
- self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
|
||||
- "boot/%s/initrd-xen" % self.arch)]
|
||||
+ # Matches Opensuse > 10.2 and sles 10
|
||||
+ self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch,
|
||||
+ "boot/%s/initrd-xen" % self.arch)]
|
||||
|
||||
def _variantFromVersion(self):
|
||||
distro_version = self.version_from_content[1].strip()
|
||||
@@ -971,6 +979,13 @@ class SuseDistro(Distro):
|
||||
self._variantFromVersion()
|
||||
|
||||
self.os_variant = self._detect_osdict_from_url()
|
||||
+
|
||||
+ # Reset kernel name for sle11 source on s390x
|
||||
+ if self.arch == "s390x":
|
||||
+ if self.os_variant == "sles11" or self.os_variant == "sled11":
|
||||
+ self._hvm_kernel_paths = [("boot/%s/vmrdr.ikr" % self.arch,
|
||||
+ "boot/%s/initrd" % self.arch)]
|
||||
+
|
||||
return True
|
||||
|
||||
def _get_method_arg(self):
|
@ -1,20 +0,0 @@
|
||||
Subject: addconnection: Fix qemu:///session vs. lxc:/// detection
|
||||
From: Cole Robinson crobinso@redhat.com Sun Aug 9 12:27:20 2015 -0400
|
||||
Date: Sun Aug 9 12:27:20 2015 -0400:
|
||||
Git: 4970615f4870cc5394a46ff6a049ac937b3043d6
|
||||
|
||||
|
||||
diff --git a/virtManager/connect.py b/virtManager/connect.py
|
||||
index b977fea..7493d14 100644
|
||||
--- a/virtManager/connect.py
|
||||
+++ b/virtManager/connect.py
|
||||
@@ -327,7 +327,8 @@ class vmmConnect(vmmGObjectUI):
|
||||
self.populate_uri()
|
||||
|
||||
def hypervisor_changed(self, src):
|
||||
- is_session = (src.get_active() == HV_QEMU_SESSION)
|
||||
+ hv = uiutil.get_list_selection(self.widget("hypervisor"))
|
||||
+ is_session = (hv == HV_QEMU_SESSION)
|
||||
uiutil.set_grid_row_visible(
|
||||
self.widget("session-warning-box"), is_session)
|
||||
uiutil.set_grid_row_visible(
|
@ -1,25 +0,0 @@
|
||||
From 590f5a525bccded6866461b4ff3e1bb7adae086b Mon Sep 17 00:00:00 2001
|
||||
From: Cole Robinson <crobinso@redhat.com>
|
||||
Date: Mon, 14 Sep 2015 10:34:19 -0400
|
||||
Subject: [PATCH] urlfetcher: Clear cached ftp connection on cleanupLocation
|
||||
|
||||
Reported-by: Chun Yan Liu <cyliu@suse.com>
|
||||
---
|
||||
virtinst/urlfetcher.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
|
||||
index 40f7c05..cda67a2 100644
|
||||
--- a/virtinst/urlfetcher.py
|
||||
+++ b/virtinst/urlfetcher.py
|
||||
@@ -167,6 +167,7 @@ class _FTPImageFetcher(_URIImageFetcher):
|
||||
except:
|
||||
logging.debug("Error quitting ftp connection", exc_info=True)
|
||||
|
||||
+ self.ftp = None
|
||||
|
||||
def hasFile(self, filename):
|
||||
path = self._make_path(filename)
|
||||
--
|
||||
1.8.5.6
|
||||
|
@ -1,68 +0,0 @@
|
||||
Subject: guest: Don't try to set vmport on non-x86, it isn't supported (bz 1259998)
|
||||
From: Cole Robinson crobinso@redhat.com Fri Sep 4 12:14:22 2015 -0400
|
||||
Date: Fri Sep 4 12:14:22 2015 -0400:
|
||||
Git: 5e68b0fc3d9b93491817a3c1914fa9b3633440b6
|
||||
|
||||
|
||||
Index: virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml
|
||||
+++ virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml
|
||||
@@ -8,12 +8,6 @@
|
||||
<type arch="ppc64" machine="pseries">hvm</type>
|
||||
<boot dev="network"/>
|
||||
</os>
|
||||
- <features>
|
||||
- <acpi/>
|
||||
- <apic/>
|
||||
- <pae/>
|
||||
- <vmport state="off"/>
|
||||
- </features>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
Index: virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml
|
||||
+++ virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml
|
||||
@@ -8,12 +8,6 @@
|
||||
<type arch="ppc64" machine="pseries">hvm</type>
|
||||
<boot dev="network"/>
|
||||
</os>
|
||||
- <features>
|
||||
- <acpi/>
|
||||
- <apic/>
|
||||
- <pae/>
|
||||
- <vmport state="off"/>
|
||||
- </features>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
Index: virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml
|
||||
+++ virt-manager-1.2.1/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml
|
||||
@@ -8,11 +8,6 @@
|
||||
<type arch="ppc64le" machine="pseries">hvm</type>
|
||||
<boot dev="hd"/>
|
||||
</os>
|
||||
- <features>
|
||||
- <acpi/>
|
||||
- <apic/>
|
||||
- <vmport state="off"/>
|
||||
- </features>
|
||||
<clock offset="utc"/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
@@ -847,6 +847,7 @@ class Guest(XMLBuilder):
|
||||
self.features.pae = self.conn.caps.supports_pae()
|
||||
|
||||
if (self.features.vmport == "default" and
|
||||
+ self.os.is_x86() and
|
||||
self.has_spice() and
|
||||
self.conn.check_support(self.conn.SUPPORT_CONN_VMPORT)):
|
||||
self.features.vmport = False
|
@ -1,63 +0,0 @@
|
||||
Subject: virt-install: Simplify --extra-args text install warnings
|
||||
From: Cole Robinson crobinso@redhat.com Tue Sep 22 08:42:09 2015 -0400
|
||||
Date: Tue Sep 22 12:44:33 2015 -0400:
|
||||
Git: 601a82cb87ebc055ba9dd52864317bd513613814
|
||||
|
||||
- Drop the warnings about incorrect console=, that's a little too fine
|
||||
grained and was really only about virtio-console default confusion
|
||||
which doesn't apply anymore
|
||||
- Skip the check for xenpv which seems to always 'just work'
|
||||
- Drop the opencoded arm check, use is_arm
|
||||
- Fix an error when xen HVM is used (reported on virt-tools-list)
|
||||
|
||||
diff --git a/virt-install b/virt-install
|
||||
index ba9423e..d509256 100755
|
||||
--- a/virt-install
|
||||
+++ b/virt-install
|
||||
@@ -513,35 +513,20 @@ def _show_nographics_warnings(options, guest):
|
||||
|
||||
serial_arg = "console=ttyS0"
|
||||
serial_arm_arg = "console=ttyAMA0"
|
||||
- virtio_arg = "console=hvc0"
|
||||
- console_type = None
|
||||
- if guest.conn.is_test() or guest.conn.is_qemu():
|
||||
- console_type = serial_arg
|
||||
- if guest.os.arch.startswith("arm") or guest.os.arch == "aarch64":
|
||||
- console_type = serial_arm_arg
|
||||
- if guest.get_devices("console")[0].target_type == "virtio":
|
||||
- console_type = virtio_arg
|
||||
-
|
||||
- if not options.extra_args or "console=" not in options.extra_args:
|
||||
- logging.warn(_("No 'console' seen in --extra-args, a '%s' kernel "
|
||||
- "argument is likely required to see text install output from "
|
||||
- "the guest."), console_type or "console=")
|
||||
- return
|
||||
+ hvc_arg = "console=hvc0"
|
||||
|
||||
- if console_type in options.extra_args:
|
||||
- return
|
||||
- if (serial_arg not in options.extra_args and
|
||||
- virtio_arg not in options.extra_args):
|
||||
+ console_type = serial_arg
|
||||
+ if guest.os.is_arm():
|
||||
+ console_type = serial_arm_arg
|
||||
+ if guest.get_devices("console")[0].target_type in ["virtio", "xen"]:
|
||||
+ console_type = hvc_arg
|
||||
+
|
||||
+ if console_type in (options.extra_args or ""):
|
||||
return
|
||||
|
||||
- has = (serial_arg in options.extra_args) and serial_arg or virtio_arg
|
||||
- need = (serial_arg in options.extra_args) and virtio_arg or serial_arg
|
||||
- logging.warn(_("'%s' found in --extra-args, but the device attached "
|
||||
- "to the guest likely requires '%s'. You may not see text install "
|
||||
- "output from the guest."), has, need)
|
||||
- if has == serial_arg:
|
||||
- logging.warn(_("To make '--extra-args %s' work, you can force a "
|
||||
- "plain serial device with '--console pty'"), serial_arg)
|
||||
+ logging.warn(_("Did not find '%(console_string)s' in --extra-args, "
|
||||
+ "which is likely required to see text install output from the "
|
||||
+ "guest."), {"console_string": console_type})
|
||||
|
||||
|
||||
def show_warnings(options, guest):
|
@ -1,114 +0,0 @@
|
||||
Subject: virt-xml: refactor the handling of --define and --update options
|
||||
From: Pavel Hrdina phrdina@redhat.com Thu Jul 2 14:09:46 2015 +0200
|
||||
Date: Tue Jul 7 10:42:32 2015 -0400:
|
||||
Git: 76bad650dea9f83305f4a77bf83dee34d79e5308
|
||||
|
||||
The code was wrong in many ways. The main issue was, that for live
|
||||
updates we were using config XML instead of live XML.
|
||||
|
||||
This patch fixes the --update and --define options to work properly as
|
||||
described in man page.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1192875
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virt-xml b/virt-xml
|
||||
index 744af3d..5dbe2e1 100755
|
||||
--- a/virt-xml
|
||||
+++ b/virt-xml
|
||||
@@ -295,6 +295,33 @@ def update_changes(domain, devs, action, confirm):
|
||||
print_stdout("")
|
||||
|
||||
|
||||
+def prepare_changes(xmlobj, options, parsermap, parserobj):
|
||||
+ origxml = xmlobj.get_xml_config()
|
||||
+
|
||||
+ if options.edit != -1:
|
||||
+ devs = action_edit(xmlobj, options, parsermap, parserobj)
|
||||
+ action = "update"
|
||||
+
|
||||
+ elif options.add_device:
|
||||
+ devs = action_add_device(xmlobj, options, parsermap, parserobj)
|
||||
+ action = "hotplug"
|
||||
+
|
||||
+ elif options.remove_device:
|
||||
+ devs = action_remove_device(xmlobj, options, parsermap, parserobj)
|
||||
+ action = "hotunplug"
|
||||
+
|
||||
+ newxml = xmlobj.get_xml_config()
|
||||
+ diff = get_diff(origxml, newxml)
|
||||
+
|
||||
+ if options.print_diff:
|
||||
+ if diff:
|
||||
+ print_stdout(diff)
|
||||
+ elif options.print_xml:
|
||||
+ print_stdout(newxml)
|
||||
+
|
||||
+ return devs, action
|
||||
+
|
||||
+
|
||||
#######################
|
||||
# CLI option handling #
|
||||
#######################
|
||||
@@ -410,10 +437,6 @@ def main(conn=None):
|
||||
elif not options.build_xml:
|
||||
inactive_xmlobj = _make_guest(conn, options.stdinxml)
|
||||
|
||||
- origxml = None
|
||||
- if inactive_xmlobj:
|
||||
- origxml = inactive_xmlobj.get_xml_config()
|
||||
-
|
||||
check_action_collision(options)
|
||||
parserobj = check_xmlopt_collision(options, parsermap)
|
||||
|
||||
@@ -421,42 +444,25 @@ def main(conn=None):
|
||||
fail(_("Don't know how to --update for --%s") %
|
||||
(parserobj.cli_arg_name))
|
||||
|
||||
- if options.edit != -1:
|
||||
- devs = action_edit(inactive_xmlobj, options, parsermap, parserobj)
|
||||
- action = "update"
|
||||
-
|
||||
- elif options.add_device:
|
||||
- devs = action_add_device(inactive_xmlobj, options,
|
||||
- parsermap, parserobj)
|
||||
- action = "hotplug"
|
||||
-
|
||||
- elif options.remove_device:
|
||||
- devs = action_remove_device(inactive_xmlobj, options,
|
||||
- parsermap, parserobj)
|
||||
- action = "hotunplug"
|
||||
-
|
||||
- elif options.build_xml:
|
||||
+ if options.build_xml:
|
||||
devs = action_build_xml(conn, options, parsermap, parserobj)
|
||||
for dev in util.listify(devs):
|
||||
print_stdout(dev.get_xml_config())
|
||||
return 0
|
||||
|
||||
- newxml = inactive_xmlobj.get_xml_config()
|
||||
- diff = get_diff(origxml, newxml)
|
||||
-
|
||||
- if options.print_diff:
|
||||
- if diff:
|
||||
- print_stdout(diff)
|
||||
- elif options.print_xml:
|
||||
- print_stdout(newxml)
|
||||
-
|
||||
if options.update and active_xmlobj:
|
||||
+ devs, action = prepare_changes(active_xmlobj, options,
|
||||
+ parsermap, parserobj)
|
||||
update_changes(domain, devs, action, options.confirm)
|
||||
if options.define:
|
||||
+ devs, action = prepare_changes(inactive_xmlobj, options,
|
||||
+ parsermap, parserobj)
|
||||
define_changes(conn, inactive_xmlobj, devs, action, options.confirm)
|
||||
if not options.update and active_xmlobj:
|
||||
print_stdout(
|
||||
_("Changes will take effect after the next domain shutdown."))
|
||||
+ if not options.update and not options.define:
|
||||
+ prepare_changes(inactive_xmlobj, options, parsermap, parserobj)
|
||||
|
||||
return 0
|
||||
|
@ -1,27 +0,0 @@
|
||||
Subject: connection: catch more errors in filter_nodedevs (bug 1225771)
|
||||
From: Cole Robinson crobinso@redhat.com Tue Jun 9 11:41:39 2015 -0400
|
||||
Date: Tue Jun 9 11:41:39 2015 -0400:
|
||||
Git: 77423e7a8d2061f06f9f7d0b7a791821a134c8f7
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1225771 Has an example of
|
||||
libvirt failing to generate nodedev XML, so handle that too.
|
||||
|
||||
diff --git a/virtManager/connection.py b/virtManager/connection.py
|
||||
index d40ace2..3ca13cc 100644
|
||||
--- a/virtManager/connection.py
|
||||
+++ b/virtManager/connection.py
|
||||
@@ -594,9 +594,11 @@ class vmmConnection(vmmGObject):
|
||||
try:
|
||||
xmlobj = dev.get_xmlobj()
|
||||
except libvirt.libvirtError, e:
|
||||
- if e.get_error_code() == libvirt.VIR_ERR_NO_NODE_DEVICE:
|
||||
- continue
|
||||
- raise
|
||||
+ # Libvirt nodedev XML fetching can be busted
|
||||
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1225771
|
||||
+ if e.get_error_code() != libvirt.VIR_ERR_NO_NODE_DEVICE:
|
||||
+ logging.debug("Error fetching nodedev XML", exc_info=True)
|
||||
+ continue
|
||||
|
||||
if devtype and xmlobj.device_type != devtype:
|
||||
continue
|
@ -1,254 +0,0 @@
|
||||
Subject: virt-manager : add support for architecture type "s390x".
|
||||
From: Kevin Zhao kevinzs@linux.vnet.ibm.com Mon Jul 13 07:35:24 2015 -0400
|
||||
Date: Tue Jul 14 12:45:32 2015 -0400:
|
||||
Git: 8dbe96fc01c1b563a3720fd9292bca1fcb97f326
|
||||
|
||||
For architecture "s390x",the disk and the network device are base
|
||||
on "virtio" bus.The cdrom is based on "scsi".So set the default
|
||||
cdrom bus as "scsi",the default bus as "virtio".Also the default
|
||||
machine type is set to "s390-ccw-virtio" as it is the only supported
|
||||
in "s390x".Also add a test cast of virt-install by cdrom in s390x.
|
||||
|
||||
(crobinso: Tweak test suite and minor formatting stuff)
|
||||
|
||||
diff --git a/tests/capabilities-xml/kvm-s390x.xml b/tests/capabilities-xml/kvm-s390x.xml
|
||||
new file mode 100644
|
||||
index 0000000..039c2e0
|
||||
--- /dev/null
|
||||
+++ b/tests/capabilities-xml/kvm-s390x.xml
|
||||
@@ -0,0 +1,73 @@
|
||||
+<capabilities>
|
||||
+
|
||||
+ <host>
|
||||
+ <uuid>b88e553c-5920-4aa8-bb09-cc0ab8e6e0c2</uuid>
|
||||
+ <cpu>
|
||||
+ <arch>s390x</arch>
|
||||
+ <model>host</model>
|
||||
+ <topology sockets="2" cores="2" threads="1"/>
|
||||
+ <pages unit="KiB" size="4"/>
|
||||
+ <pages unit="KiB" size="1024"/>
|
||||
+ </cpu>
|
||||
+ <power_management>
|
||||
+ <suspend_disk/>
|
||||
+ <suspend_hybrid/>
|
||||
+ </power_management>
|
||||
+ <migration_features>
|
||||
+ <live/>
|
||||
+ <uri_transports>
|
||||
+ <uri_transport>tcp</uri_transport>
|
||||
+ <uri_transport>rdma</uri_transport>
|
||||
+ </uri_transports>
|
||||
+ </migration_features>
|
||||
+ <topology>
|
||||
+ <cells num="1">
|
||||
+ <cell id="0">
|
||||
+ <memory unit="KiB">2878860</memory>
|
||||
+ <cpus num="4">
|
||||
+ <cpu id="0" socket_id="0" core_id="0" siblings="0"/>
|
||||
+ <cpu id="1" socket_id="0" core_id="1" siblings="1"/>
|
||||
+ <cpu id="2" socket_id="1" core_id="0" siblings="2"/>
|
||||
+ <cpu id="3" socket_id="1" core_id="1" siblings="3"/>
|
||||
+ </cpus>
|
||||
+ </cell>
|
||||
+ </cells>
|
||||
+ </topology>
|
||||
+ <secmodel>
|
||||
+ <model>selinux</model>
|
||||
+ <doi>0</doi>
|
||||
+ <baselabel type="kvm">system_u:system_r:svirt_t:s0</baselabel>
|
||||
+ <baselabel type="qemu">system_u:system_r:svirt_tcg_t:s0</baselabel>
|
||||
+ </secmodel>
|
||||
+ <secmodel>
|
||||
+ <model>dac</model>
|
||||
+ <doi>0</doi>
|
||||
+ <baselabel type="kvm">+107:+107</baselabel>
|
||||
+ <baselabel type="qemu">+107:+107</baselabel>
|
||||
+ </secmodel>
|
||||
+ </host>
|
||||
+
|
||||
+ <guest>
|
||||
+ <os_type>hvm</os_type>
|
||||
+ <arch name="s390x">
|
||||
+ <wordsize>64</wordsize>
|
||||
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
|
||||
+ <machine canonical="s390-virtio" maxCpus="255">s390</machine>
|
||||
+ <machine canonical="s390-ccw-virtio" maxCpus="255">s390-ccw</machine>
|
||||
+ <domain type="qemu">
|
||||
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
|
||||
+ </domain>
|
||||
+ <domain type="kvm">
|
||||
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
|
||||
+ <machine canonical="s390-virtio" maxCpus="255">s390</machine>
|
||||
+ <machine canonical="s390-ccw-virtio" maxCpus="255">s390-ccw</machine>
|
||||
+ </domain>
|
||||
+ </arch>
|
||||
+ <features>
|
||||
+ <cpuselection/>
|
||||
+ <deviceboot/>
|
||||
+ <disksnapshot default="on" toggle="no"/>
|
||||
+ </features>
|
||||
+ </guest>
|
||||
+
|
||||
+</capabilities>
|
||||
diff --git a/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml b/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml
|
||||
new file mode 100644
|
||||
index 0000000..4d7b9c1
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml
|
||||
@@ -0,0 +1,43 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>foobar</name>
|
||||
+ <uuid>00000000-1111-2222-3333-444444444444</uuid>
|
||||
+ <memory>65536</memory>
|
||||
+ <currentMemory>65536</currentMemory>
|
||||
+ <vcpu>1</vcpu>
|
||||
+ <os>
|
||||
+ <type arch="s390x" machine="s390-ccw-virtio">hvm</type>
|
||||
+ <kernel>/kernel.img</kernel>
|
||||
+ <initrd>/initrd.img</initrd>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ </features>
|
||||
+ <clock offset="utc"/>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>restart</on_crash>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
|
||||
+ <disk type="file" device="disk">
|
||||
+ <driver name="qemu" type="qcow2"/>
|
||||
+ <source file="/dev/default-pool/testvol1.img"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+ </disk>
|
||||
+ <disk type="file" device="cdrom">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source file="/tmp/__virtinst_cli_exist1.img"/>
|
||||
+ <target dev="sda" bus="scsi"/>
|
||||
+ <readonly/>
|
||||
+ </disk>
|
||||
+ <interface type="bridge">
|
||||
+ <source bridge="eth0"/>
|
||||
+ <mac address="00:11:22:33:44:55"/>
|
||||
+ </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 2e5df3b..fb63191 100644
|
||||
--- a/tests/clitest.py
|
||||
+++ b/tests/clitest.py
|
||||
@@ -76,6 +76,7 @@ test_files = {
|
||||
'URI-KVM-ARMV7L' : utils.uri_kvm_armv7l,
|
||||
'URI-KVM-AARCH64' : utils.uri_kvm_aarch64,
|
||||
'URI-KVM-PPC64LE' : utils.uri_kvm_ppc64le,
|
||||
+ 'URI-KVM-S390X' : utils.uri_kvm_s390x,
|
||||
'URI-XEN': utils.uri_xen,
|
||||
'URI-LXC': utils.uri_lxc,
|
||||
|
||||
@@ -694,6 +695,9 @@ c.add_compare("--arch ppc64 --machine pseries --boot network --disk %(EXISTIMG1)
|
||||
c.add_compare("--arch ppc64 --boot network --disk %(EXISTIMG1)s --os-variant fedora20 --network none", "ppc64-machdefault-f20")
|
||||
c.add_compare("--connect %(URI-KVM-PPC64LE)s --import --disk %(EXISTIMG1)s --os-variant fedora20", "ppc64le-kvm-import")
|
||||
|
||||
+# s390x tests
|
||||
+c.add_compare("--arch s390x --machine s390-ccw-virtio --connect %(URI-KVM-S390X)s --boot kernel=/kernel.img,initrd=/initrd.img --disk %(EXISTIMG1)s --disk %(EXISTIMG3)s,device=cdrom --os-variant fedora21", "s390x-cdrom")
|
||||
+
|
||||
c.add_compare("--disk none --location %(EXISTIMG3)s --nonetworks", "location-iso") # Using --location iso mounting
|
||||
c.add_compare("--disk %(EXISTIMG1)s --pxe --os-variant rhel6.4", "kvm-rhel6") # RHEL6 defaults
|
||||
c.add_compare("--disk %(EXISTIMG1)s --pxe --os-variant rhel7.0", "kvm-rhel7") # RHEL7 defaults
|
||||
diff --git a/tests/utils.py b/tests/utils.py
|
||||
index 811016c..fe99155 100644
|
||||
--- a/tests/utils.py
|
||||
+++ b/tests/utils.py
|
||||
@@ -46,6 +46,7 @@ uri_kvm = (_uri_kvm_domcaps + _capsprefix + "kvm-x86_64.xml")
|
||||
uri_kvm_armv7l = (_uri_kvm_domcaps + _capsprefix + "kvm-armv7l.xml")
|
||||
uri_kvm_aarch64 = (_uri_kvm_domcaps + _capsprefix + "kvm-aarch64.xml")
|
||||
uri_kvm_ppc64le = (_uri_kvm_domcaps + _capsprefix + "kvm-ppc64le.xml")
|
||||
+uri_kvm_s390x = (_uri_kvm_domcaps + _capsprefix + "kvm-s390x.xml")
|
||||
|
||||
uri_xen = uri_test + _capsprefix + "xen-rhel5.4.xml,xen"
|
||||
uri_lxc = uri_test + _capsprefix + "lxc.xml,lxc"
|
||||
diff --git a/virtManager/create.py b/virtManager/create.py
|
||||
index 8401a7a..1005398 100644
|
||||
--- a/virtManager/create.py
|
||||
+++ b/virtManager/create.py
|
||||
@@ -409,7 +409,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
can_remote_url = self.conn.get_backend().support_remote_url_install()
|
||||
|
||||
installable_arch = (self.capsinfo.arch in
|
||||
- ["i686", "x86_64", "ppc64", "ppc64le", "ia64"])
|
||||
+ ["i686", "x86_64", "ppc64", "ppc64le", "ia64", "s390x"])
|
||||
|
||||
if self.capsinfo.arch == "aarch64":
|
||||
try:
|
||||
@@ -676,7 +676,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
archs.remove("i686")
|
||||
archs.sort()
|
||||
|
||||
- prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le"]
|
||||
+ prios = ["x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le",
|
||||
+ "s390x"]
|
||||
if self.conn.caps.host.cpu.arch not in prios:
|
||||
prios = []
|
||||
else:
|
||||
diff --git a/virtinst/capabilities.py b/virtinst/capabilities.py
|
||||
index bed8596..5823da2 100644
|
||||
--- a/virtinst/capabilities.py
|
||||
+++ b/virtinst/capabilities.py
|
||||
@@ -323,6 +323,10 @@ class _CapsInfo(object):
|
||||
if "vexpress-a15" in self.machines:
|
||||
return "vexpress-a15"
|
||||
|
||||
+ if self.arch in ["s390x"]:
|
||||
+ if "s390-ccw-virtio" in self.machines:
|
||||
+ return "s390-ccw-virtio"
|
||||
+
|
||||
return None
|
||||
|
||||
|
||||
diff --git a/virtinst/devicedisk.py b/virtinst/devicedisk.py
|
||||
index 6ca76e5..679b0cd 100644
|
||||
--- a/virtinst/devicedisk.py
|
||||
+++ b/virtinst/devicedisk.py
|
||||
@@ -897,6 +897,9 @@ class VirtualDisk(VirtualDevice):
|
||||
if self.is_cdrom():
|
||||
self.read_only = True
|
||||
|
||||
+ if self.is_cdrom() and guest.os.is_s390x():
|
||||
+ self.bus = "scsi"
|
||||
+
|
||||
if (guest.os.is_xenpv() and
|
||||
self.type == VirtualDisk.TYPE_FILE and
|
||||
self.driver_name is None and
|
||||
diff --git a/virtinst/guest.py b/virtinst/guest.py
|
||||
index bf4b70b..c958068 100644
|
||||
--- a/virtinst/guest.py
|
||||
+++ b/virtinst/guest.py
|
||||
@@ -987,6 +987,8 @@ class Guest(XMLBuilder):
|
||||
d.bus = "sd"
|
||||
elif self.os.is_q35():
|
||||
d.bus = "sata"
|
||||
+ elif self.os.is_s390x():
|
||||
+ d.bus = "virtio"
|
||||
else:
|
||||
d.bus = "ide"
|
||||
|
||||
diff --git a/virtinst/osxml.py b/virtinst/osxml.py
|
||||
index 77771bd..f195f19 100644
|
||||
--- a/virtinst/osxml.py
|
||||
+++ b/virtinst/osxml.py
|
||||
@@ -71,6 +71,9 @@ class OSXML(XMLBuilder):
|
||||
def is_pseries(self):
|
||||
return self.is_ppc64() and self.machine == "pseries"
|
||||
|
||||
+ def is_s390x(self):
|
||||
+ return self.arch == "s390x"
|
||||
+
|
||||
_XML_ROOT_NAME = "os"
|
||||
_XML_PROP_ORDER = ["arch", "os_type", "loader", "loader_ro", "loader_type",
|
||||
"nvram", "nvram_template", "kernel", "initrd",
|
@ -1,29 +0,0 @@
|
||||
Subject: virtinst.cpu: fix copy host cpu definition
|
||||
From: Pavel Hrdina phrdina@redhat.com Tue Jul 14 15:53:25 2015 +0200
|
||||
Date: Tue Jul 14 11:53:02 2015 -0400:
|
||||
Git: a9b303fb141df5b2d2051c6b4ed489dbb09952f8
|
||||
|
||||
Commit cac4ac14 updated cpu features to use XMLBuilder and this change
|
||||
removes the 'Features' class. There is no longer any '.names()'
|
||||
method to return names, so just cycle through all features and use a
|
||||
name attribute instead.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1240938
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virtinst/cpu.py b/virtinst/cpu.py
|
||||
index b12fd30..fb17bb7 100644
|
||||
--- a/virtinst/cpu.py
|
||||
+++ b/virtinst/cpu.py
|
||||
@@ -104,8 +104,8 @@ class CPU(XMLBuilder):
|
||||
|
||||
for feature in self.features:
|
||||
self.remove_feature(feature)
|
||||
- for name in cpu.features.names():
|
||||
- self.add_feature(name)
|
||||
+ for feature in cpu.features:
|
||||
+ self.add_feature(feature.name)
|
||||
|
||||
def vcpus_from_topology(self):
|
||||
"""
|
@ -1,41 +0,0 @@
|
||||
Subject: virt-install: report an error for pxe install without network
|
||||
From: Pavel Hrdina phrdina@redhat.com Thu Aug 6 14:43:00 2015 +0200
|
||||
Date: Thu Aug 6 14:56:30 2015 +0200:
|
||||
Git: aebebbf879ff33af38f858aebc01a5de1cafb1a7
|
||||
|
||||
Fix a regression where we used to report an error message if user
|
||||
specified pxe installation without any network (--nonetworks or
|
||||
--network none).
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1250382
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
Index: virt-manager-1.2.1/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/tests/clitest.py
|
||||
+++ virt-manager-1.2.1/tests/clitest.py
|
||||
@@ -746,8 +746,8 @@ c.add_valid("--mac 22:22:33:44:55:AF")
|
||||
c.add_valid("--bridge mybr0 --mac 22:22:33:44:55:AF") # Old bridge w/ mac
|
||||
c.add_valid("--network bridge:mybr0,model=e1000") # --network bridge:
|
||||
c.add_valid("--network network:default --mac RANDOM") # VirtualNetwork with a random macaddr
|
||||
-c.add_valid("--nonetworks") # no networks
|
||||
c.add_valid("--vnc --keymap=local") # --keymap local
|
||||
+c.add_invalid("--nonetworks") # no networks
|
||||
c.add_invalid("--graphics vnc --vnclisten 1.2.3.4") # mixing old and new
|
||||
c.add_invalid("--network=FOO") # Nonexistent network
|
||||
c.add_invalid("--mac 1234") # Invalid mac
|
||||
Index: virt-manager-1.2.1/virt-install
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virt-install
|
||||
+++ virt-manager-1.2.1/virt-install
|
||||
@@ -226,6 +226,9 @@ def convert_old_networks(options):
|
||||
fail(_("Cannot use --nonetworks with --network"))
|
||||
options.network = ["none"]
|
||||
|
||||
+ if options.pxe and options.network and "none" in options.network:
|
||||
+ fail(_("Can't use --pxe without any network"))
|
||||
+
|
||||
macs = virtinst.util.listify(options.mac)
|
||||
networks = virtinst.util.listify(options.network)
|
||||
bridges = virtinst.util.listify(options.bridge)
|
@ -1,31 +0,0 @@
|
||||
Subject: Suppress gi warnings about lack of require_version
|
||||
From: Cole Robinson crobinso@redhat.com Thu Sep 3 17:31:43 2015 -0400
|
||||
Date: Thu Sep 3 17:31:43 2015 -0400:
|
||||
Git: cde2f0ef676583d2bedf75b3717cdf97a74ba837
|
||||
|
||||
|
||||
diff --git a/virt-manager b/virt-manager
|
||||
index 2f501e4..0a9d4b4 100755
|
||||
--- a/virt-manager
|
||||
+++ b/virt-manager
|
||||
@@ -28,6 +28,7 @@ import traceback
|
||||
|
||||
import gi
|
||||
from gi.repository import GObject
|
||||
+gi.require_version('LibvirtGLib', '1.0')
|
||||
from gi.repository import LibvirtGLib
|
||||
|
||||
from virtinst import util as util
|
||||
diff --git a/virtinst/osdict.py b/virtinst/osdict.py
|
||||
index b70d387..085b27a 100644
|
||||
--- a/virtinst/osdict.py
|
||||
+++ b/virtinst/osdict.py
|
||||
@@ -23,6 +23,8 @@ import datetime
|
||||
import logging
|
||||
import re
|
||||
|
||||
+import gi
|
||||
+gi.require_version('Libosinfo', '1.0')
|
||||
from gi.repository import Libosinfo as libosinfo
|
||||
|
||||
|
@ -1,36 +0,0 @@
|
||||
Subject: storage: fix default storage pool lookup
|
||||
From: Charles Arnold carnold@suse.com Wed Aug 12 16:00:14 2015 -0600
|
||||
Date: Mon Aug 31 18:25:37 2015 -0400:
|
||||
Git: eb92178e0c208c20c658dd3f38caf377bb788ae4
|
||||
|
||||
virt-convert fails when the storage pool is already present but
|
||||
is not called 'default'.
|
||||
|
||||
If the 'default' pool has been removed but another pool uses the
|
||||
default location of /var/lib/libvirt/images virt-convert will fail
|
||||
to find the pool and attempt to create another one with the same
|
||||
path. This causes the conversion to fail.
|
||||
|
||||
Signed-off-by: Charles Arnold <carnold@suse.com>
|
||||
|
||||
(crobinso: Remove now-redundant 'pass')
|
||||
|
||||
diff --git a/virtinst/storage.py b/virtinst/storage.py
|
||||
index 285acb8..d3d867a 100644
|
||||
--- a/virtinst/storage.py
|
||||
+++ b/virtinst/storage.py
|
||||
@@ -209,10 +209,12 @@ class StoragePool(_StorageObject):
|
||||
try:
|
||||
pool = conn.storagePoolLookupByName(name)
|
||||
except libvirt.libvirtError:
|
||||
- pass
|
||||
+ # Try default pool path when "default" name fails
|
||||
+ pool = StoragePool.lookup_pool_by_path(conn, path)
|
||||
|
||||
if pool:
|
||||
- return
|
||||
+ # This is a libvirt pool object so create a StoragePool from it
|
||||
+ return StoragePool(conn, parsexml=pool.XMLDesc(0))
|
||||
|
||||
try:
|
||||
logging.debug("Attempting to build default pool with target '%s'",
|
@ -1,39 +0,0 @@
|
||||
Reference: bsc#947288
|
||||
Subject: storage: remove cow as supported format
|
||||
From: Charles Arnold carnold@suse.com Tue Sep 29 11:25:34 2015 -0600
|
||||
Date: Tue Sep 29 16:33:16 2015 -0400:
|
||||
Git: f30975c3f8e2c009d778f143633c37c5656207f5
|
||||
|
||||
Support for this format was removed about a year ago from
|
||||
qemu with this commit,
|
||||
|
||||
commit 550830f9351291c585c963204ad9127998b1c1ce
|
||||
Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Tue Sep 16 15:24:24 2014 +0100
|
||||
|
||||
block: delete cow block driver
|
||||
|
||||
Signed-off-by: Charles Arnold <carnold@suse.com>
|
||||
|
||||
Index: virt-manager-1.2.1/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.2.1/virtinst/storage.py
|
||||
@@ -542,7 +542,7 @@ class StorageVolume(_StorageObject):
|
||||
"""
|
||||
Base class for building and installing libvirt storage volume xml
|
||||
"""
|
||||
- ALL_FORMATS = ["raw", "bochs", "cloop", "cow", "dmg", "iso", "qcow",
|
||||
+ ALL_FORMATS = ["raw", "bochs", "cloop", "dmg", "iso", "qcow",
|
||||
"qcow2", "qed", "vmdk", "vpc", "fat", "vhd", "vdi"]
|
||||
|
||||
@staticmethod
|
||||
@@ -743,7 +743,7 @@ class StorageVolume(_StorageObject):
|
||||
|
||||
def list_create_formats(self):
|
||||
if self._supports_format():
|
||||
- return ["raw", "cow", "qcow", "qcow2", "qed", "vmdk", "vpc", "vdi"]
|
||||
+ return ["raw", "qcow", "qcow2", "qed", "vmdk", "vpc", "vdi"]
|
||||
return None
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
Subject: details: don't display error if machine is missing in XML
|
||||
From: Pavel Hrdina phrdina@redhat.com Fri Jul 31 14:28:00 2015 +0200
|
||||
Date: Wed Aug 5 13:32:04 2015 +0200:
|
||||
Git: f81358b02d58b709529a35268cbaf8ce098d803a
|
||||
|
||||
Commint 0ddec919 updated the details page. Now the detail page of
|
||||
existing domain cannot update the 'machine' value, only prints that
|
||||
value. If we cannot get the machine from domain XML, don't pass a None,
|
||||
but "Unknown" instead. This can happen if you are connecting with
|
||||
virt-manager to really old libvirt, the machine value is present in
|
||||
domain XML since libvirt v0.9.5.
|
||||
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1238981
|
||||
|
||||
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
||||
|
||||
diff --git a/virtManager/details.py b/virtManager/details.py
|
||||
index 718f50a..8507bd0 100644
|
||||
--- a/virtManager/details.py
|
||||
+++ b/virtManager/details.py
|
||||
@@ -2457,7 +2457,7 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("overview-firmware-label").set_text(firmware)
|
||||
|
||||
# Machine settings
|
||||
- machtype = self.vm.get_machtype()
|
||||
+ machtype = self.vm.get_machtype() or _("Unknown")
|
||||
if self.widget("machine-type").is_visible():
|
||||
uiutil.set_list_selection(
|
||||
self.widget("machine-type"), machtype)
|
@ -1,517 +0,0 @@
|
||||
Subject: addhardware: Fix udp/tcp host vs mode UI
|
||||
From: Cole Robinson crobinso@redhat.com Sun Jun 21 15:14:30 2015 -0400
|
||||
Date: Sun Jun 21 15:14:30 2015 -0400:
|
||||
Git: fc93e154dc522a997689fbb370eac2d87f80b146
|
||||
|
||||
We had the UI label names swapped, so were showing the incorrect fields
|
||||
|
||||
diff --git a/ui/addhardware.ui b/ui/addhardware.ui
|
||||
index a42f840..ec6a970 100644
|
||||
--- a/ui/addhardware.ui
|
||||
+++ b/ui/addhardware.ui
|
||||
@@ -79,13 +79,13 @@
|
||||
<object class="GtkLabel" id="page-title-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
- <property name="yalign">0</property>
|
||||
<property name="xpad">6</property>
|
||||
<property name="ypad">6</property>
|
||||
<property name="label">Page title</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">fill</property>
|
||||
+ <property name="xalign">0</property>
|
||||
+ <property name="yalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -155,10 +155,10 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Device type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">config-storage-devtype</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -186,10 +186,10 @@
|
||||
<object class="GtkLabel" id="label21">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Bus type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">config-storage-bustype</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -228,10 +228,10 @@
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Stor_age format:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">storage-format-combobox-entry</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -242,10 +242,10 @@
|
||||
<object class="GtkLabel" id="label28">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Cac_he mode:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">config-storage-cache</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -325,10 +325,10 @@
|
||||
<object class="GtkLabel" id="label29">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">controller-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -339,10 +339,10 @@
|
||||
<object class="GtkLabel" id="controller-model-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Model:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">controller-model</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -468,11 +468,11 @@
|
||||
<object class="GtkLabel" id="label386">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_MAC address:</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">create-mac-address</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -483,10 +483,10 @@
|
||||
<object class="GtkLabel" id="label6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Device mode_l:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">net-model</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -590,10 +590,10 @@
|
||||
<object class="GtkLabel" id="label395">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">input-type</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -674,10 +674,10 @@
|
||||
<object class="GtkLabel" id="label10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Model:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">sound-model</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -711,11 +711,11 @@
|
||||
<object class="GtkLabel" id="label20">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="xpad">1</property>
|
||||
<property name="label" translatable="yes">Host _Device:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">host-device</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -820,10 +820,10 @@
|
||||
<object class="GtkLabel" id="char-port-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Port:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-port</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -869,10 +869,10 @@
|
||||
<object class="GtkLabel" id="char-bind-port-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Po_rt:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-bind-port</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -902,10 +902,10 @@
|
||||
<object class="GtkLabel" id="char-path-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Path:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-path</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -916,24 +916,24 @@
|
||||
<object class="GtkLabel" id="char-mode-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Mode:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-mode</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
- <property name="top_attach">8</property>
|
||||
+ <property name="top_attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="char-host-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">H_ost:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-host</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -944,24 +944,24 @@
|
||||
<object class="GtkLabel" id="char-bind-host-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Bind Host:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-mode</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
- <property name="top_attach">7</property>
|
||||
+ <property name="top_attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="char-use-telnet-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Use Te_lnet:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-use-telnet</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -972,10 +972,10 @@
|
||||
<object class="GtkLabel" id="label9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Device _Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-device-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -998,10 +998,10 @@
|
||||
<object class="GtkLabel" id="char-target-type-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">T_ype:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-target-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1023,10 +1023,10 @@
|
||||
<object class="GtkLabel" id="char-target-name-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Name:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">combobox-entry</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1083,10 +1083,10 @@
|
||||
<object class="GtkLabel" id="char-channel-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Channel:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">char-channel</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1142,10 +1142,10 @@
|
||||
<object class="GtkLabel" id="label23">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Model:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">video-model</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -1192,10 +1192,10 @@
|
||||
<object class="GtkLabel" id="label26">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Model:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">watchdog-model</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -1294,10 +1294,10 @@
|
||||
<object class="GtkLabel" id="label30">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Mode:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">smartcard-mode</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
@@ -1347,10 +1347,10 @@
|
||||
<object class="GtkLabel" id="label439">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Port:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">usbredir-service</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -1381,10 +1381,10 @@
|
||||
<object class="GtkLabel" id="label3213">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">usbredir-list</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1395,10 +1395,10 @@
|
||||
<object class="GtkLabel" id="label438">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Host:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">usbredir-host</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1455,10 +1455,10 @@
|
||||
<object class="GtkLabel" id="tpm-device-path-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Device _Path:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">tpm-device-path</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1480,10 +1480,10 @@
|
||||
<object class="GtkLabel" id="label35">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Backend:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">tpm-type</property>
|
||||
+ <property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1516,10 +1516,10 @@
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1541,10 +1541,10 @@
|
||||
<object class="GtkLabel" id="label8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Backend Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-backend-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1566,10 +1566,10 @@
|
||||
<object class="GtkLabel" id="label12">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Backend _Mode:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-backend-mode</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1591,10 +1591,10 @@
|
||||
<object class="GtkLabel" id="label17">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Host:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-connect-host</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1622,10 +1622,10 @@
|
||||
<object class="GtkLabel" id="char-port-label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Port:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-connect-service</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -1656,10 +1656,10 @@
|
||||
<object class="GtkLabel" id="rng-bind-host-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">B_ind Host:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-bind-host</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1687,10 +1687,10 @@
|
||||
<object class="GtkLabel" id="char-port-label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">P_ort:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-bind-service</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -1721,10 +1721,10 @@
|
||||
<object class="GtkLabel" id="label5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Device:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">rng-device</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1768,10 +1768,10 @@
|
||||
<object class="GtkLabel" id="panic-type-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Address _Type:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">panic-type</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -1792,10 +1792,10 @@
|
||||
<object class="GtkLabel" id="panic-iobase-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
- <property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_IO Base:</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">panic-iobase</property>
|
||||
+ <property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d5677d96606ee3878891670d45bff6cb833def9436edbde7de8ff0529c967b80
|
||||
size 1357234
|
3
virt-manager-1.3.0.tar.bz2
Normal file
3
virt-manager-1.3.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f7fef858b8accf32ca62326b8ae7c5000d1d9e5921d664ca349fe8bd8a166903
|
||||
size 1393861
|
@ -1,3 +1,43 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 25 09:46:33 MST 2015 - carnold@suse.com
|
||||
|
||||
- Update to virt-manager 1.3.0
|
||||
virt-manager-1.3.0.tar.bz2
|
||||
* Git hosting moved to http://github.com/virt-manager/virt-manager
|
||||
* Switch translation infrastructure from transifex to fedora.zanata.org
|
||||
* Add dogtail UI tests and infrastructure
|
||||
* Improved support for s390x kvm (Kevin Zhao)
|
||||
* virt-install and virt-manager now remove created disk images if VM install startup fails
|
||||
* Replace urlgrabber usage with requests and urllib2
|
||||
* virt-install: add –network virtualport support for openvswitch (Daniel P. Berrange)
|
||||
* virt-install: support multiple –security labels
|
||||
* virt-install: support –features kvm_hidden=on|off (Pavel Hrdina)
|
||||
* virt-install: add –features pmu=on|off
|
||||
* virt-install: add –features pvspinlock=on|off (Abhijeet Kasurde)
|
||||
* virt-install: add –events on_lockfailure=on|off (Abhijeet Kasurde)
|
||||
* virt-install: add –network link_state=up|down
|
||||
* virt-install: add –vcpu placement=static|auto
|
||||
- Dropped
|
||||
virt-manager-1.2.1.tar.bz2
|
||||
34db1af7-fix-adding-iscsi-pools.patch
|
||||
360fe110-add-s390x-arch-support.patch
|
||||
4970615f-fix-qemu-vs-lxc-detection.patch
|
||||
590f5a52-urlfetcher-Clear-cached-ftp-connection-on-cleanupLoc.patch
|
||||
5e68b0fc-dont-try-to-set-vmport-on-non-x86.patch
|
||||
601a82cb-fix-console_type-if-xen.patch
|
||||
76bad650-fix-virt-xml-define-and-update.patch
|
||||
77423e7a-connection-catch-more-errors-in-filter_nodedevs.patch
|
||||
8dbe96fc-add-s390x-arch-support.patch
|
||||
a9b303fb-fix-copy-host-cpu-definition.patch
|
||||
aebebbf8-report-an-error-for-pxe-install-without-network.patch
|
||||
cde2f0ef-Suppress-gi-warnings-about-lack-of-require_version.patch
|
||||
eb92178e-virtinst-fix-storage-pool-lookup.patch
|
||||
f30975c3-drop-cow-support.patch
|
||||
f81358b0-dont-display-error-if-machine-is-missing-in-XML.patch
|
||||
fc93e154-fix-udp-tcp-host-vs-mode-UI.patch
|
||||
virtman-autoyast-support.patch
|
||||
virtman-supported-disk-formats.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 17 09:00:28 MST 2015 - carnold@suse.com
|
||||
|
||||
|
@ -21,13 +21,13 @@
|
||||
%define qemu_user "qemu"
|
||||
%define libvirt_kvm_packages ""
|
||||
%define libvirt_xen_packages ""
|
||||
%define preferred_distros "sles12,opensuse13.2"
|
||||
%define preferred_distros "sles12sp1,opensuse42.1"
|
||||
%define kvm_packages ""
|
||||
%define _version 1.2.1
|
||||
%define _release 1
|
||||
%define _version 1.3.0
|
||||
%define _release 0
|
||||
|
||||
Name: virt-manager
|
||||
Version: 1.2.1
|
||||
Version: 1.3.0
|
||||
Release: 0
|
||||
Summary: Virtual Machine Manager
|
||||
License: GPL-2.0+
|
||||
@ -37,22 +37,6 @@ Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: virt-install.rb
|
||||
Source2: virt-install.desktop
|
||||
# Upstream Patches
|
||||
Patch1: 77423e7a-connection-catch-more-errors-in-filter_nodedevs.patch
|
||||
Patch2: fc93e154-fix-udp-tcp-host-vs-mode-UI.patch
|
||||
Patch3: 34db1af7-fix-adding-iscsi-pools.patch
|
||||
Patch4: 76bad650-fix-virt-xml-define-and-update.patch
|
||||
Patch5: a9b303fb-fix-copy-host-cpu-definition.patch
|
||||
Patch6: 8dbe96fc-add-s390x-arch-support.patch
|
||||
Patch7: f81358b0-dont-display-error-if-machine-is-missing-in-XML.patch
|
||||
Patch8: aebebbf8-report-an-error-for-pxe-install-without-network.patch
|
||||
Patch9: 4970615f-fix-qemu-vs-lxc-detection.patch
|
||||
Patch10: eb92178e-virtinst-fix-storage-pool-lookup.patch
|
||||
Patch11: 5e68b0fc-dont-try-to-set-vmport-on-non-x86.patch
|
||||
Patch12: 360fe110-add-s390x-arch-support.patch
|
||||
Patch13: 590f5a52-urlfetcher-Clear-cached-ftp-connection-on-cleanupLoc.patch
|
||||
Patch14: 601a82cb-fix-console_type-if-xen.patch
|
||||
Patch15: f30975c3-drop-cow-support.patch
|
||||
Patch16: cde2f0ef-Suppress-gi-warnings-about-lack-of-require_version.patch
|
||||
# SUSE Only
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-kvm.patch
|
||||
@ -66,10 +50,9 @@ Patch77: virtinst-nfs-install-sanitize.patch
|
||||
Patch100: virtman-eepro100.patch
|
||||
Patch101: virtman-default-guest-from-host-os.patch
|
||||
Patch102: virtman-default-to-xen-pv.patch
|
||||
Patch103: virtman-autoyast-support.patch
|
||||
Patch104: virtman-packages.patch
|
||||
Patch105: virtman-load-stored-uris.patch
|
||||
Patch106: virtman-add-connect-default.patch
|
||||
Patch103: virtman-packages.patch
|
||||
Patch104: virtman-load-stored-uris.patch
|
||||
Patch105: virtman-add-connect-default.patch
|
||||
Patch120: virtinst-storage-ocfs2.patch
|
||||
Patch121: virtinst-default-xen-to-qcow2-format.patch
|
||||
Patch122: virtinst-detect-oes-distros.patch
|
||||
@ -81,12 +64,11 @@ Patch127: virtinst-set-qemu-emulator.patch
|
||||
Patch128: virtinst-add-ppc64-arch-support.patch
|
||||
Patch129: virtinst-s390x-disable-graphics.patch
|
||||
# Bug Fixes
|
||||
Patch150: virtman-supported-disk-formats.patch
|
||||
Patch151: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch152: virtman-increase-setKeepAlive-count.patch
|
||||
Patch153: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
||||
Patch154: virtman-check-for-valid-display.patch
|
||||
Patch155: virtman-allow-creating-i686-vm.patch
|
||||
Patch150: virtman-prevent-double-click-starting-vm-twice.patch
|
||||
Patch151: virtman-increase-setKeepAlive-count.patch
|
||||
Patch152: virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch
|
||||
Patch153: virtman-check-for-valid-display.patch
|
||||
Patch154: virtman-allow-creating-i686-vm.patch
|
||||
Patch160: virtinst-xen-drive-type.patch
|
||||
Patch161: virtinst-xenbus-disk-index-fix.patch
|
||||
Patch162: virtinst-refresh_before_fetch_pool.patch
|
||||
@ -112,6 +94,7 @@ Requires: python-libguestfs
|
||||
%endif
|
||||
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: gtk2-tools
|
||||
BuildRequires: intltool
|
||||
BuildRequires: perl
|
||||
BuildRequires: python
|
||||
@ -158,6 +141,7 @@ Group: System/Monitoring
|
||||
|
||||
Requires: virt-manager-common = %{verrel}
|
||||
|
||||
Requires: python-requests
|
||||
Provides: python-virtinst
|
||||
Provides: virt-clone
|
||||
Provides: virt-convert
|
||||
@ -173,22 +157,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
|
||||
# SUSE Only
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
@ -205,7 +173,6 @@ machine).
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch120 -p1
|
||||
%patch121 -p1
|
||||
%patch122 -p1
|
||||
@ -217,12 +184,11 @@ machine).
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
# Bug Fixes
|
||||
%patch150 -p1
|
||||
%patch150 -p1 Removed upstream
|
||||
%patch151 -p1
|
||||
%patch152 -p1
|
||||
%patch153 -p1
|
||||
%patch154 -p1
|
||||
%patch155 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
@ -308,9 +274,11 @@ fi
|
||||
%dir /usr/share/icons/hicolor/*/apps
|
||||
%{_datadir}/%{name}/icons
|
||||
%{_datadir}/icons/hicolor/*/apps/*
|
||||
%{_datadir}/icons/hicolor/icon-theme.cache
|
||||
|
||||
%{_datadir}/appdata/%{name}.appdata.xml
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/glib-2.0/schemas/gschemas.compiled
|
||||
%{_datadir}/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.xml
|
||||
%{_datadir}/GConf/gsettings/org.virt-manager.virt-manager.convert
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
References: bnc#885308
|
||||
Enhancement to add a virtio RNG device to non windows VMs.
|
||||
Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
Index: virt-manager-1.3.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
--- virt-manager-1.3.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.3.0/virtinst/guest.py
|
||||
@@ -54,6 +54,7 @@ from .pm import PM
|
||||
from .seclabel import Seclabel
|
||||
from .xmlbuilder import XMLBuilder, XMLProperty, XMLChildProperty
|
||||
@ -12,7 +12,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
|
||||
|
||||
class Guest(XMLBuilder):
|
||||
@@ -674,6 +675,15 @@ class Guest(XMLBuilder):
|
||||
@@ -711,6 +712,15 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
self.add_device(VirtualGraphics(self.conn))
|
||||
|
||||
@ -28,7 +28,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
def add_default_devices(self):
|
||||
self.add_default_graphics()
|
||||
self.add_default_video_device()
|
||||
@@ -681,6 +691,7 @@ class Guest(XMLBuilder):
|
||||
@@ -718,6 +728,7 @@ class Guest(XMLBuilder):
|
||||
self.add_default_console_device()
|
||||
self.add_default_usb_controller()
|
||||
self.add_default_channels()
|
||||
|
@ -1,10 +1,10 @@
|
||||
Reference: bnc#869024
|
||||
Add s390x and ppc64 support
|
||||
Index: virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
@@ -374,6 +374,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
--- virt-manager-1.3.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
@@ -427,6 +427,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
arch = "i586"
|
||||
elif cbuf.find("s390x") != -1:
|
||||
arch = "s390x"
|
||||
@ -15,7 +15,7 @@ Index: virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
|
||||
dclass = GenericDistro
|
||||
if distribution:
|
||||
@@ -943,10 +947,12 @@ class SuseDistro(Distro):
|
||||
@@ -966,10 +970,12 @@ class SuseDistro(Distro):
|
||||
oldkern += "64"
|
||||
oldinit += "64"
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Reference: bnc#885380
|
||||
Allow Xen based VMs to default to using qcow2
|
||||
Index: virt-manager-1.1.0/virtinst/support.py
|
||||
Index: virt-manager-1.3.0/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/support.py
|
||||
+++ virt-manager-1.1.0/virtinst/support.py
|
||||
--- virt-manager-1.3.0.orig/virtinst/support.py
|
||||
+++ virt-manager-1.3.0/virtinst/support.py
|
||||
@@ -258,7 +258,7 @@ SUPPORT_CONN_DISK_SD = _make(version="1.
|
||||
# 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,10 +1,10 @@
|
||||
Enhancement to correctly detect Open Enterprise Server media is
|
||||
selected as the installation source.
|
||||
Index: virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
@@ -386,6 +386,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
--- virt-manager-1.3.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
@@ -439,6 +439,10 @@ def _distroFromSUSEContent(fetcher, arch
|
||||
dclass = SLEDDistro
|
||||
if distro_version is None:
|
||||
distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]]
|
||||
|
@ -3,14 +3,14 @@ Enhancement for the following GUI wizard installation options.
|
||||
is the default
|
||||
2) Under 'Network selection' default to a bridge that has an actual
|
||||
IP address if available (not just the first one found).
|
||||
Index: virt-manager-1.1.0/virtManager/create.py
|
||||
Index: virt-manager-1.3.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.1.0/virtManager/create.py
|
||||
@@ -331,7 +331,19 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.3.0/virtManager/create.py
|
||||
@@ -371,7 +371,19 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("method-local").set_active(True)
|
||||
self.widget("create-conn").set_active(-1)
|
||||
activeconn = self.populate_conn_list(urihint)
|
||||
activeconn = self._populate_conn_list(urihint)
|
||||
- self.widget("arch-expander").set_expanded(False)
|
||||
+ # For Xen have the expander open so users can see PV is the default
|
||||
+ if activeconn and activeconn.is_xen():
|
||||
@ -26,12 +26,12 @@ Index: virt-manager-1.1.0/virtManager/create.py
|
||||
+ self.widget("method-local").set_active(False)
|
||||
+ self.widget("method-tree").set_active(True)
|
||||
|
||||
try:
|
||||
self.set_conn(activeconn, force_validate=True)
|
||||
Index: virt-manager-1.1.0/virtManager/netlist.py
|
||||
if self._set_conn(activeconn) is False:
|
||||
return False
|
||||
Index: virt-manager-1.3.0/virtManager/netlist.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.1.0/virtManager/netlist.py
|
||||
--- virt-manager-1.3.0.orig/virtManager/netlist.py
|
||||
+++ virt-manager-1.3.0/virtManager/netlist.py
|
||||
@@ -167,9 +167,19 @@ class vmmNetworkList(vmmGObjectUI):
|
||||
return rows, vnet_bridges, default_label
|
||||
|
||||
@ -70,4 +70,4 @@ Index: virt-manager-1.1.0/virtManager/netlist.py
|
||||
+
|
||||
return rows, default_label
|
||||
|
||||
def _populate_network_list(self):
|
||||
def _populate_network_model(self, model):
|
||||
|
@ -5,14 +5,14 @@ A fix for accessing nfs mounted media. A comment in the code states,
|
||||
and carry the latter form around internally"
|
||||
We need the RFC version to work correctly whereas redhat's anaconda
|
||||
needs their own modified version.
|
||||
Index: virt-manager-1.2.1/virtinst/util.py
|
||||
Index: virt-manager-1.3.0/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.2.1/virtinst/util.py
|
||||
@@ -561,3 +561,22 @@ def getInstallRepos(enabled_sources_only
|
||||
zypper_output.insert(0, dom0_inst_source)
|
||||
--- virt-manager-1.3.0.orig/virtinst/util.py
|
||||
+++ virt-manager-1.3.0/virtinst/util.py
|
||||
@@ -552,3 +552,22 @@ def getInstallRepos(enabled_sources_only
|
||||
return (index_dom0, zypper_output)
|
||||
|
||||
|
||||
+def sanitize_url(url):
|
||||
+ """
|
||||
+ Do nothing for http or ftp, but make sure nfs is in the expected format
|
||||
@ -32,11 +32,11 @@ Index: virt-manager-1.2.1/virtinst/util.py
|
||||
+
|
||||
+ return url
|
||||
+
|
||||
Index: virt-manager-1.2.1/virtinst/distroinstaller.py
|
||||
Index: virt-manager-1.3.0/virtinst/distroinstaller.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.2.1/virtinst/distroinstaller.py
|
||||
@@ -51,6 +51,8 @@ def _sanitize_url(url):
|
||||
--- virt-manager-1.3.0.orig/virtinst/distroinstaller.py
|
||||
+++ virt-manager-1.3.0/virtinst/distroinstaller.py
|
||||
@@ -49,6 +49,8 @@ def _sanitize_url(url):
|
||||
"""
|
||||
Do nothing for http or ftp, but make sure nfs is in the expected format
|
||||
"""
|
||||
@ -45,25 +45,25 @@ Index: virt-manager-1.2.1/virtinst/distroinstaller.py
|
||||
if url.startswith("nfs://"):
|
||||
# Convert RFC compliant NFS nfs://server/path/to/distro
|
||||
# to what mount/anaconda expect nfs:server:/path/to/distro
|
||||
Index: virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
Index: virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.2.1/virtinst/urlfetcher.py
|
||||
@@ -33,6 +33,7 @@ import urlparse
|
||||
import urlgrabber.grabber as grabber
|
||||
--- virt-manager-1.3.0.orig/virtinst/urlfetcher.py
|
||||
+++ virt-manager-1.3.0/virtinst/urlfetcher.py
|
||||
@@ -33,6 +33,7 @@ import urllib2
|
||||
import urlparse
|
||||
|
||||
from .osdict import OSDB
|
||||
+from virtinst import util
|
||||
|
||||
|
||||
#########################################################################
|
||||
@@ -219,7 +220,8 @@ class _MountedImageFetcher(_LocalImageFe
|
||||
@@ -295,7 +296,8 @@ class _MountedURLFetcher(_LocalURLFetche
|
||||
|
||||
logging.debug("Preparing mount at " + self.srcdir)
|
||||
logging.debug("Preparing mount at " + self._srcdir)
|
||||
if self.location.startswith("nfs:"):
|
||||
- cmd = [mountcmd, "-o", "ro", self.location[4:], self.srcdir]
|
||||
- cmd = [mountcmd, "-o", "ro", self.location[4:], self._srcdir]
|
||||
+ url = util.sanitize_url(self.location)
|
||||
+ cmd = [mountcmd, "-o", "ro", url[4:], self.srcdir]
|
||||
+ cmd = [mountcmd, "-o", "ro", url[4:], self._srcdir]
|
||||
else:
|
||||
if stat.S_ISBLK(os.stat(self.location)[stat.ST_MODE]):
|
||||
mountopt = "ro"
|
||||
|
@ -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
|
||||
newer suse distros like SLE12 and openSUSE 13.2.
|
||||
Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
Index: virt-manager-1.3.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
@@ -358,8 +358,19 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.3.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.3.0/virtinst/guest.py
|
||||
@@ -365,8 +365,19 @@ class Guest(XMLBuilder):
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
not self.os.kernel):
|
||||
@ -28,10 +28,10 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
|
||||
return self.get_xml_config()
|
||||
|
||||
Index: virt-manager-1.2.1/virtinst/installer.py
|
||||
Index: virt-manager-1.3.0/virtinst/installer.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/installer.py
|
||||
+++ virt-manager-1.2.1/virtinst/installer.py
|
||||
--- virt-manager-1.3.0.orig/virtinst/installer.py
|
||||
+++ virt-manager-1.3.0/virtinst/installer.py
|
||||
@@ -99,7 +99,7 @@ class Installer(object):
|
||||
break
|
||||
return bootorder
|
||||
|
@ -13,14 +13,14 @@ status affects the hypervisor connection.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-1.1.0/virtinst/pollhelpers.py
|
||||
Index: virt-manager-1.3.0/virtinst/pollhelpers.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-1.1.0/virtinst/pollhelpers.py
|
||||
@@ -132,6 +132,19 @@ def fetch_pools(backend, origmap, build_
|
||||
--- virt-manager-1.3.0.orig/virtinst/pollhelpers.py
|
||||
+++ virt-manager-1.3.0/virtinst/pollhelpers.py
|
||||
@@ -133,6 +133,19 @@ def fetch_pools(backend, origmap, build_
|
||||
|
||||
if backend.check_support(
|
||||
backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not _force_old_poll:
|
||||
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
|
||||
|
@ -3,10 +3,10 @@ We don't ship unar with any suse distro (not even in Factory).
|
||||
Until we do, keep this patch to execute the correct archiver
|
||||
program.
|
||||
|
||||
Index: virt-manager-1.2.1/virtconv/formats.py
|
||||
Index: virt-manager-1.3.0/virtconv/formats.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtconv/formats.py
|
||||
+++ virt-manager-1.2.1/virtconv/formats.py
|
||||
--- virt-manager-1.3.0.orig/virtconv/formats.py
|
||||
+++ virt-manager-1.3.0/virtconv/formats.py
|
||||
@@ -118,6 +118,8 @@ def _find_input(input_file, parser, prin
|
||||
try:
|
||||
ext = os.path.splitext(input_file)[1]
|
||||
|
@ -1,9 +1,9 @@
|
||||
Reference: bnc#869024
|
||||
Disable graphics on s390x
|
||||
Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
Index: virt-manager-1.3.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
--- virt-manager-1.3.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.3.0/virtinst/guest.py
|
||||
@@ -123,7 +123,10 @@ class Guest(XMLBuilder):
|
||||
self.skip_default_channel = False
|
||||
self.skip_default_sound = False
|
||||
@ -16,13 +16,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY
|
||||
|
||||
self.__os_object = None
|
||||
@@ -623,11 +626,13 @@ class Guest(XMLBuilder):
|
||||
self.conn.check_support(
|
||||
self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)):
|
||||
dev.target_type = "virtio"
|
||||
+ elif self.os.is_s390x():
|
||||
+ dev.target_type = "sclp"
|
||||
|
||||
@@ -662,7 +665,7 @@ class Guest(XMLBuilder):
|
||||
self.add_device(dev)
|
||||
|
||||
def add_default_video_device(self):
|
||||
@ -31,7 +25,16 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
return
|
||||
if self.get_devices("video"):
|
||||
return
|
||||
@@ -672,7 +677,7 @@ class Guest(XMLBuilder):
|
||||
@@ -700,6 +703,8 @@ class Guest(XMLBuilder):
|
||||
dev.target_type = "virtio"
|
||||
dev.target_name = dev.CHANNEL_NAME_QEMUGA
|
||||
self.add_device(dev)
|
||||
+ elif self.os.is_s390x():
|
||||
+ dev.target_type = "sclp"
|
||||
|
||||
def add_default_graphics(self):
|
||||
if self.skip_default_graphics:
|
||||
@@ -708,7 +713,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container():
|
||||
return
|
||||
@ -40,7 +43,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
return
|
||||
self.add_device(VirtualGraphics(self.conn))
|
||||
|
||||
@@ -1000,7 +1005,7 @@ class Guest(XMLBuilder):
|
||||
@@ -1052,7 +1057,7 @@ class Guest(XMLBuilder):
|
||||
if self._hv_only_supports_virtio():
|
||||
return True
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Set cache mode for target installation disk to unsafe for better
|
||||
performance.
|
||||
Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
Index: virt-manager-1.3.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
--- virt-manager-1.3.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.3.0/virtinst/guest.py
|
||||
@@ -53,6 +53,7 @@ from .osxml import OSXML
|
||||
from .pm import PM
|
||||
from .seclabel import Seclabel
|
||||
@ -12,7 +12,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
|
||||
|
||||
class Guest(XMLBuilder):
|
||||
@@ -354,6 +355,17 @@ class Guest(XMLBuilder):
|
||||
@@ -361,6 +362,17 @@ class Guest(XMLBuilder):
|
||||
|
||||
self._set_osxml_defaults()
|
||||
|
||||
@ -30,7 +30,7 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
self.bootloader = None
|
||||
if (not install and
|
||||
self.os.is_xenpv() and
|
||||
@@ -372,7 +384,10 @@ class Guest(XMLBuilder):
|
||||
@@ -379,7 +391,10 @@ class Guest(XMLBuilder):
|
||||
self.bootloader = "/usr/bin/pygrub"
|
||||
self.os.clear()
|
||||
|
||||
@ -41,4 +41,4 @@ Index: virt-manager-1.2.1/virtinst/guest.py
|
||||
+ return xml_config
|
||||
|
||||
|
||||
##############
|
||||
###########################
|
||||
|
@ -1,19 +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-1.2.1/virtinst/guest.py
|
||||
Index: virt-manager-1.3.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.2.1/virtinst/guest.py
|
||||
@@ -19,6 +19,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301 USA.
|
||||
|
||||
+import os
|
||||
import logging
|
||||
|
||||
import urlgrabber.progress as progress
|
||||
@@ -810,14 +811,29 @@ class Guest(XMLBuilder):
|
||||
--- virt-manager-1.3.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-1.3.0/virtinst/guest.py
|
||||
@@ -849,14 +849,29 @@ class Guest(XMLBuilder):
|
||||
self.emulator = None
|
||||
return
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to add ocfs2 as a supported FS type
|
||||
Index: virt-manager-1.2.1/virtinst/storage.py
|
||||
Index: virt-manager-1.3.0/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.2.1/virtinst/storage.py
|
||||
@@ -449,7 +449,7 @@ class StoragePool(_StorageObject):
|
||||
--- virt-manager-1.3.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.3.0/virtinst/storage.py
|
||||
@@ -448,7 +448,7 @@ class StoragePool(_StorageObject):
|
||||
def list_formats(self):
|
||||
if self.type == self.TYPE_FS:
|
||||
return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf",
|
||||
|
@ -4,11 +4,11 @@ issue on btrfs.
|
||||
|
||||
Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
|
||||
Index: virt-manager-1.2.1/virtinst/storage.py
|
||||
Index: virt-manager-1.3.0/virtinst/storage.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.2.1/virtinst/storage.py
|
||||
@@ -718,6 +718,11 @@ class StorageVolume(_StorageObject):
|
||||
--- virt-manager-1.3.0.orig/virtinst/storage.py
|
||||
+++ virt-manager-1.3.0/virtinst/storage.py
|
||||
@@ -716,6 +716,11 @@ class StorageVolume(_StorageObject):
|
||||
lazy_refcounts = XMLProperty("./target/features/lazy_refcounts",
|
||||
is_bool=True, default_cb=_lazy_refcounts_default_cb)
|
||||
|
||||
|
@ -2,27 +2,14 @@ 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-1.1.0/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.3.0/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.1.0/virtinst/devicedisk.py
|
||||
@@ -572,6 +572,12 @@ class VirtualDisk(VirtualDevice):
|
||||
return None
|
||||
if self.conn.is_qemu():
|
||||
return self.DRIVER_QEMU
|
||||
+ else:
|
||||
+ drvtypes = ['qcow2', 'vmdk']
|
||||
+ if self.type in drvtypes:
|
||||
+ return 'tap'
|
||||
+ else:
|
||||
+ return self.DRIVER_QEMU
|
||||
return None
|
||||
|
||||
def _get_default_driver_type(self):
|
||||
@@ -585,6 +591,8 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.3.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.3.0/virtinst/devicedisk.py
|
||||
@@ -557,6 +557,8 @@ class VirtualDisk(VirtualDevice):
|
||||
http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
|
||||
"""
|
||||
if self.driver_name != self.DRIVER_QEMU:
|
||||
if self.driver_name != self.DRIVER_NAME_QEMU:
|
||||
+ if self.driver_name and self.type != 'file':
|
||||
+ return self.type
|
||||
return None
|
||||
|
@ -6,11 +6,11 @@ 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-1.2.1/virtinst/devicedisk.py
|
||||
Index: virt-manager-1.3.0/virtinst/devicedisk.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.2.1/virtinst/devicedisk.py
|
||||
@@ -1015,6 +1015,17 @@ class VirtualDisk(VirtualDevice):
|
||||
--- virt-manager-1.3.0.orig/virtinst/devicedisk.py
|
||||
+++ virt-manager-1.3.0/virtinst/devicedisk.py
|
||||
@@ -976,6 +976,17 @@ class VirtualDisk(VirtualDevice):
|
||||
@rtype C{str}
|
||||
"""
|
||||
prefix, maxnode = self.get_target_prefix(skip_targets)
|
||||
@ -28,7 +28,7 @@ Index: virt-manager-1.2.1/virtinst/devicedisk.py
|
||||
skip_targets = [t for t in skip_targets if t and t.startswith(prefix)]
|
||||
skip_targets.sort()
|
||||
|
||||
@@ -1028,7 +1039,12 @@ class VirtualDisk(VirtualDevice):
|
||||
@@ -989,7 +1000,12 @@ class VirtualDisk(VirtualDevice):
|
||||
ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7)
|
||||
|
||||
for i in ran:
|
||||
|
@ -1,10 +1,10 @@
|
||||
Enhancement for when no hypervisor can be found locally it opens
|
||||
the new connection dialog.
|
||||
Index: virt-manager-1.2.1/virtManager/engine.py
|
||||
Index: virt-manager-1.3.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.2.1/virtManager/engine.py
|
||||
@@ -199,9 +199,6 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.3.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.3.0/virtManager/engine.py
|
||||
@@ -207,9 +207,6 @@ class vmmEngine(vmmGObject):
|
||||
except:
|
||||
logging.exception("Error talking to PackageKit")
|
||||
|
||||
@ -14,7 +14,7 @@ Index: virt-manager-1.2.1/virtManager/engine.py
|
||||
warnmsg = _("The 'libvirtd' service will need to be started.\n\n"
|
||||
"After that, virt-manager will connect to libvirt on\n"
|
||||
"the next application start up.")
|
||||
@@ -215,7 +212,11 @@ class vmmEngine(vmmGObject):
|
||||
@@ -223,7 +220,11 @@ class vmmEngine(vmmGObject):
|
||||
if not connected and do_start:
|
||||
manager.err.ok(_("Libvirt service must be started"), warnmsg)
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
References: bsc#919692
|
||||
Because openSUSE repos combine 32 and 64 bit sources we need to
|
||||
continue showing the 'Architecture' pop-up.
|
||||
Index: virt-manager-1.2.1/virtManager/create.py
|
||||
Index: virt-manager-1.3.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.1/virtManager/create.py
|
||||
@@ -689,11 +689,6 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.3.0/virtManager/create.py
|
||||
@@ -775,11 +775,6 @@ class vmmCreate(vmmGObjectUI):
|
||||
for guest in self.conn.caps.guests:
|
||||
if guest.os_type == self.capsinfo.os_type:
|
||||
if guest.os_type == self._capsinfo.os_type:
|
||||
archs.append(guest.arch)
|
||||
-
|
||||
- # Combine x86/i686 to avoid confusion
|
||||
|
@ -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-1.2.1/virtManager/manager.py
|
||||
Index: virt-manager-1.3.0/virtManager/manager.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.2.1/virtManager/manager.py
|
||||
@@ -859,7 +859,7 @@ class vmmManager(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/manager.py
|
||||
+++ virt-manager-1.3.0/virtManager/manager.py
|
||||
@@ -857,7 +857,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-1.2.1/virtManager/manager.py
|
||||
|
||||
if vm and vm.managedsave_supported:
|
||||
self.change_run_text(vm.has_managed_save())
|
||||
Index: virt-manager-1.2.1/virtManager/vmmenu.py
|
||||
Index: virt-manager-1.3.0/virtManager/vmmenu.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.2.1/virtManager/vmmenu.py
|
||||
--- virt-manager-1.3.0.orig/virtManager/vmmenu.py
|
||||
+++ virt-manager-1.3.0/virtManager/vmmenu.py
|
||||
@@ -31,6 +31,7 @@ class _VMMenu(Gtk.Menu):
|
||||
self._parent = src
|
||||
self._current_vm_cb = current_vm_cb
|
||||
|
@ -1,74 +0,0 @@
|
||||
Enhancement to switch the label from 'Kickstart' to 'Autoyast' when
|
||||
a suse distro is selected.
|
||||
Index: virt-manager-1.2.1/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.1/virtManager/create.py
|
||||
@@ -1257,11 +1257,34 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.populate_os_type_model()
|
||||
return
|
||||
|
||||
+ def _update_kickstart_label(self):
|
||||
+ # Update label based on os version selected to either kickstart or autoyast
|
||||
+ combo = self.widget("install-os-version")
|
||||
+ if combo.get_active() != -1:
|
||||
+ tree_iter = combo.get_active_iter()
|
||||
+ if tree_iter != None:
|
||||
+ model = combo.get_model()
|
||||
+ unused, os_name = model[tree_iter][:2]
|
||||
+ else:
|
||||
+ entry = combo.get_child()
|
||||
+ os_name = entry.get_text()
|
||||
+ if os_name:
|
||||
+ os_name = os_name.lower()
|
||||
+ label = self.widget("kickstart-url-label")
|
||||
+ if label and os_name:
|
||||
+ if os_name.startswith('opensuse') or os_name.startswith('suse') or os_name.startswith('novell'):
|
||||
+ label.set_text("AutoYaST URL:")
|
||||
+ else:
|
||||
+ label.set_text("Kickstart URL:")
|
||||
+ label.show()
|
||||
+
|
||||
def change_os_version(self, box):
|
||||
show_all = uiutil.get_list_selection(box, column=3)
|
||||
if not show_all:
|
||||
return
|
||||
|
||||
+ self._update_kickstart_label()
|
||||
+
|
||||
# 'show all OS' was clicked
|
||||
# Get previous type to reselect it later
|
||||
type_row = self._selected_os_row()
|
||||
@@ -1626,7 +1649,10 @@ class vmmCreate(vmmGObjectUI):
|
||||
if extra:
|
||||
extraargs += extra
|
||||
if ks:
|
||||
- extraargs += " ks=%s" % ks
|
||||
+ if variant.startswith('opensuse') or variant.startswith('sle') or variant.startswith('oes'):
|
||||
+ extraargs += " autoyast=%s" % ks
|
||||
+ else:
|
||||
+ extraargs += " ks=%s" % ks
|
||||
|
||||
if extraargs:
|
||||
self.guest.installer.extraargs = extraargs
|
||||
@@ -2069,6 +2095,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
dl = self.set_os_val(self.widget("install-os-type"), distro_type)
|
||||
vl = self.set_os_val(self.widget("install-os-version"), distro_var)
|
||||
self.set_distro_labels(dl, vl)
|
||||
+ self._update_kickstart_label()
|
||||
|
||||
def check_detection(self, idx, forward):
|
||||
results = None
|
||||
Index: virt-manager-1.2.1/ui/create.ui
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/ui/create.ui
|
||||
+++ virt-manager-1.2.1/ui/create.ui
|
||||
@@ -843,7 +843,7 @@ bar</property>
|
||||
<property name="column_spacing">6</property>
|
||||
<property name="row_spacing">4</property>
|
||||
<child>
|
||||
- <object class="GtkLabel" id="label25">
|
||||
+ <object class="GtkLabel" id="kickstart-url-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Kickstart URL:</property>
|
@ -1,10 +1,10 @@
|
||||
References: bnc#907958
|
||||
Sanity check for those who forget '-X' on ssh and try to start virt-manager
|
||||
Index: virt-manager-1.2.1/virt-manager
|
||||
Index: virt-manager-1.3.0/virt-manager
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virt-manager
|
||||
+++ virt-manager-1.2.1/virt-manager
|
||||
@@ -182,8 +182,11 @@ def main():
|
||||
--- virt-manager-1.3.0.orig/virt-manager
|
||||
+++ virt-manager-1.3.0/virt-manager
|
||||
@@ -171,8 +171,11 @@ def main():
|
||||
from gi.repository import Gtk
|
||||
leftovers = sys.argv[1:]
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to default to the host os version when creating a VM
|
||||
and media detection of the install source is turned off.
|
||||
Index: virt-manager-1.2.1/virtManager/create.py
|
||||
Index: virt-manager-1.3.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.1/virtManager/create.py
|
||||
--- virt-manager-1.3.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.3.0/virtManager/create.py
|
||||
@@ -21,6 +21,8 @@
|
||||
import logging
|
||||
import threading
|
||||
@ -13,7 +13,7 @@ Index: virt-manager-1.2.1/virtManager/create.py
|
||||
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Gtk
|
||||
@@ -843,7 +845,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -963,7 +965,7 @@ class vmmCreate(vmmGObjectUI):
|
||||
preferred = self.config.preferred_distros
|
||||
variants = virtinst.OSDB.list_os(typename=_type, sortpref=preferred)
|
||||
supportl = virtinst.OSDB.list_os(typename=_type, sortpref=preferred,
|
||||
@ -22,9 +22,9 @@ Index: virt-manager-1.2.1/virtManager/create.py
|
||||
|
||||
for v in variants:
|
||||
supported = v in supportl or v.name == "generic"
|
||||
@@ -1174,6 +1176,53 @@ class vmmCreate(vmmGObjectUI):
|
||||
return
|
||||
self.start_detection(forward=forward)
|
||||
@@ -1320,6 +1322,53 @@ class vmmCreate(vmmGObjectUI):
|
||||
def _cdrom_changed(self, src):
|
||||
self._detectable_media_widget_changed(src)
|
||||
|
||||
+ def _lookup_host_os(self):
|
||||
+ if sys.platform == 'linux2':
|
||||
@ -73,13 +73,13 @@ Index: virt-manager-1.2.1/virtManager/create.py
|
||||
+ break
|
||||
+ index += 1
|
||||
+
|
||||
def toggle_detect_os(self, src):
|
||||
def _toggle_detect_os(self, src):
|
||||
dodetect = src.get_active()
|
||||
|
||||
@@ -1186,6 +1235,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
@@ -1332,6 +1381,8 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-os-version-entry").set_text("")
|
||||
self.mediaDetected = False
|
||||
self.detect_media_os()
|
||||
self._os_already_detected_for_media = False
|
||||
self._start_detect_os_if_needed()
|
||||
+ else:
|
||||
+ self.detect_host_os()
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to default to PV instead of HVM on Xen host.
|
||||
Index: virt-manager-1.2.1/virtManager/create.py
|
||||
Index: virt-manager-1.3.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.1/virtManager/create.py
|
||||
@@ -878,7 +878,12 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.3.0/virtManager/create.py
|
||||
@@ -685,7 +685,12 @@ class vmmCreate(vmmGObjectUI):
|
||||
if gtype is None:
|
||||
# If none specified, prefer HVM so install options aren't limited
|
||||
# with a default PV choice.
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: virt-manager-1.1.0/data/virt-manager.desktop.in
|
||||
Index: virt-manager-1.3.0/data/virt-manager.desktop.in
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/data/virt-manager.desktop.in
|
||||
+++ virt-manager-1.1.0/data/virt-manager.desktop.in
|
||||
--- virt-manager-1.3.0.orig/data/virt-manager.desktop.in
|
||||
+++ virt-manager-1.3.0/data/virt-manager.desktop.in
|
||||
@@ -1,8 +1,19 @@
|
||||
[Desktop Entry]
|
||||
_Name=Virtual Machine Manager
|
||||
|
@ -1,11 +1,11 @@
|
||||
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-1.2.1/virtManager/delete.py
|
||||
Index: virt-manager-1.3.0/virtManager/delete.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/delete.py
|
||||
+++ virt-manager-1.2.1/virtManager/delete.py
|
||||
@@ -253,7 +253,7 @@ def populate_storage_list(storage_list,
|
||||
--- virt-manager-1.3.0.orig/virtManager/delete.py
|
||||
+++ virt-manager-1.3.0/virtManager/delete.py
|
||||
@@ -242,7 +242,7 @@ def populate_storage_list(storage_list,
|
||||
diskdata.append(("dtb", vm.get_xmlobj().os.dtb, True, False))
|
||||
|
||||
for target, path, ro, shared in diskdata:
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement to add the eepro100 NIC for KVM
|
||||
Index: virt-manager-1.2.1/virtManager/addhardware.py
|
||||
Index: virt-manager-1.3.0/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.2.1/virtManager/addhardware.py
|
||||
@@ -571,6 +571,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.3.0/virtManager/addhardware.py
|
||||
@@ -565,6 +565,7 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
if vm.is_hvm():
|
||||
mod_list = []
|
||||
if vm.get_hv_type() in ["kvm", "qemu", "test"]:
|
||||
|
@ -2,11 +2,11 @@ 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-1.2.1/virtManager/connection.py
|
||||
Index: virt-manager-1.3.0/virtManager/connection.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.2.1/virtManager/connection.py
|
||||
@@ -906,7 +906,7 @@ class vmmConnection(vmmGObject):
|
||||
--- virt-manager-1.3.0.orig/virtManager/connection.py
|
||||
+++ virt-manager-1.3.0/virtManager/connection.py
|
||||
@@ -945,7 +945,7 @@ class vmmConnection(vmmGObject):
|
||||
self.caps.get_cpu_values("x86_64")
|
||||
|
||||
try:
|
||||
|
@ -1,9 +1,9 @@
|
||||
Enhancement adding Send Keys for mostly NetWare and also Windows
|
||||
Index: virt-manager-1.1.0/virtManager/console.py
|
||||
Index: virt-manager-1.3.0/virtManager/console.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/console.py
|
||||
+++ virt-manager-1.1.0/virtManager/console.py
|
||||
@@ -140,6 +140,16 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/console.py
|
||||
+++ virt-manager-1.3.0/virtManager/console.py
|
||||
@@ -141,6 +141,16 @@ class vmmConsolePages(vmmGObjectUI):
|
||||
make_item("Ctrl+Alt+_Backspace", ["Control_L", "Alt_L", "BackSpace"])
|
||||
make_item("Ctrl+Alt+_Delete", ["Control_L", "Alt_L", "Delete"])
|
||||
menu.add(Gtk.SeparatorMenuItem())
|
||||
|
@ -1,9 +1,9 @@
|
||||
/usr/bin/kvm doesn't exist on suse distros so check instead for
|
||||
/usr/bin/qemu-system-x86_64
|
||||
Index: virt-manager-1.1.0/virtManager/connect.py
|
||||
Index: virt-manager-1.3.0/virtManager/connect.py
|
||||
===================================================================
|
||||
--- virt-manager-1.1.0.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.1.0/virtManager/connect.py
|
||||
--- virt-manager-1.3.0.orig/virtManager/connect.py
|
||||
+++ virt-manager-1.3.0/virtManager/connect.py
|
||||
@@ -114,7 +114,7 @@ class vmmConnect(vmmGObjectUI):
|
||||
|
||||
if (os.path.exists("/usr/bin/qemu") or
|
||||
|
@ -1,8 +1,8 @@
|
||||
Use the correct systemd to start libvirt.
|
||||
Index: virt-manager-1.2.0/virtManager/packageutils.py
|
||||
Index: virt-manager-1.3.0/virtManager/packageutils.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.0.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.2.0/virtManager/packageutils.py
|
||||
--- virt-manager-1.3.0.orig/virtManager/packageutils.py
|
||||
+++ virt-manager-1.3.0/virtManager/packageutils.py
|
||||
@@ -154,8 +154,8 @@ def start_libvirtd():
|
||||
logging.debug("libvirtd not running, asking system-config-services "
|
||||
"to start it")
|
||||
|
@ -2,11 +2,11 @@ Reference: bnc#867749
|
||||
When booted into the native kernel don't ask libvirt to make a
|
||||
local Xen connection and likewise when booted into the Xen kernel
|
||||
don't ask libvirt to connect to the local qemu.
|
||||
Index: virt-manager-1.2.1/virtManager/engine.py
|
||||
Index: virt-manager-1.3.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.2.1/virtManager/engine.py
|
||||
@@ -223,9 +223,22 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.3.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.3.0/virtManager/engine.py
|
||||
@@ -231,9 +231,22 @@ class vmmEngine(vmmGObject):
|
||||
if not uris:
|
||||
return
|
||||
logging.debug("About to connect to uris %s", uris)
|
||||
|
@ -4,11 +4,11 @@ This is not a normal situation on a suse distro. Split out required
|
||||
libvirt packages (kvm vs xen). Only install those libvirt packages
|
||||
for which the host is booted. This patch has a corresponding spec
|
||||
file change (%define libvirt_kvm_packages and %define libvirt_xen_packages).
|
||||
Index: virt-manager-1.2.1/setup.py
|
||||
Index: virt-manager-1.3.0/setup.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/setup.py
|
||||
+++ virt-manager-1.2.1/setup.py
|
||||
@@ -280,8 +280,11 @@ class configure(Command):
|
||||
--- virt-manager-1.3.0.orig/setup.py
|
||||
+++ virt-manager-1.3.0/setup.py
|
||||
@@ -299,8 +299,11 @@ class configure(distutils.core.Command):
|
||||
("prefix=", None, "installation prefix"),
|
||||
("qemu-user=", None,
|
||||
"user libvirt uses to launch qemu processes (default=root)"),
|
||||
@ -22,7 +22,7 @@ Index: virt-manager-1.2.1/setup.py
|
||||
"first run. comma separated string (default=none)"),
|
||||
("kvm-package-names=", None,
|
||||
"recommended kvm packages virt-manager will check for on first run "
|
||||
@@ -307,7 +310,8 @@ class configure(Command):
|
||||
@@ -326,7 +329,8 @@ class configure(distutils.core.Command):
|
||||
def initialize_options(self):
|
||||
self.prefix = sysprefix
|
||||
self.qemu_user = None
|
||||
@ -32,7 +32,7 @@ Index: virt-manager-1.2.1/setup.py
|
||||
self.kvm_package_names = None
|
||||
self.askpass_package_names = None
|
||||
self.preferred_distros = None
|
||||
@@ -322,8 +326,10 @@ class configure(Command):
|
||||
@@ -341,8 +345,10 @@ class configure(distutils.core.Command):
|
||||
template += "prefix = %s\n" % self.prefix
|
||||
if self.qemu_user is not None:
|
||||
template += "default_qemu_user = %s\n" % self.qemu_user
|
||||
@ -45,11 +45,11 @@ Index: virt-manager-1.2.1/setup.py
|
||||
if self.kvm_package_names is not None:
|
||||
template += "hv_packages = %s\n" % self.kvm_package_names
|
||||
if self.askpass_package_names is not None:
|
||||
Index: virt-manager-1.2.1/virtcli/cliconfig.py
|
||||
Index: virt-manager-1.3.0/virtcli/cliconfig.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.2.1/virtcli/cliconfig.py
|
||||
@@ -84,7 +84,8 @@ class _CLIConfig(object):
|
||||
--- virt-manager-1.3.0.orig/virtcli/cliconfig.py
|
||||
+++ virt-manager-1.3.0/virtcli/cliconfig.py
|
||||
@@ -83,7 +83,8 @@ class _CLIConfig(object):
|
||||
_get_param("preferred_distros", ""))
|
||||
self.hv_packages = _split_list(_get_param("hv_packages", ""))
|
||||
self.askpass_package = _split_list(_get_param("askpass_packages", ""))
|
||||
@ -59,11 +59,11 @@ Index: virt-manager-1.2.1/virtcli/cliconfig.py
|
||||
self.default_graphics = _get_param("default_graphics", "spice")
|
||||
self.default_hvs = _split_list(_get_param("default_hvs", ""))
|
||||
|
||||
Index: virt-manager-1.2.1/virtManager/config.py
|
||||
Index: virt-manager-1.3.0/virtManager/config.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/config.py
|
||||
+++ virt-manager-1.2.1/virtManager/config.py
|
||||
@@ -165,7 +165,8 @@ class vmmConfig(object):
|
||||
--- virt-manager-1.3.0.orig/virtManager/config.py
|
||||
+++ virt-manager-1.3.0/virtManager/config.py
|
||||
@@ -172,7 +172,8 @@ class vmmConfig(object):
|
||||
self.default_qemu_user = CLIConfig.default_qemu_user
|
||||
self.preferred_distros = CLIConfig.preferred_distros
|
||||
self.hv_packages = CLIConfig.hv_packages
|
||||
@ -73,11 +73,11 @@ Index: virt-manager-1.2.1/virtManager/config.py
|
||||
self.askpass_package = CLIConfig.askpass_package
|
||||
self.default_graphics_from_config = CLIConfig.default_graphics
|
||||
self.default_hvs = CLIConfig.default_hvs
|
||||
Index: virt-manager-1.2.1/virtManager/engine.py
|
||||
Index: virt-manager-1.3.0/virtManager/engine.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.2.1/virtManager/engine.py
|
||||
@@ -189,21 +189,18 @@ class vmmEngine(vmmGObject):
|
||||
--- virt-manager-1.3.0.orig/virtManager/engine.py
|
||||
+++ virt-manager-1.3.0/virtManager/engine.py
|
||||
@@ -197,21 +197,18 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
ret = None
|
||||
try:
|
||||
|
@ -3,11 +3,11 @@ When the 'Power on virtual machine' button is double clicked,
|
||||
virt-manager issues two start commands to start the VM which
|
||||
results in a failure. There is code elsewhere to desensitize the
|
||||
button but this patch does it earlier.
|
||||
Index: virt-manager-1.2.1/virtManager/details.py
|
||||
Index: virt-manager-1.3.0/virtManager/details.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/details.py
|
||||
+++ virt-manager-1.2.1/virtManager/details.py
|
||||
@@ -1465,6 +1465,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/details.py
|
||||
+++ virt-manager-1.3.0/virtManager/details.py
|
||||
@@ -1414,6 +1414,9 @@ class vmmDetails(vmmGObjectUI):
|
||||
self.widget("details-menu-usb-redirection").set_sensitive(can_usb)
|
||||
|
||||
def control_vm_run(self, src_ignore):
|
||||
|
@ -2,48 +2,46 @@ Enhancement that gets the hosts installation location from
|
||||
install.inf and also collects the repos provided by zypper.
|
||||
These locations are then presented as potential installation
|
||||
locations when creating a VM.
|
||||
Index: virt-manager-1.2.1/virtManager/create.py
|
||||
Index: virt-manager-1.3.0/virtManager/create.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/create.py
|
||||
+++ virt-manager-1.2.1/virtManager/create.py
|
||||
@@ -359,7 +359,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
--- virt-manager-1.3.0.orig/virtManager/create.py
|
||||
+++ virt-manager-1.3.0/virtManager/create.py
|
||||
@@ -398,7 +398,13 @@ class vmmCreate(vmmGObjectUI):
|
||||
self.widget("install-url-entry").set_text("")
|
||||
self.widget("install-url-options").set_expanded(False)
|
||||
urlmodel = self.widget("install-url-box").get_model()
|
||||
ksmodel = self.widget("install-ks-box").get_model()
|
||||
- self.populate_media_model(urlmodel, self.config.get_media_urls())
|
||||
urlmodel = self.widget("install-url-combo").get_model()
|
||||
- _populate_media_model(urlmodel, self.config.get_media_urls())
|
||||
+ urllist = self.config.get_media_urls()
|
||||
+ (index, inst_repos) = util.getInstallRepos()
|
||||
+ for u in urllist:
|
||||
+ if u in inst_repos:
|
||||
+ inst_repos.remove(u)
|
||||
+ media_urllist = urllist + inst_repos
|
||||
+ self.populate_media_model(urlmodel, media_urllist)
|
||||
self.populate_media_model(ksmodel, self.config.get_kickstart_urls())
|
||||
self.set_distro_labels("-", "-", force=True)
|
||||
+ _populate_media_model(urlmodel, media_urllist)
|
||||
self._set_distro_labels("-", "-")
|
||||
|
||||
Index: virt-manager-1.2.1/virtinst/util.py
|
||||
# Install import
|
||||
Index: virt-manager-1.3.0/virtinst/util.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtinst/util.py
|
||||
+++ virt-manager-1.2.1/virtinst/util.py
|
||||
@@ -23,11 +23,14 @@ import os
|
||||
import random
|
||||
--- virt-manager-1.3.0.orig/virtinst/util.py
|
||||
+++ virt-manager-1.3.0/virtinst/util.py
|
||||
@@ -24,9 +24,12 @@ import random
|
||||
import re
|
||||
import stat
|
||||
import sys
|
||||
+import subprocess
|
||||
+from subprocess import Popen, PIPE
|
||||
|
||||
import libvirt
|
||||
|
||||
|
||||
_host_blktap_capable = None
|
||||
+_host_repo_url = None
|
||||
|
||||
|
||||
def listify(l):
|
||||
@@ -462,3 +465,99 @@ def register_libvirt_error_handler():
|
||||
ignore = userdata
|
||||
ignore = err
|
||||
libvirt.registerErrorHandler(f=libvirt_callback, ctx=None)
|
||||
if l is None:
|
||||
@@ -452,3 +455,100 @@ def make_meter(quiet):
|
||||
if quiet:
|
||||
return progress.BaseMeter()
|
||||
return progress.TextMeter(fo=sys.stdout)
|
||||
+
|
||||
+def getHostInstallSource():
|
||||
+ global _host_repo_url
|
||||
@ -140,3 +138,4 @@ Index: virt-manager-1.2.1/virtinst/util.py
|
||||
+ zypper_output.insert(0, dom0_inst_source)
|
||||
+ return (index_dom0, zypper_output)
|
||||
+
|
||||
+
|
||||
|
@ -1,26 +0,0 @@
|
||||
Reference: bnc#885380
|
||||
Xen no longer supports vmdk and never supported qed.
|
||||
See /usr/share/doc/packages/xen/misc/xl-disk-configuration.txt
|
||||
Index: virt-manager-1.2.1/virtManager/addhardware.py
|
||||
===================================================================
|
||||
--- virt-manager-1.2.1.orig/virtManager/addhardware.py
|
||||
+++ virt-manager-1.2.1/virtManager/addhardware.py
|
||||
@@ -751,11 +751,14 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
combo.set_model(model)
|
||||
uiutil.init_combo_text_column(combo, 0)
|
||||
|
||||
- formats = ["raw", "qcow2", "qed"]
|
||||
no_create_formats = []
|
||||
- if not vm.stable_defaults():
|
||||
- formats.append("vmdk")
|
||||
- no_create_formats.append("vdi")
|
||||
+ if vm.conn.is_xen():
|
||||
+ formats = ["raw", "qcow2"]
|
||||
+ else:
|
||||
+ formats = ["raw", "qcow2", "qed"]
|
||||
+ if not vm.stable_defaults():
|
||||
+ formats.append("vmdk")
|
||||
+ no_create_formats.append("vdi")
|
||||
|
||||
for m in formats:
|
||||
model.append([m])
|
Loading…
Reference in New Issue
Block a user