- jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override
001-adf30349-cli-refactor-get_prop.patch 002-60c7e778-xmlapi-add-set_prop.patch 003-5bad22e8-tests-Use-get-set_prop.patch 004-ee5f3eab-support-Add-SUPPORT_CONN_DEVICE_BOOT_ORDER.patch 005-7768eb17-cli-Add-check-if-device-boot-order-is-supported.patch 006-ecc0861c-tests-xmlparse-refactor-method-for-generating-out-file-path.patch 007-c9d070da-guest-Add-reorder_boot_order-method.patch 008-1b535940-tests-Add-test-case-for-reorder_boot_order-method.patch 009-b83a0a61-cli-Use-reorder_boot_order-for-setting-the-boot-order.patch 010-c896d19d-tests-cli-Add-boot.order-tests.patch 011-29f9f2ac-virt-xml-Add-no-define-argument.patch 012-c2bff509-tests-cli-Add-test-case-for-no-define-argument.patch 013-90b1a3ab-virt-xml-Add-support-for-starting-the-domain.patch 014-908b8e8d-tests-virt-xml-Add-test-cases-for-start-option.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=468
This commit is contained in:
parent
081f979e1e
commit
2677655bda
67
001-adf30349-cli-refactor-get_prop.patch
Normal file
67
001-adf30349-cli-refactor-get_prop.patch
Normal file
@ -0,0 +1,67 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: cli: refactor get_prop
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:31 2019 +0100
|
||||
Date: Wed Mar 6 13:13:13 2019 -0500:
|
||||
Git: adf30349c3a0cb07674bc00a4aa2f8e278c584a6
|
||||
|
||||
Refactor get_prop since it will be used in the next patches at other
|
||||
places as well.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/cli.py
|
||||
+++ virt-manager-2.1.0/virtinst/cli.py
|
||||
@@ -22,7 +22,7 @@ import libvirt
|
||||
|
||||
from virtcli import CLIConfig
|
||||
|
||||
-from . import util
|
||||
+from . import util, xmlapi
|
||||
from .devices import (Device, DeviceController, DeviceDisk, DeviceGraphics,
|
||||
DeviceInterface, DevicePanic)
|
||||
from .domain import DomainClock, DomainOs
|
||||
@@ -1223,12 +1223,7 @@ class VirtCLIParser(metaclass=InitClass)
|
||||
"""
|
||||
if not cls.propname:
|
||||
return None
|
||||
- parent = obj
|
||||
- pieces = cls.propname.split(".")
|
||||
- for piece in pieces[:-1]:
|
||||
- parent = getattr(parent, piece)
|
||||
-
|
||||
- return getattr(parent, pieces[-1])
|
||||
+ return xmlapi.get_prop(obj, cls.propname)
|
||||
|
||||
@classmethod
|
||||
def prop_is_list(cls, obj):
|
||||
Index: virt-manager-2.1.0/virtinst/xmlapi.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/xmlapi.py
|
||||
+++ virt-manager-2.1.0/virtinst/xmlapi.py
|
||||
@@ -11,6 +11,22 @@ from . import util
|
||||
# pylint: disable=protected-access
|
||||
|
||||
|
||||
+def get_prop(obj, prop_path):
|
||||
+ """Return value of attribute identified by `prop_path`
|
||||
+
|
||||
+ Look up the attribute of `obj` identified by `prop_path`
|
||||
+ (separated by "."). If any component along the path is missing an
|
||||
+ `AttributeError` is raised.
|
||||
+
|
||||
+ """
|
||||
+ parent = obj
|
||||
+ pieces = prop_path.split(".")
|
||||
+ for piece in pieces[:-1]:
|
||||
+ parent = getattr(parent, piece)
|
||||
+
|
||||
+ return getattr(parent, pieces[-1])
|
||||
+
|
||||
+
|
||||
class _XPathSegment(object):
|
||||
"""
|
||||
Class representing a single 'segment' of an xpath string. For example,
|
39
002-60c7e778-xmlapi-add-set_prop.patch
Normal file
39
002-60c7e778-xmlapi-add-set_prop.patch
Normal file
@ -0,0 +1,39 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: xmlapi: add set_prop
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:32 2019 +0100
|
||||
Date: Wed Mar 6 13:13:13 2019 -0500:
|
||||
Git: 60c7e778e306c66af2690cafea076aba15a2b233
|
||||
|
||||
Introduce set_prop helper function. It will be used in the next patch.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/virtinst/xmlapi.py b/virtinst/xmlapi.py
|
||||
index 569e47f7..49ca0fa3 100644
|
||||
--- a/virtinst/xmlapi.py
|
||||
+++ b/virtinst/xmlapi.py
|
||||
@@ -27,6 +27,22 @@ def get_prop(obj, prop_path):
|
||||
return getattr(parent, pieces[-1])
|
||||
|
||||
|
||||
+def set_prop(obj, prop_path, value):
|
||||
+ """Set value of attribute identified by `prop_path`
|
||||
+
|
||||
+ Set the attribute of `obj` identified by `prop_path` (separated by
|
||||
+ ".") to `value`. If any component along the path is missing an
|
||||
+ `AttributeError` is raised.
|
||||
+
|
||||
+ """
|
||||
+ parent = obj
|
||||
+ pieces = prop_path.split(".")
|
||||
+ for piece in pieces[:-1]:
|
||||
+ parent = getattr(parent, piece)
|
||||
+
|
||||
+ return setattr(parent, pieces[-1], value)
|
||||
+
|
||||
+
|
||||
class _XPathSegment(object):
|
||||
"""
|
||||
Class representing a single 'segment' of an xpath string. For example,
|
30
003-5bad22e8-tests-Use-get-set_prop.patch
Normal file
30
003-5bad22e8-tests-Use-get-set_prop.patch
Normal file
@ -0,0 +1,30 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: Use (get|set)_prop
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:33 2019 +0100
|
||||
Date: Wed Mar 6 13:13:13 2019 -0500:
|
||||
Git: 5bad22e8375f60bb838f7f5e0bbf58d78ffd91ee
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
|
||||
index 709bc48f..df6f022e 100644
|
||||
--- a/tests/xmlparse.py
|
||||
+++ b/tests/xmlparse.py
|
||||
@@ -68,12 +68,12 @@ class XMLParseTest(unittest.TestCase):
|
||||
Check expected initial value obj.param == initval, then
|
||||
set newval, and make sure it is returned properly
|
||||
"""
|
||||
- curval = getattr(obj, param)
|
||||
+ curval = virtinst.xmlapi.get_prop(obj, param)
|
||||
self.assertEqual(initval, curval)
|
||||
|
||||
for newval in args:
|
||||
- setattr(obj, param, newval)
|
||||
- curval = getattr(obj, param)
|
||||
+ virtinst.xmlapi.set_prop(obj, param, newval)
|
||||
+ curval = virtinst.xmlapi.get_prop(obj, param)
|
||||
self.assertEqual(newval, curval)
|
||||
|
||||
def _make_checker(self, obj):
|
@ -0,0 +1,45 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: support: Add SUPPORT_CONN_DEVICE_BOOT_ORDER
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:34 2019 +0100
|
||||
Date: Wed Mar 6 13:15:34 2019 -0500:
|
||||
Git: ee5f3eab4b52e09ae5d0e65ba42c508084f9b6d9
|
||||
|
||||
...and use it in domain.py.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virtManager/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtManager/domain.py
|
||||
+++ virt-manager-2.1.0/virtManager/domain.py
|
||||
@@ -17,6 +17,7 @@ from virtinst import Guest
|
||||
from virtinst import util
|
||||
from virtinst import DeviceController
|
||||
from virtinst import DeviceDisk
|
||||
+from virtinst import support
|
||||
|
||||
from .libvirtobject import vmmLibvirtObject
|
||||
from .libvirtenummap import LibvirtEnumMap
|
||||
@@ -1364,7 +1365,7 @@ class vmmDomain(vmmLibvirtObject):
|
||||
|
||||
def can_use_device_boot_order(self):
|
||||
# Return 'True' if guest can use new style boot device ordering
|
||||
- return self.conn.is_qemu() or self.conn.is_test()
|
||||
+ return self.conn.check_support(support.SUPPORT_CONN_DEVICE_BOOT_ORDER)
|
||||
|
||||
def get_bootable_devices(self):
|
||||
# redirdev can also be marked bootable, but it should be rarely
|
||||
Index: virt-manager-2.1.0/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/support.py
|
||||
+++ virt-manager-2.1.0/virtinst/support.py
|
||||
@@ -266,6 +266,7 @@ SUPPORT_CONN_USB3_PORTS = _make(version=
|
||||
SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _make(version="3.0.0")
|
||||
SUPPORT_CONN_QEMU_XHCI = _make(version="3.3.0", hv_version={"qemu": "2.9.0"})
|
||||
SUPPORT_CONN_VNC_NONE_AUTH = _make(hv_version={"qemu": "2.9.0"})
|
||||
+SUPPORT_CONN_DEVICE_BOOT_ORDER = _make(hv_version={"qemu": 0, "test": 0})
|
||||
|
||||
# We choose qemu 2.11.0 as the first version to target for q35 default.
|
||||
# That's not really based on anything except reasonably modern at the
|
@ -0,0 +1,80 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: cli: Add check if device boot order is supported
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:35 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: 7768eb17d98352a29f2e5b62035630483d1f3b63
|
||||
|
||||
Add a check if device boot order is supported to
|
||||
Parser(Network|Disk|Redirdev|...) and throw an exception if not.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/cli.py
|
||||
+++ virt-manager-2.1.0/virtinst/cli.py
|
||||
@@ -20,6 +20,7 @@ import types
|
||||
|
||||
import libvirt
|
||||
|
||||
+from virtinst import support
|
||||
from virtcli import CLIConfig
|
||||
|
||||
from . import util, xmlapi
|
||||
@@ -2154,6 +2155,18 @@ def _add_device_address_args(cls):
|
||||
cls.add_arg("address.base", "address.base")
|
||||
|
||||
|
||||
+def _add_device_boot_order_arg(cls):
|
||||
+ def set_boot_order_cb(self, inst, val, virtarg):
|
||||
+ val = int(val)
|
||||
+ guest = self.guest
|
||||
+ if not guest.conn.check_support(support.SUPPORT_CONN_DEVICE_BOOT_ORDER):
|
||||
+ raise NotImplementedError('Device boot order isn\'t supported by the connection')
|
||||
+
|
||||
+ inst.boot.order = val
|
||||
+ cls.set_boot_order_cb = set_boot_order_cb
|
||||
+ cls.add_arg("boot.order", "boot_order", cb=cls.set_boot_order_cb)
|
||||
+
|
||||
+
|
||||
##################
|
||||
# --disk parsing #
|
||||
##################
|
||||
@@ -2323,7 +2336,7 @@ class ParserDisk(VirtCLIParser):
|
||||
cls.add_arg("startup_policy", "startup_policy")
|
||||
cls.add_arg("read_only", "readonly", is_onoff=True)
|
||||
cls.add_arg("shareable", "shareable", is_onoff=True)
|
||||
- cls.add_arg("boot.order", "boot_order")
|
||||
+ _add_device_boot_order_arg(cls)
|
||||
|
||||
cls.add_arg("iotune_rbs", "read_bytes_sec")
|
||||
cls.add_arg("iotune_wbs", "write_bytes_sec")
|
||||
@@ -2419,7 +2432,7 @@ class ParserNetwork(VirtCLIParser):
|
||||
cls.add_arg("model", "model")
|
||||
cls.add_arg("macaddr", "mac", cb=cls.set_mac_cb)
|
||||
cls.add_arg("filterref", "filterref")
|
||||
- cls.add_arg("boot.order", "boot_order")
|
||||
+ _add_device_boot_order_arg(cls)
|
||||
cls.add_arg("link_state", "link_state",
|
||||
cb=cls.set_link_state)
|
||||
|
||||
@@ -2637,7 +2650,7 @@ class ParserRedir(VirtCLIParser):
|
||||
_add_device_address_args(cls)
|
||||
cls.add_arg("bus", "bus", ignore_default=True)
|
||||
cls.add_arg("type", "type", ignore_default=True)
|
||||
- cls.add_arg("boot.order", "boot_order")
|
||||
+ _add_device_boot_order_arg(cls)
|
||||
cls.add_arg(None, "server", cb=cls.set_server_cb)
|
||||
|
||||
|
||||
@@ -3048,7 +3061,7 @@ class ParserHostdev(VirtCLIParser):
|
||||
cb=cls.set_name_cb,
|
||||
lookup_cb=cls.name_lookup_cb)
|
||||
cls.add_arg("driver_name", "driver_name")
|
||||
- cls.add_arg("boot.order", "boot_order")
|
||||
+ _add_device_boot_order_arg(cls)
|
||||
cls.add_arg("rom_bar", "rom_bar", is_onoff=True)
|
||||
|
||||
|
@ -0,0 +1,36 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: xmlparse: refactor method for generating out file path
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:36 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: ecc0861c891263eacba8f63e9aa74797a1e7cba2
|
||||
|
||||
Refactor method for generating out file path. It will be used in a
|
||||
upcoming patch.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
|
||||
index df6f022e..2dbaf24c 100644
|
||||
--- a/tests/xmlparse.py
|
||||
+++ b/tests/xmlparse.py
|
||||
@@ -81,9 +81,17 @@ class XMLParseTest(unittest.TestCase):
|
||||
return self._set_and_check(obj, name, initval, *args)
|
||||
return check
|
||||
|
||||
+ def _gen_outfile_path(self, basename):
|
||||
+ """
|
||||
+ Returns relative path to the file containing the expected XML
|
||||
+ output
|
||||
+
|
||||
+ """
|
||||
+ return "tests/xmlparse-xml/{!s}-out.xml".format(basename)
|
||||
+
|
||||
def _get_test_content(self, basename, kvm=False):
|
||||
infile = "tests/xmlparse-xml/%s-in.xml" % basename
|
||||
- outfile = "tests/xmlparse-xml/%s-out.xml" % basename
|
||||
+ outfile = self._gen_outfile_path(basename)
|
||||
guest = virtinst.Guest(kvm and self.kvmconn or self.conn,
|
||||
parsexml=open(infile).read())
|
||||
return guest, outfile
|
59
007-c9d070da-guest-Add-reorder_boot_order-method.patch
Normal file
59
007-c9d070da-guest-Add-reorder_boot_order-method.patch
Normal file
@ -0,0 +1,59 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: guest: Add reorder_boot_order method
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:37 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: c9d070da4c3d31c3c504f52dbff775483ebf5e35
|
||||
|
||||
Add `reorder_boot_order` method to Guest class. It sets the boot order
|
||||
of the passed `dev` to `boot_index` and adapts all other boot indices
|
||||
of the guest accordingly.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.1.0/virtinst/guest.py
|
||||
@@ -257,6 +257,40 @@ class Guest(XMLBuilder):
|
||||
return self.__osinfo
|
||||
osinfo = property(_get_osinfo)
|
||||
|
||||
+ def reorder_boot_order(self, dev, boot_index):
|
||||
+ """Sets boot order of `dev` to `boot_index`
|
||||
+
|
||||
+ Sets the boot order for device `dev` to value `boot_index` and
|
||||
+ adjusts all other boot indices accordingly. Additionally the
|
||||
+ boot order defined in the 'os' node of a domain definition is
|
||||
+ disabled since they are mutually exclusive in libvirt.
|
||||
+
|
||||
+ """
|
||||
+ # unset legacy boot order
|
||||
+ self.os.bootorder = []
|
||||
+
|
||||
+ # Sort the bootable devices by boot order
|
||||
+ devs_sorted = sorted([device for device in self.get_bootable_devices()
|
||||
+ if device.boot.order is not None],
|
||||
+ key=lambda device: device.boot.order)
|
||||
+
|
||||
+ # set new boot order
|
||||
+ dev.boot.order = boot_index
|
||||
+
|
||||
+ next_boot_index = None
|
||||
+ for device in devs_sorted:
|
||||
+ if device is dev:
|
||||
+ continue
|
||||
+
|
||||
+ if device.boot.order in [next_boot_index, boot_index]:
|
||||
+ next_boot_index = device.boot.order + 1
|
||||
+ device.boot.order = next_boot_index
|
||||
+ continue
|
||||
+
|
||||
+ if next_boot_index is not None:
|
||||
+ # we found a hole so we can stop here
|
||||
+ break
|
||||
+
|
||||
def set_os_name(self, name):
|
||||
obj = OSDB.lookup_os(name)
|
||||
if obj is None:
|
@ -0,0 +1,305 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: Add test case for reorder_boot_order method
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:38 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: 1b535940028dda1c63e9c1d98a40aa11223a05b2
|
||||
|
||||
Add a test case for `reorder_boot_order`. It verifies that the OS boot
|
||||
order is removed and that all other boot order indices are adjusted
|
||||
accordingly.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/xmlparse-xml/change-devices-bootorder-fixed-out.xml b/tests/xmlparse-xml/change-devices-bootorder-fixed-out.xml
|
||||
new file mode 100644
|
||||
index 00000000..e8fa6975
|
||||
--- /dev/null
|
||||
+++ b/tests/xmlparse-xml/change-devices-bootorder-fixed-out.xml
|
||||
@@ -0,0 +1,71 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>TestGuest</name>
|
||||
+ <metadata>
|
||||
+ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||
+ <libosinfo:os id="http://fedoraproject.org/fedora/17"/>
|
||||
+ </libosinfo:libosinfo>
|
||||
+ </metadata>
|
||||
+ <currentMemory>204800</currentMemory>
|
||||
+ <memory>409600</memory>
|
||||
+ <uuid>12345678-1234-1234-1234-123456789012</uuid>
|
||||
+ <os>
|
||||
+ <type arch="i686" machine="foobar">hvm</type>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <hyperv>
|
||||
+ <vapic state="off"/>
|
||||
+ <spinlocks state="on" retries="12287"/>
|
||||
+ </hyperv>
|
||||
+ <vmport state="off"/>
|
||||
+ </features>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>destroy</on_crash>
|
||||
+ <on_lockfailure>poweroff</on_lockfailure>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
+ <disk type="file" device="floppy">
|
||||
+ <driver name="qemu" type="qcow2"/>
|
||||
+ <source file="/dev/default-pool/testvol1.img"/>
|
||||
+ <target dev="fda" bus="fdc"/>
|
||||
+ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <disk type="file" device="disk">
|
||||
+ <driver name="qemu" type="raw"/>
|
||||
+ <source file="/tmp/test.img"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+ <boot order="11"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+ <boot order="2"/>
|
||||
+ </disk>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <mac address="22:22:33:44:55:66"/>
|
||||
+ <model type="virtio"/>
|
||||
+ <boot order="3"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <controller type="usb" index="0"/>
|
||||
+ <redirdev bus="usb" type="tcp">
|
||||
+ <source mode="connect" host="localhost" service="4000"/>
|
||||
+ <boot order="4"/>
|
||||
+ </redirdev>
|
||||
+ <graphics type="vnc" display=":3.4" xauth="/tmp/.Xauthority"/>
|
||||
+ <console type="pty"/>
|
||||
+ <memballoon model="virtio"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
diff --git a/tests/xmlparse-xml/change-devices-bootorder-in.xml b/tests/xmlparse-xml/change-devices-bootorder-in.xml
|
||||
new file mode 100644
|
||||
index 00000000..66dd57a8
|
||||
--- /dev/null
|
||||
+++ b/tests/xmlparse-xml/change-devices-bootorder-in.xml
|
||||
@@ -0,0 +1,71 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>TestGuest</name>
|
||||
+ <metadata>
|
||||
+ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||
+ <libosinfo:os id="http://fedoraproject.org/fedora/17"/>
|
||||
+ </libosinfo:libosinfo>
|
||||
+ </metadata>
|
||||
+ <currentMemory>204800</currentMemory>
|
||||
+ <memory>409600</memory>
|
||||
+ <uuid>12345678-1234-1234-1234-123456789012</uuid>
|
||||
+ <os>
|
||||
+ <type arch="i686" machine="foobar">hvm</type>
|
||||
+ <boot dev="hd"/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <hyperv>
|
||||
+ <vapic state="off"/>
|
||||
+ <spinlocks state="on" retries="12287"/>
|
||||
+ </hyperv>
|
||||
+ <vmport state="off"/>
|
||||
+ </features>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>destroy</on_crash>
|
||||
+ <on_lockfailure>poweroff</on_lockfailure>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
+ <disk type="file" device="floppy">
|
||||
+ <driver name="qemu" type="qcow2"/>
|
||||
+ <source file="/dev/default-pool/testvol1.img"/>
|
||||
+ <target dev="fda" bus="fdc"/>
|
||||
+ </disk>
|
||||
+ <disk type="file" device="disk">
|
||||
+ <driver name="qemu" type="raw"/>
|
||||
+ <source file="/tmp/test.img"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <mac address="22:22:33:44:55:66"/>
|
||||
+ <model type="virtio"/>
|
||||
+ <boot order="2"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <controller type="usb" index="0"/>
|
||||
+ <redirdev bus="usb" type="tcp">
|
||||
+ <source mode="connect" host="localhost" service="4000"/>
|
||||
+ <boot order="3"/>
|
||||
+ </redirdev>
|
||||
+ <graphics type="vnc" display=":3.4" xauth="/tmp/.Xauthority"/>
|
||||
+ <console type="pty"/>
|
||||
+ <memballoon model="virtio"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
diff --git a/tests/xmlparse-xml/change-devices-bootorder-out.xml b/tests/xmlparse-xml/change-devices-bootorder-out.xml
|
||||
new file mode 100644
|
||||
index 00000000..f03bc591
|
||||
--- /dev/null
|
||||
+++ b/tests/xmlparse-xml/change-devices-bootorder-out.xml
|
||||
@@ -0,0 +1,71 @@
|
||||
+<domain type="kvm">
|
||||
+ <name>TestGuest</name>
|
||||
+ <metadata>
|
||||
+ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||
+ <libosinfo:os id="http://fedoraproject.org/fedora/17"/>
|
||||
+ </libosinfo:libosinfo>
|
||||
+ </metadata>
|
||||
+ <currentMemory>204800</currentMemory>
|
||||
+ <memory>409600</memory>
|
||||
+ <uuid>12345678-1234-1234-1234-123456789012</uuid>
|
||||
+ <os>
|
||||
+ <type arch="i686" machine="foobar">hvm</type>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <hyperv>
|
||||
+ <vapic state="off"/>
|
||||
+ <spinlocks state="on" retries="12287"/>
|
||||
+ </hyperv>
|
||||
+ <vmport state="off"/>
|
||||
+ </features>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>destroy</on_crash>
|
||||
+ <on_lockfailure>poweroff</on_lockfailure>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
+ <disk type="file" device="floppy">
|
||||
+ <driver name="qemu" type="qcow2"/>
|
||||
+ <source file="/dev/default-pool/testvol1.img"/>
|
||||
+ <target dev="fda" bus="fdc"/>
|
||||
+ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <disk type="file" device="disk">
|
||||
+ <driver name="qemu" type="raw"/>
|
||||
+ <source file="/tmp/test.img"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+ <boot order="2"/>
|
||||
+ </disk>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <mac address="22:22:33:44:55:66"/>
|
||||
+ <model type="virtio"/>
|
||||
+ <boot order="3"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <controller type="usb" index="0"/>
|
||||
+ <redirdev bus="usb" type="tcp">
|
||||
+ <source mode="connect" host="localhost" service="4000"/>
|
||||
+ <boot order="4"/>
|
||||
+ </redirdev>
|
||||
+ <graphics type="vnc" display=":3.4" xauth="/tmp/.Xauthority"/>
|
||||
+ <console type="pty"/>
|
||||
+ <memballoon model="virtio"/>
|
||||
+ </devices>
|
||||
+</domain>
|
||||
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
|
||||
index 2dbaf24c..d12522ab 100644
|
||||
--- a/tests/xmlparse.py
|
||||
+++ b/tests/xmlparse.py
|
||||
@@ -436,6 +436,55 @@ class XMLParseTest(unittest.TestCase):
|
||||
|
||||
self._alter_compare(guest.get_xml(), outfile)
|
||||
|
||||
+ def testAlterDevicesBootorder(self):
|
||||
+ basename = "change-devices-bootorder"
|
||||
+ guest, outfile = self._get_test_content(basename)
|
||||
+ disk_1 = guest.devices.disk[0]
|
||||
+ disk_2 = guest.devices.disk[1]
|
||||
+ disk_3 = guest.devices.disk[2]
|
||||
+ disk_4 = guest.devices.disk[3]
|
||||
+ iface_1 = guest.devices.interface[0]
|
||||
+ iface_2 = guest.devices.interface[1]
|
||||
+ redirdev_1 = guest.devices.redirdev[0]
|
||||
+
|
||||
+ self.assertEqual(guest.os.bootorder, ['hd'])
|
||||
+ self.assertEqual(disk_1.boot.order, None)
|
||||
+ self.assertEqual(disk_2.boot.order, 10)
|
||||
+ self.assertEqual(disk_3.boot.order, 10)
|
||||
+ self.assertEqual(disk_4.boot.order, 1)
|
||||
+ self.assertEqual(iface_1.boot.order, 2)
|
||||
+ self.assertEqual(iface_2.boot.order, None)
|
||||
+ self.assertEqual(redirdev_1.boot.order, 3)
|
||||
+
|
||||
+ guest.reorder_boot_order(disk_1, 1)
|
||||
+
|
||||
+ self.assertEqual(guest.os.bootorder, [])
|
||||
+ self.assertEqual(disk_1.boot.order, 1)
|
||||
+ self.assertEqual(disk_2.boot.order, 10)
|
||||
+ self.assertEqual(disk_3.boot.order, 10)
|
||||
+ # verify that the used algorithm preserves the order of
|
||||
+ # records with equal boot indices
|
||||
+ self.assertIs(disk_2, guest.devices.disk[1])
|
||||
+ self.assertIs(disk_3, guest.devices.disk[2])
|
||||
+ self.assertEqual(disk_4.boot.order, 2)
|
||||
+ self.assertEqual(iface_1.boot.order, 3)
|
||||
+ self.assertEqual(iface_2.boot.order, None)
|
||||
+ self.assertEqual(redirdev_1.boot.order, 4)
|
||||
+
|
||||
+ try:
|
||||
+ self._alter_compare(guest.get_xml(), outfile)
|
||||
+ except RuntimeError as error:
|
||||
+ self.assertIn("unsupported configuration", str(error))
|
||||
+
|
||||
+ guest.reorder_boot_order(disk_2, 10)
|
||||
+ self.assertEqual(disk_2.boot.order, 10)
|
||||
+ self.assertEqual(disk_3.boot.order, 11)
|
||||
+ self.assertIs(disk_2, guest.devices.disk[1])
|
||||
+ self.assertIs(disk_3, guest.devices.disk[2])
|
||||
+
|
||||
+ outfile = self._gen_outfile_path("change-devices-bootorder-fixed")
|
||||
+ self._alter_compare(guest.get_xml(), outfile)
|
||||
+
|
||||
def testSingleDisk(self):
|
||||
xml = ("""<disk type="file" device="disk"><source file="/a.img"/>\n"""
|
||||
"""<target dev="hda" bus="ide"/></disk>\n""")
|
@ -0,0 +1,27 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: cli: Use reorder_boot_order for setting the boot order
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:39 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: b83a0a61a0da867048b232054a41c4c98edbb9d8
|
||||
|
||||
Use the newly introduced method `reorder_boot_order` for setting
|
||||
the boot index of a device. This ensures that all other boot order
|
||||
values of domain guest definition are adjusted accordingly.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/cli.py
|
||||
+++ virt-manager-2.1.0/virtinst/cli.py
|
||||
@@ -2162,7 +2162,7 @@ def _add_device_boot_order_arg(cls):
|
||||
if not guest.conn.check_support(support.SUPPORT_CONN_DEVICE_BOOT_ORDER):
|
||||
raise NotImplementedError('Device boot order isn\'t supported by the connection')
|
||||
|
||||
- inst.boot.order = val
|
||||
+ guest.reorder_boot_order(inst, val)
|
||||
cls.set_boot_order_cb = set_boot_order_cb
|
||||
cls.add_arg("boot.order", "boot_order", cb=cls.set_boot_order_cb)
|
||||
|
76
010-c896d19d-tests-cli-Add-boot.order-tests.patch
Normal file
76
010-c896d19d-tests-cli-Add-boot.order-tests.patch
Normal file
@ -0,0 +1,76 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: cli: Add boot.order tests
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:40 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: c896d19d7645a2728b064d2026610178358220c5
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder.xml b/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder.xml
|
||||
new file mode 100644
|
||||
index 00000000..60114b99
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder.xml
|
||||
@@ -0,0 +1,19 @@
|
||||
+ <total_iops_sec>50</total_iops_sec>
|
||||
+ </iotune>
|
||||
+ <address type="drive" controller="0" bus="0" target="0" unit="0"/>
|
||||
++ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <disk type="file" device="disk">
|
||||
+ <driver name="qemu" type="qcow2" cache="none"/>
|
||||
+@@
|
||||
+ </source>
|
||||
+ <target dev="sda" bus="scsi"/>
|
||||
+ <shareable/>
|
||||
+- <boot order="1"/>
|
||||
++ <boot order="2"/>
|
||||
+ <address type="drive" controller="9" bus="0" target="0" unit="0"/>
|
||||
+ </disk>
|
||||
+ <controller type="scsi" index="0"/>
|
||||
+
|
||||
+Domain 'test-for-virtxml' defined successfully.
|
||||
+Changes will take effect after the domain is fully powered off.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder2.xml b/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder2.xml
|
||||
new file mode 100644
|
||||
index 00000000..0c35cd14
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-edit-select-disk-bootorder2.xml
|
||||
@@ -0,0 +1,18 @@
|
||||
+ <os>
|
||||
+ <type arch="i686">hvm</type>
|
||||
+ <loader type="rom">/usr/lib/xen/boot/hvmloader</loader>
|
||||
+- <boot dev="hd"/>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+@@
|
||||
+ <source file="/dev/default-pool/collidevol1.img"/>
|
||||
+ <target dev="hda" bus="ide"/>
|
||||
+ <address type="drive" controller="0" bus="0" target="0" unit="0"/>
|
||||
++ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <controller type="ide" index="0"/>
|
||||
+ <interface type="user">
|
||||
+
|
||||
+Domain 'test-collide' defined successfully.
|
||||
+Changes will take effect after the domain is fully powered off.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/clitest.py b/tests/clitest.py
|
||||
index a86c15cc..fff4b99f 100644
|
||||
--- a/tests/clitest.py
|
||||
+++ b/tests/clitest.py
|
||||
@@ -965,6 +965,10 @@ c.add_compare("--edit ich6 --sound pcspk", "edit-select-sound-model", check_vers
|
||||
c.add_compare("--edit target=hda --disk /dev/null", "edit-select-disk-target")
|
||||
c.add_compare("--edit /tmp/foobar2 --disk shareable=off,readonly=on", "edit-select-disk-path")
|
||||
c.add_compare("--edit mac=00:11:7f:33:44:55 --network target=nic55", "edit-select-network-mac")
|
||||
+c.add_compare("--edit target=hda --disk boot_order=1", "edit-select-disk-bootorder")
|
||||
+
|
||||
+c = vixml.add_category("edit selection 2", "test-collide --print-diff --define")
|
||||
+c.add_compare("--edit target=hda --disk boot_order=1", "edit-select-disk-bootorder2")
|
||||
|
||||
c = vixml.add_category("edit clear", "test-for-virtxml --print-diff --define")
|
||||
c.add_invalid("--edit --memory 200,clearxml=yes") # clear isn't wired up for memory
|
45
011-29f9f2ac-virt-xml-Add-no-define-argument.patch
Normal file
45
011-29f9f2ac-virt-xml-Add-no-define-argument.patch
Normal file
@ -0,0 +1,45 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: virt-xml: Add --no-define argument
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:41 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: 29f9f2ac9c168b29043e8a443d354f2b7802c9f9
|
||||
|
||||
Add `--no-define` argument. It's mutually exclusive to the `--define`
|
||||
argument and later on it allows the user to start a domain
|
||||
transiently.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virt-xml
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virt-xml
|
||||
+++ virt-manager-2.1.0/virt-xml
|
||||
@@ -363,9 +363,13 @@ def parse_args():
|
||||
"With --add-device, this is a hotplug operation.\n"
|
||||
"With --remove-device, this is a hotunplug operation.\n"
|
||||
"With --edit, this is an update device operation."))
|
||||
- outg.add_argument("--define", action="store_true",
|
||||
- help=_("Force defining the domain. Only required if a --print "
|
||||
- "option was specified."))
|
||||
+ define_g = outg.add_mutually_exclusive_group()
|
||||
+ define_g.add_argument("--define", action="store_true",
|
||||
+ help=_("Force defining the domain. Only required if a --print "
|
||||
+ "option was specified."))
|
||||
+ define_g.add_argument("--no-define", dest='define', action="store_false",
|
||||
+ help=_("Force not defining the domain."))
|
||||
+ define_g.set_defaults(define=None)
|
||||
outg.add_argument("--print-diff", action="store_true",
|
||||
help=_("Only print the requested change, in diff format"))
|
||||
outg.add_argument("--print-xml", action="store_true",
|
||||
@@ -426,7 +430,8 @@ def main(conn=None):
|
||||
if not options.define:
|
||||
options.print_xml = True
|
||||
else:
|
||||
- options.define = True
|
||||
+ if options.define is None:
|
||||
+ options.define = True
|
||||
if options.confirm and not options.print_xml:
|
||||
options.print_diff = True
|
||||
|
@ -0,0 +1,25 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: cli: Add test case for --no-define argument
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:42 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: c2bff50977b83bb1b4bddbfe579735c2fc9d9c65
|
||||
|
||||
Add a test case validating mutual exclusivity of `--no-define` and
|
||||
'--define' arguments.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/clitest.py b/tests/clitest.py
|
||||
index fff4b99f..b4f41b79 100644
|
||||
--- a/tests/clitest.py
|
||||
+++ b/tests/clitest.py
|
||||
@@ -902,6 +902,7 @@ c.add_invalid("test-for-virtxml --add-device --host-device 0x04b3:0x4485 --updat
|
||||
c.add_invalid("test-for-virtxml --remove-device --host-device 1 --update") # test driver doesn't support detachdevice...
|
||||
c.add_invalid("test-for-virtxml --edit --graphics password=foo --update") # test driver doesn't support updatdevice...
|
||||
c.add_invalid("--build-xml --memory 10,maxmemory=20") # building XML for option that doesn't support it
|
||||
+c.add_invalid("test --edit --boot network,cdrom --define --no-define")
|
||||
c.add_compare("test --print-xml --edit --vcpus 7", "print-xml") # test --print-xml
|
||||
c.add_compare("--edit --cpu host-passthrough", "stdin-edit", input_file=(XMLDIR + "/virtxml-stdin-edit.xml")) # stdin test
|
||||
c.add_compare("--build-xml --cpu pentium3,+x2apic", "build-cpu")
|
103
013-90b1a3ab-virt-xml-Add-support-for-starting-the-domain.patch
Normal file
103
013-90b1a3ab-virt-xml-Add-support-for-starting-the-domain.patch
Normal file
@ -0,0 +1,103 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: virt-xml: Add support for starting the domain
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:43 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: 90b1a3ab7d9cb9c84e7dda7093ae2c97217fa591
|
||||
|
||||
Add support for starting the domain. By default, first the domain is
|
||||
defined and then started. If the `--start` is used in combination with
|
||||
`--no-define` a transient domain is created without persisting the
|
||||
changes in the persistent domain definition.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
Index: virt-manager-2.1.0/virt-xml
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virt-xml
|
||||
+++ virt-manager-2.1.0/virt-xml
|
||||
@@ -257,9 +257,28 @@ def define_changes(conn, inactive_xmlobj
|
||||
for dev in devs:
|
||||
setup_device(dev)
|
||||
|
||||
- conn.defineXML(inactive_xmlobj.get_xml())
|
||||
+ dom = conn.defineXML(inactive_xmlobj.get_xml())
|
||||
print_stdout(_("Domain '%s' defined successfully.") % inactive_xmlobj.name)
|
||||
- return True
|
||||
+ return dom
|
||||
+
|
||||
+
|
||||
+def start_domain_transient(conn, xmlobj, devs, action, confirm):
|
||||
+ if confirm:
|
||||
+ if not prompt_yes_or_no(
|
||||
+ _("Start '%s' with the changed XML?") % xmlobj.name):
|
||||
+ return False
|
||||
+
|
||||
+ if action == "hotplug":
|
||||
+ for dev in devs:
|
||||
+ setup_device(dev)
|
||||
+
|
||||
+ try:
|
||||
+ dom = conn.createXML(xmlobj.get_xml())
|
||||
+ except libvirt.libvirtError as e:
|
||||
+ fail(_("Failed starting domain '%s': %s") % (xmlobj.name, e))
|
||||
+ else:
|
||||
+ print_stdout(_("Domain '%s' started successfully.") % xmlobj.name)
|
||||
+ return dom
|
||||
|
||||
|
||||
def update_changes(domain, devs, action, confirm):
|
||||
@@ -370,6 +389,8 @@ def parse_args():
|
||||
define_g.add_argument("--no-define", dest='define', action="store_false",
|
||||
help=_("Force not defining the domain."))
|
||||
define_g.set_defaults(define=None)
|
||||
+ outg.add_argument("--start", action="store_true",
|
||||
+ help=_("Start the domain."))
|
||||
outg.add_argument("--print-diff", action="store_true",
|
||||
help=_("Only print the requested change, in diff format"))
|
||||
outg.add_argument("--print-xml", action="store_true",
|
||||
@@ -411,6 +432,9 @@ def main(conn=None):
|
||||
options.quiet = False
|
||||
cli.setupLogging("virt-xml", options.debug, options.quiet)
|
||||
|
||||
+ if options.update and options.start:
|
||||
+ fail(_("Either update or start a domain"))
|
||||
+
|
||||
if cli.check_option_introspection(options):
|
||||
return 0
|
||||
|
||||
@@ -468,14 +492,27 @@ def main(conn=None):
|
||||
else:
|
||||
logging.warning(
|
||||
_("The VM is not running, --update is inapplicable."))
|
||||
- if options.define:
|
||||
+
|
||||
+ if options.define or options.start:
|
||||
devs, action = prepare_changes(inactive_xmlobj, options, parserclass)
|
||||
- applied = define_changes(conn, inactive_xmlobj,
|
||||
+ if options.define:
|
||||
+ dom = define_changes(conn, inactive_xmlobj,
|
||||
devs, action, options.confirm)
|
||||
- if not options.update and active_xmlobj and applied:
|
||||
- print_stdout(
|
||||
- _("Changes will take effect after the domain is fully powered off."))
|
||||
- if not options.update and not options.define:
|
||||
+ if dom and options.start:
|
||||
+ try:
|
||||
+ dom.create()
|
||||
+ except libvirt.libvirtError as e:
|
||||
+ fail(_("Failed starting domain '%s': %s") % (inactive_xmlobj.name, e))
|
||||
+ print_stdout(_("Domain '%s' started successfully.") %
|
||||
+ inactive_xmlobj.name)
|
||||
+ elif not options.update and active_xmlobj and dom:
|
||||
+ print_stdout(
|
||||
+ _("Changes will take effect after the domain is fully powered off."))
|
||||
+ else:
|
||||
+ dom = start_domain_transient(conn, inactive_xmlobj, devs,
|
||||
+ action, options.confirm)
|
||||
+
|
||||
+ if not options.update and not options.define and not options.start:
|
||||
prepare_changes(inactive_xmlobj, options, parserclass)
|
||||
|
||||
return 0
|
@ -0,0 +1,293 @@
|
||||
References: jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override (virt-manager)
|
||||
|
||||
Subject: tests: virt-xml: Add test cases for --start option
|
||||
From: Marc Hartmayer mhartmay@linux.ibm.com Tue Feb 26 10:56:44 2019 +0100
|
||||
Date: Wed Mar 6 13:15:38 2019 -0500:
|
||||
Git: 908b8e8d7c3663ca791b068f2f03234e31281bbc
|
||||
|
||||
The test cases verify that:
|
||||
|
||||
+ --start works
|
||||
+ --define --start works
|
||||
+ --no-define --start works
|
||||
+ --start works in combination with --add and --remove
|
||||
+ combination of --start --update isn't valid
|
||||
+ combination of --define --no-define --start isn't valid
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
||||
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-add-disk-basic-start.xml b/tests/cli-test-xml/compare/virt-xml-add-disk-basic-start.xml
|
||||
new file mode 100644
|
||||
index 00000000..0071d9e7
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-add-disk-basic-start.xml
|
||||
@@ -0,0 +1,11 @@
|
||||
+ <model type="cirrus" vram="16384" heads="1" primary="yes"/>
|
||||
+ </video>
|
||||
+ <memballoon model="virtio"/>
|
||||
++ <disk type="file" device="disk">
|
||||
++ <source file="/dev/default-pool/testvol1.img"/>
|
||||
++ <target dev="vdf" bus="virtio"/>
|
||||
++ </disk>
|
||||
+ </devices>
|
||||
+ </domain>
|
||||
+
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-add-disk-create-storage-start.xml b/tests/cli-test-xml/compare/virt-xml-add-disk-create-storage-start.xml
|
||||
new file mode 100644
|
||||
index 00000000..6a02dcc3
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-add-disk-create-storage-start.xml
|
||||
@@ -0,0 +1,11 @@
|
||||
+ <model type="cirrus" vram="16384" heads="1" primary="yes"/>
|
||||
+ </video>
|
||||
+ <memballoon model="virtio"/>
|
||||
++ <disk type="file" device="disk">
|
||||
++ <source file="/dev/default-pool/new1.img"/>
|
||||
++ <target dev="hdd" bus="ide"/>
|
||||
++ </disk>
|
||||
+ </devices>
|
||||
+ </domain>
|
||||
+
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-add-host-device-start.xml b/tests/cli-test-xml/compare/virt-xml-add-host-device-start.xml
|
||||
new file mode 100644
|
||||
index 00000000..b3db5279
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-add-host-device-start.xml
|
||||
@@ -0,0 +1,14 @@
|
||||
+ <model type="cirrus" vram="16384" heads="1" primary="yes"/>
|
||||
+ </video>
|
||||
+ <memballoon model="virtio"/>
|
||||
++ <hostdev mode="subsystem" type="usb" managed="yes">
|
||||
++ <source>
|
||||
++ <vendor id="0x04b3"/>
|
||||
++ <product id="0x4485"/>
|
||||
++ </source>
|
||||
++ </hostdev>
|
||||
+ </devices>
|
||||
+ </domain>
|
||||
+
|
||||
+Domain 'test-state-shutoff' defined successfully.
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-remove-disk-path-start.xml b/tests/cli-test-xml/compare/virt-xml-remove-disk-path-start.xml
|
||||
new file mode 100644
|
||||
index 00000000..e04db8fb
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-remove-disk-path-start.xml
|
||||
@@ -0,0 +1,20 @@
|
||||
+ <on_lockfailure>poweroff</on_lockfailure>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
+- <disk type="block" device="disk">
|
||||
+- <driver name="qemu"/>
|
||||
+- <source dev="/dev/null"/>
|
||||
+- <target dev="vda" bus="virtio"/>
|
||||
+- <boot order="10"/>
|
||||
+- </disk>
|
||||
+- <disk type="block" device="disk">
|
||||
+- <driver name="qemu"/>
|
||||
+- <source dev="/dev/null"/>
|
||||
+- <target dev="vdb" bus="virtio"/>
|
||||
+- <boot order="3"/>
|
||||
+- </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder.xml b/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder.xml
|
||||
new file mode 100644
|
||||
index 00000000..280d9fc5
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder.xml
|
||||
@@ -0,0 +1,33 @@
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+- <boot order="10"/>
|
||||
++ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+- <boot order="3"/>
|
||||
++ <boot order="4"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+- <boot order="1"/>
|
||||
++ <boot order="2"/>
|
||||
+ <address type="drive" controller="0" bus="1" target="0" unit="0"/>
|
||||
+ </disk>
|
||||
+ <controller type="ide" index="0"/>
|
||||
+@@
|
||||
+ <source network="default"/>
|
||||
+ <target dev="testnet0"/>
|
||||
+ <model type="virtio"/>
|
||||
+- <boot order="2"/>
|
||||
++ <boot order="3"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <mac address="52:54:00:11:fa:28"/>
|
||||
+
|
||||
+Domain 'test-state-shutoff' defined successfully.
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder2.xml b/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder2.xml
|
||||
new file mode 100644
|
||||
index 00000000..1144f4c5
|
||||
--- /dev/null
|
||||
+++ b/tests/cli-test-xml/compare/virt-xml-start-select-disk-bootorder2.xml
|
||||
@@ -0,0 +1,32 @@
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+- <boot order="10"/>
|
||||
++ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+- <boot order="3"/>
|
||||
++ <boot order="4"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+- <boot order="1"/>
|
||||
++ <boot order="2"/>
|
||||
+ <address type="drive" controller="0" bus="1" target="0" unit="0"/>
|
||||
+ </disk>
|
||||
+ <controller type="ide" index="0"/>
|
||||
+@@
|
||||
+ <source network="default"/>
|
||||
+ <target dev="testnet0"/>
|
||||
+ <model type="virtio"/>
|
||||
+- <boot order="2"/>
|
||||
++ <boot order="3"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <mac address="52:54:00:11:fa:28"/>
|
||||
+
|
||||
+Domain 'test-state-shutoff' started successfully.
|
||||
\ No newline at end of file
|
||||
diff --git a/tests/clitest.py b/tests/clitest.py
|
||||
index b4f41b79..1c3cd5a5 100644
|
||||
--- a/tests/clitest.py
|
||||
+++ b/tests/clitest.py
|
||||
@@ -893,6 +893,7 @@ c = vixml.add_category("misc", "")
|
||||
c.add_valid("--help") # basic --help test
|
||||
c.add_valid("--sound=? --tpm=?") # basic introspection test
|
||||
c.add_valid("test-state-shutoff --edit --update --boot menu=on") # --update with inactive VM, should work but warn
|
||||
+c.add_invalid("test-state-shutoff --edit --update --boot menu=on --start")
|
||||
c.add_invalid("test --edit --hostdev driver_name=vfio") # Guest has no hostdev to edit
|
||||
c.add_invalid("test --edit --cpu host-passthrough --boot hd,network") # Specified more than 1 option
|
||||
c.add_invalid("test --edit") # specified no edit option
|
||||
@@ -968,6 +969,12 @@ c.add_compare("--edit /tmp/foobar2 --disk shareable=off,readonly=on", "edit-sele
|
||||
c.add_compare("--edit mac=00:11:7f:33:44:55 --network target=nic55", "edit-select-network-mac")
|
||||
c.add_compare("--edit target=hda --disk boot_order=1", "edit-select-disk-bootorder")
|
||||
|
||||
+c = vixml.add_category("edit and start selection", "test-state-shutoff --print-diff --start")
|
||||
+c.add_compare("--define --edit target=vda --disk boot_order=1", "start-select-disk-bootorder")
|
||||
+c.add_invalid("--define --no-define --edit target=vda --disk boot_order=1")
|
||||
+c.add_compare("--edit target=vda --disk boot_order=1", "start-select-disk-bootorder2")
|
||||
+c.add_compare("--no-define --edit target=vda --disk boot_order=1", "start-select-disk-bootorder2")
|
||||
+
|
||||
c = vixml.add_category("edit selection 2", "test-collide --print-diff --define")
|
||||
c.add_compare("--edit target=hda --disk boot_order=1", "edit-select-disk-bootorder2")
|
||||
|
||||
@@ -995,6 +1002,16 @@ c.add_compare("--remove-device --disk /dev/null", "remove-disk-path")
|
||||
c.add_compare("--remove-device --video all", "remove-video-all", check_version="1.3.3") # check_version=video primary= attribute
|
||||
c.add_compare("--remove-device --host-device 0x04b3:0x4485", "remove-hostdev-name", check_version="1.2.11") # check_version=video ram output change
|
||||
|
||||
+c = vixml.add_category("add/rm devices and start", "test-state-shutoff --print-diff --start")
|
||||
+c.add_invalid("--add-device --pm suspend_to_disk=yes") # --add-device without a device
|
||||
+c.add_invalid("--remove-device --clock utc") # --remove-device without a dev
|
||||
+# one test in combination with --define
|
||||
+c.add_compare("--define --add-device --host-device usb_device_4b3_4485_noserial", "add-host-device-start")
|
||||
+# all other test cases without
|
||||
+c.add_compare("--add-device --disk %(EXISTIMG1)s,bus=virtio,target=vdf", "add-disk-basic-start")
|
||||
+c.add_compare("--add-device --disk %(NEWIMG1)s,size=.01", "add-disk-create-storage-start")
|
||||
+c.add_compare("--remove-device --disk /dev/null", "remove-disk-path-start")
|
||||
+
|
||||
c = vixml.add_category("add/rm devices OS KVM", "--connect %(URI-KVM)s test --print-diff --define")
|
||||
c.add_compare("--add-device --disk %(EXISTIMG1)s", "kvm-add-disk-os-from-xml") # Guest OS (none) from XML
|
||||
c.add_compare("--add-device --disk %(EXISTIMG1)s --os-variant fedora28", "kvm-add-disk-os-from-cmdline") # Guest OS (fedora) provided on command line
|
||||
diff --git a/tests/testsuite.xml b/tests/testsuite.xml
|
||||
index fa0a077f..2e6f0fd6 100644
|
||||
--- a/tests/testsuite.xml
|
||||
+++ b/tests/testsuite.xml
|
||||
@@ -289,6 +289,64 @@
|
||||
<memory>1048576</memory>
|
||||
<bootloader>/tmp/bootfoo</bootloader>
|
||||
<test:runstate>5</test:runstate>
|
||||
+ <metadata>
|
||||
+ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||
+ <libosinfo:os id="http://fedoraproject.org/fedora/17"/>
|
||||
+ </libosinfo:libosinfo>
|
||||
+ </metadata>
|
||||
+ <currentMemory>204800</currentMemory>
|
||||
+ <memory>409600</memory>
|
||||
+ <uuid>12345678-1234-1234-1234-123456789012</uuid>
|
||||
+ <os>
|
||||
+ <type arch="i686" machine="foobar">hvm</type>
|
||||
+ </os>
|
||||
+ <features>
|
||||
+ <acpi/>
|
||||
+ <apic/>
|
||||
+ <hyperv>
|
||||
+ <vapic state="off"/>
|
||||
+ <spinlocks state="on" retries="12287"/>
|
||||
+ </hyperv>
|
||||
+ <vmport state="off"/>
|
||||
+ </features>
|
||||
+ <on_poweroff>destroy</on_poweroff>
|
||||
+ <on_reboot>restart</on_reboot>
|
||||
+ <on_crash>destroy</on_crash>
|
||||
+ <on_lockfailure>poweroff</on_lockfailure>
|
||||
+ <devices>
|
||||
+ <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vda" bus="virtio"/>
|
||||
+ <boot order="10"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="disk">
|
||||
+ <driver name="qemu"/>
|
||||
+ <source dev="/dev/null"/>
|
||||
+ <target dev="vdb" bus="virtio"/>
|
||||
+ <boot order="3"/>
|
||||
+ </disk>
|
||||
+ <disk type="block" device="cdrom">
|
||||
+ <target dev="hdc" bus="ide"/>
|
||||
+ <readonly/>
|
||||
+ <boot order="1"/>
|
||||
+ </disk>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <mac address="22:22:33:44:55:66"/>
|
||||
+ <model type="virtio"/>
|
||||
+ <boot order="2"/>
|
||||
+ </interface>
|
||||
+ <interface type="network">
|
||||
+ <source network="default"/>
|
||||
+ <mac address="52:54:00:11:fa:28"/>
|
||||
+ <model type="virtio"/>
|
||||
+ </interface>
|
||||
+ <graphics type="vnc" display=":3.4" xauth="/tmp/.Xauthority"/>
|
||||
+ <console type="pty"/>
|
||||
+ <memballoon model="virtio"/>
|
||||
+ </devices>
|
||||
</domain>
|
||||
|
||||
|
@ -12,7 +12,7 @@ Index: virt-manager-2.1.0/tests/clitest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/tests/clitest.py
|
||||
+++ virt-manager-2.1.0/tests/clitest.py
|
||||
@@ -908,8 +908,8 @@ c.add_compare("--build-xml --cpu pentium
|
||||
@@ -910,8 +910,8 @@ c.add_compare("--build-xml --cpu pentium
|
||||
c.add_compare("--build-xml --tpm /dev/tpm", "build-tpm")
|
||||
c.add_compare("--build-xml --blkiotune weight=100,device_path=/dev/sdf,device_weight=200", "build-blkiotune")
|
||||
c.add_compare("--build-xml --idmap uid_start=0,uid_target=1000,uid_count=10,gid_start=0,gid_target=1000,gid_count=10", "build-idmap")
|
||||
|
@ -67,7 +67,7 @@ Index: virt-manager-2.1.0/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/cli.py
|
||||
+++ virt-manager-2.1.0/virtinst/cli.py
|
||||
@@ -2430,6 +2430,7 @@ class ParserNetwork(VirtCLIParser):
|
||||
@@ -2438,6 +2438,7 @@ class ParserNetwork(VirtCLIParser):
|
||||
|
||||
cls.add_arg("driver_name", "driver_name")
|
||||
cls.add_arg("driver_queues", "driver_queues")
|
||||
|
@ -18,7 +18,7 @@ Index: virt-manager-2.1.0/virtinst/cli.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/cli.py
|
||||
+++ virt-manager-2.1.0/virtinst/cli.py
|
||||
@@ -2263,7 +2263,9 @@ class ParserDisk(VirtCLIParser):
|
||||
@@ -2271,7 +2271,9 @@ class ParserDisk(VirtCLIParser):
|
||||
poolobj = None
|
||||
if poolname:
|
||||
if poolname == "default":
|
||||
|
@ -23,7 +23,7 @@ Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.1.0/virtinst/guest.py
|
||||
@@ -588,6 +588,17 @@ class Guest(XMLBuilder):
|
||||
@@ -622,6 +622,17 @@ class Guest(XMLBuilder):
|
||||
dev.bus = "usb"
|
||||
self.add_device(dev)
|
||||
|
||||
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 23 08:17:01 MDT 2019 - carnold@suse.com
|
||||
|
||||
- jsc#SLE-6262, fate#327048: KVM: Boot Configuration Override
|
||||
001-adf30349-cli-refactor-get_prop.patch
|
||||
002-60c7e778-xmlapi-add-set_prop.patch
|
||||
003-5bad22e8-tests-Use-get-set_prop.patch
|
||||
004-ee5f3eab-support-Add-SUPPORT_CONN_DEVICE_BOOT_ORDER.patch
|
||||
005-7768eb17-cli-Add-check-if-device-boot-order-is-supported.patch
|
||||
006-ecc0861c-tests-xmlparse-refactor-method-for-generating-out-file-path.patch
|
||||
007-c9d070da-guest-Add-reorder_boot_order-method.patch
|
||||
008-1b535940-tests-Add-test-case-for-reorder_boot_order-method.patch
|
||||
009-b83a0a61-cli-Use-reorder_boot_order-for-setting-the-boot-order.patch
|
||||
010-c896d19d-tests-cli-Add-boot.order-tests.patch
|
||||
011-29f9f2ac-virt-xml-Add-no-define-argument.patch
|
||||
012-c2bff509-tests-cli-Add-test-case-for-no-define-argument.patch
|
||||
013-90b1a3ab-virt-xml-Add-support-for-starting-the-domain.patch
|
||||
014-908b8e8d-tests-virt-xml-Add-test-cases-for-start-option.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 9 10:21:29 MDT 2019 - carnold@suse.com
|
||||
|
||||
|
@ -40,13 +40,28 @@ Patch5: 26a433fc-virtManager-clone-check-which-storage-pools-supports-vo
|
||||
Patch6: 4f66c423-cloner-Handle-nonsparse-for-qcow2-images.patch
|
||||
Patch7: a02fc0d0-virtManager-clone-build-default-clone-path-if-we-know-how.patch
|
||||
Patch8: 1856c1fa-support-Fix-minimum-version-check.patch
|
||||
Patch9: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
|
||||
Patch10: 74bbc3db-urldetect-Check-also-for-treeinfo.patch
|
||||
Patch11: 708af01c-osdict-Add-supports_virtioinput.patch
|
||||
Patch12: f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
|
||||
Patch13: 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
|
||||
Patch14: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
|
||||
Patch15: a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
|
||||
# jsc#SLE-6262 - KVM: Boot Configuration Override (virt-manager)
|
||||
Patch9: 001-adf30349-cli-refactor-get_prop.patch
|
||||
Patch10: 002-60c7e778-xmlapi-add-set_prop.patch
|
||||
Patch11: 003-5bad22e8-tests-Use-get-set_prop.patch
|
||||
Patch12: 004-ee5f3eab-support-Add-SUPPORT_CONN_DEVICE_BOOT_ORDER.patch
|
||||
Patch13: 005-7768eb17-cli-Add-check-if-device-boot-order-is-supported.patch
|
||||
Patch14: 006-ecc0861c-tests-xmlparse-refactor-method-for-generating-out-file-path.patch
|
||||
Patch15: 007-c9d070da-guest-Add-reorder_boot_order-method.patch
|
||||
Patch16: 008-1b535940-tests-Add-test-case-for-reorder_boot_order-method.patch
|
||||
Patch17: 009-b83a0a61-cli-Use-reorder_boot_order-for-setting-the-boot-order.patch
|
||||
Patch18: 010-c896d19d-tests-cli-Add-boot.order-tests.patch
|
||||
Patch19: 011-29f9f2ac-virt-xml-Add-no-define-argument.patch
|
||||
Patch20: 012-c2bff509-tests-cli-Add-test-case-for-no-define-argument.patch
|
||||
Patch21: 013-90b1a3ab-virt-xml-Add-support-for-starting-the-domain.patch
|
||||
Patch22: 014-908b8e8d-tests-virt-xml-Add-test-cases-for-start-option.patch
|
||||
Patch23: 5bc847eb-virt-install-Do-not-warn-about-consoles-on-s390x.patch
|
||||
Patch24: 74bbc3db-urldetect-Check-also-for-treeinfo.patch
|
||||
Patch25: 708af01c-osdict-Add-supports_virtioinput.patch
|
||||
Patch26: f23b01be-guest-Add-VirtIO-input-devices-to-s390x-guests-with-graphics.patch
|
||||
Patch27: 7afbb90b-virt-xml-Handle-VM-names-that-look-like-id-uuid.patch
|
||||
Patch28: 8d9743d6-virt-install-Add-support-for-xenbus-controller.patch
|
||||
Patch29: a0ca387a-cli-Fix-pool-default-when-path-belongs-to-another-pool.patch
|
||||
# SUSE Only
|
||||
Patch70: virtman-desktop.patch
|
||||
Patch71: virtman-kvm.patch
|
||||
@ -187,6 +202,20 @@ machine).
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
# SUSE Only
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
|
@ -32,7 +32,7 @@ Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/guest.py
|
||||
+++ virt-manager-2.1.0/virtinst/guest.py
|
||||
@@ -574,7 +574,7 @@ class Guest(XMLBuilder):
|
||||
@@ -608,7 +608,7 @@ class Guest(XMLBuilder):
|
||||
|
||||
usb_tablet = False
|
||||
usb_keyboard = False
|
||||
@ -45,7 +45,7 @@ Index: virt-manager-2.1.0/virtManager/domain.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtManager/domain.py
|
||||
+++ virt-manager-2.1.0/virtManager/domain.py
|
||||
@@ -1224,6 +1224,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
@@ -1225,6 +1225,8 @@ class vmmDomain(vmmLibvirtObject):
|
||||
return self.get_xmlobj().os.is_xenpv()
|
||||
def is_hvm(self):
|
||||
return self.get_xmlobj().os.is_hvm()
|
||||
|
@ -16,7 +16,7 @@ Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
self.skip_default_rng = False
|
||||
self.x86_cpu_default = self.cpu.SPECIAL_MODE_APP_DEFAULT
|
||||
|
||||
@@ -289,7 +292,7 @@ class Guest(XMLBuilder):
|
||||
@@ -323,7 +326,7 @@ class Guest(XMLBuilder):
|
||||
if not os_support:
|
||||
return False
|
||||
|
||||
@ -25,7 +25,7 @@ Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
return True
|
||||
|
||||
return False
|
||||
@@ -612,7 +615,7 @@ class Guest(XMLBuilder):
|
||||
@@ -646,7 +649,7 @@ class Guest(XMLBuilder):
|
||||
self.add_device(dev)
|
||||
|
||||
def _add_default_video_device(self):
|
||||
@ -34,7 +34,7 @@ Index: virt-manager-2.1.0/virtinst/guest.py
|
||||
return
|
||||
if self.devices.video:
|
||||
return
|
||||
@@ -676,7 +679,7 @@ class Guest(XMLBuilder):
|
||||
@@ -710,7 +713,7 @@ class Guest(XMLBuilder):
|
||||
return
|
||||
if self.os.is_container() and not self.conn.is_vz():
|
||||
return
|
||||
|
@ -24,10 +24,10 @@ Index: virt-manager-2.1.0/virtinst/support.py
|
||||
===================================================================
|
||||
--- virt-manager-2.1.0.orig/virtinst/support.py
|
||||
+++ virt-manager-2.1.0/virtinst/support.py
|
||||
@@ -266,6 +266,8 @@ SUPPORT_CONN_USB3_PORTS = _make(version=
|
||||
SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _make(version="3.0.0")
|
||||
@@ -267,6 +267,8 @@ SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _mak
|
||||
SUPPORT_CONN_QEMU_XHCI = _make(version="3.3.0", hv_version={"qemu": "2.9.0"})
|
||||
SUPPORT_CONN_VNC_NONE_AUTH = _make(hv_version={"qemu": "2.9.0"})
|
||||
SUPPORT_CONN_DEVICE_BOOT_ORDER = _make(hv_version={"qemu": 0, "test": 0})
|
||||
+SUPPORT_CONN_NOCOW = _make(
|
||||
+ version="1.2.18", hv_version={"qemu": "2.2.0", "test": 0})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user