From 7f6e665dcc59cf1585402da6ac26ace269288ce9 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Fri, 10 Jul 2015 12:06:49 +0200 Subject: [PATCH 5/6] capabilities: detect ACPI and APIC capabilites properly Instead of hard-coding that ACPI and APIC are enabled by default, detect their presence from libvirt capabilities and use it. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1215692 (crobinso: Adjust for recently added test case) Signed-off-by: Pavel Hrdina (cherry picked from commit 1590490fa34334c449362c6392d01e02e945fbcd) Signed-off-by: Pavel Hrdina --- tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml | 8 -------- .../compare/virt-install-aarch64-kvm-import.xml | 4 ---- .../compare/virt-install-aarch64-machdefault.xml | 4 ---- .../cli-test-xml/compare/virt-install-aarch64-machvirt.xml | 4 ---- .../compare/virt-install-arm-defaultmach-f20.xml | 4 ---- tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml | 4 ---- .../cli-test-xml/compare/virt-install-arm-vexpress-f19.xml | 4 ---- .../compare/virt-install-arm-vexpress-plain.xml | 4 ---- tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml | 4 ---- tests/cli-test-xml/compare/virt-install-cpuset-auto.xml | 4 ---- .../compare/virt-install-ppc64-machdefault-f20.xml | 2 -- .../compare/virt-install-ppc64-pseries-f20.xml | 2 -- .../compare/virt-install-ppc64le-kvm-import.xml | 2 -- tests/cli-test-xml/compare/virt-install-simple-pxe.xml | 4 ---- tests/cli-test-xml/compare/virt-install-w2k3-cdrom.xml | 6 ------ virtinst/capabilities.py | 14 ++++++++++++++ virtinst/guest.py | 7 +++++-- virtinst/osdict.py | 8 -------- 18 files changed, 19 insertions(+), 70 deletions(-) diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml b/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml index 80e5c32..e00d6a7 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml @@ -11,10 +11,6 @@ - - - - restart destroy @@ -53,10 +49,6 @@ - - - - restart destroy diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml index 77b768b..06dc0bf 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml @@ -9,10 +9,6 @@ /usr/share/AAVMF/AAVMF_CODE.fd - - - - destroy diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml b/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml index 8ad033b..231cb34 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml @@ -10,10 +10,6 @@ /f19-arm.initrd console=ttyAMA0,1234 rw root=/dev/vda3 - - - - cortex-a57 diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml b/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml index 8ad033b..231cb34 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml @@ -10,10 +10,6 @@ /f19-arm.initrd console=ttyAMA0,1234 rw root=/dev/vda3 - - - - cortex-a57 diff --git a/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml b/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml index d10d85f..21d778c 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml @@ -10,10 +10,6 @@ /f19-arm.initrd console=ttyAMA0,1234 rw root=/dev/vda3 - - - - destroy restart diff --git a/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml b/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml index f8b0b51..8d8cdce 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml @@ -8,10 +8,6 @@ hvm - - - - destroy diff --git a/tests/cli-test-xml/compare/virt-install-arm-vexpress-f19.xml b/tests/cli-test-xml/compare/virt-install-arm-vexpress-f19.xml index cdcb7c0..54b8c67 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-vexpress-f19.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-vexpress-f19.xml @@ -11,10 +11,6 @@ console=ttyAMA0,1234 rw root=/dev/vda3 /f19-arm.dtb - - - - destroy restart diff --git a/tests/cli-test-xml/compare/virt-install-arm-vexpress-plain.xml b/tests/cli-test-xml/compare/virt-install-arm-vexpress-plain.xml index 3defad4..59f441c 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-vexpress-plain.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-vexpress-plain.xml @@ -11,10 +11,6 @@ console=ttyAMA0 rw root=/dev/mmcblk0p3 /f19-arm.dtb - - - - destroy restart diff --git a/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml b/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml index d10d85f..21d778c 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml @@ -10,10 +10,6 @@ /f19-arm.initrd console=ttyAMA0,1234 rw root=/dev/vda3 - - - - destroy restart diff --git a/tests/cli-test-xml/compare/virt-install-cpuset-auto.xml b/tests/cli-test-xml/compare/virt-install-cpuset-auto.xml index 9876af6..f555396 100644 --- a/tests/cli-test-xml/compare/virt-install-cpuset-auto.xml +++ b/tests/cli-test-xml/compare/virt-install-cpuset-auto.xml @@ -9,8 +9,6 @@ - - @@ -51,8 +49,6 @@ - - diff --git a/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml b/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml index a24c0d5..8056115 100644 --- a/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-ppc64-machdefault-f20.xml @@ -9,8 +9,6 @@ - - diff --git a/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml b/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml index a24c0d5..8056115 100644 --- a/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-ppc64-pseries-f20.xml @@ -9,8 +9,6 @@ - - diff --git a/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml b/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml index 0a27562..720c8a5 100644 --- a/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml +++ b/tests/cli-test-xml/compare/virt-install-ppc64le-kvm-import.xml @@ -9,8 +9,6 @@ - - diff --git a/tests/cli-test-xml/compare/virt-install-simple-pxe.xml b/tests/cli-test-xml/compare/virt-install-simple-pxe.xml index 504efbe..c0a4b52 100644 --- a/tests/cli-test-xml/compare/virt-install-simple-pxe.xml +++ b/tests/cli-test-xml/compare/virt-install-simple-pxe.xml @@ -9,8 +9,6 @@ - - @@ -51,8 +49,6 @@ - - diff --git a/tests/cli-test-xml/compare/virt-install-w2k3-cdrom.xml b/tests/cli-test-xml/compare/virt-install-w2k3-cdrom.xml index 0d78c19..19304d5 100644 --- a/tests/cli-test-xml/compare/virt-install-w2k3-cdrom.xml +++ b/tests/cli-test-xml/compare/virt-install-w2k3-cdrom.xml @@ -10,8 +10,6 @@ - - @@ -60,8 +58,6 @@ - - @@ -110,8 +106,6 @@ - - diff --git a/virtinst/capabilities.py b/virtinst/capabilities.py index 17af632..9c03373 100644 --- a/virtinst/capabilities.py +++ b/virtinst/capabilities.py @@ -206,6 +206,8 @@ class _CapsGuestFeatures(XMLBuilder): _XML_ROOT_NAME = "features" pae = XMLProperty("./pae", is_bool=True) + acpi = XMLProperty("./acpi/@default", is_onoff=True) + apic = XMLProperty("./apic/@default", is_onoff=True) class _CapsGuest(XMLBuilder): @@ -293,6 +295,18 @@ class _CapsGuest(XMLBuilder): """ return bool(self.features.pae) + def supports_acpi(self): + """ + Return Tree if capabilities report support for ACPI + """ + return bool(self.features.acpi) + + def supports_apic(self): + """ + Return Tree if capabilities report support for APIC + """ + return bool(self.features.apic) + ############################ # Main capabilities object # diff --git a/virtinst/guest.py b/virtinst/guest.py index 26fadf8..90a164b 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -843,9 +843,12 @@ class Guest(XMLBuilder): default = False if self.features.acpi == "default": - self.features.acpi = self._os_object.supports_acpi(default) + if default: + self.features.acpi = self.capsinfo.guest.supports_acpi() + else: + self.features.acpi = False if self.features.apic == "default": - self.features.apic = self._os_object.supports_apic(default) + self.features.apic = self.capsinfo.guest.supports_apic() if self.features.pae == "default": self.features.pae = self.capsinfo.guest.supports_pae() diff --git a/virtinst/osdict.py b/virtinst/osdict.py index 76c2260..bd82ae1 100644 --- a/virtinst/osdict.py +++ b/virtinst/osdict.py @@ -447,14 +447,6 @@ class _OsVariant(object): def supports_virtiommio(self): return self._is_related_to(["fedora19"]) - def supports_acpi(self, default): - if self._family in ['msdos']: - return False - return default - - def supports_apic(self, default): - return self.supports_acpi(default) - def default_netmodel(self): """ Default non-virtio net-model, since we check for that separately -- 2.4.5