Merge "libvirt: Change UEFI check to handle AArch64 better"

This commit is contained in:
Zuul
2020-04-15 16:29:31 +00:00
committed by Gerrit Code Review
2 changed files with 16 additions and 6 deletions
@@ -4638,6 +4638,13 @@ class LibvirtConnTestCase(test.NoDBTestCase,
mock_support.assert_called_once_with()
self.assertEqual(cfg.os_loader_type, "pflash")
@mock.patch('os.path.exists', return_value=True)
def test_check_uefi_support_aarch64(self, mock_exist):
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
self._stub_host_capabilities_cpu_arch(fields.Architecture.AARCH64)
self.assertTrue(drvr._has_uefi_support())
self.assertTrue(drvr._check_uefi_support(None))
def test_get_guest_config_with_block_device(self):
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
+9 -6
View File
@@ -1292,8 +1292,7 @@ class LibvirtDriver(driver.ComputeDriver):
try:
hw_firmware_type = instance.image_meta.properties.get(
'hw_firmware_type')
support_uefi = (self._has_uefi_support() and
hw_firmware_type == fields.FirmwareType.UEFI)
support_uefi = self._check_uefi_support(hw_firmware_type)
guest.delete_configuration(support_uefi)
except libvirt.libvirtError as e:
with excutils.save_and_reraise_exception() as ctxt:
@@ -1829,8 +1828,7 @@ class LibvirtDriver(driver.ComputeDriver):
# undefine it. If any part of this block fails, the domain is
# re-defined regardless.
if guest.has_persistent_configuration():
support_uefi = (self._has_uefi_support() and
hw_firmware_type == fields.FirmwareType.UEFI)
support_uefi = self._check_uefi_support(hw_firmware_type)
guest.delete_configuration(support_uefi)
try:
@@ -2594,8 +2592,7 @@ class LibvirtDriver(driver.ComputeDriver):
if guest.has_persistent_configuration():
hw_firmware_type = image_meta.properties.get(
'hw_firmware_type')
support_uefi = (self._has_uefi_support() and
hw_firmware_type == fields.FirmwareType.UEFI)
support_uefi = self._check_uefi_support(hw_firmware_type)
guest.delete_configuration(support_uefi)
# NOTE (rmk): Establish a temporary mirror of our root disk and
@@ -5466,6 +5463,12 @@ class LibvirtDriver(driver.ComputeDriver):
any((os.path.exists(p)
for p in DEFAULT_UEFI_LOADER_PATH[caps.host.cpu.arch])))
def _check_uefi_support(self, hw_firmware_type):
caps = self._host.get_capabilities()
return (self._has_uefi_support() and
(hw_firmware_type == fields.FirmwareType.UEFI or
caps.host.cpu.arch == fields.Architecture.AARCH64))
def _get_supported_perf_events(self):
if (len(CONF.libvirt.enabled_perf_events) == 0):