diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 7d2e19dca77f..d2998bfbe590 100755 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -5558,7 +5558,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, @mock.patch.object(libvirt_driver.LibvirtDriver, "_get_guest_storage_config") @mock.patch.object(libvirt_driver.LibvirtDriver, "_has_numa_support") - def test_get_guest_config_aarch64(self, mock_numa, mock_storage): + @mock.patch('os.path.exists', return_value=True) + def test_get_guest_config_aarch64(self, mock_path_exists, + mock_numa, mock_storage): def get_host_capabilities_stub(self): cpu = vconfig.LibvirtConfigGuestCPU() cpu.arch = fields.Architecture.AARCH64 @@ -5585,6 +5587,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, cfg = drvr._get_guest_config(instance_ref, _fake_network_info(self, 1), image_meta, disk_info) + self.assertTrue(mock_path_exists.called) + mock_path_exists.assert_called_with( + libvirt_driver.DEFAULT_UEFI_LOADER_PATH['aarch64']) self.assertEqual(cfg.os_mach_type, "virt") def test_get_guest_config_machine_type_s390(self): diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 5acd1ddd331b..ce24cd2be9bc 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -4502,6 +4502,9 @@ class LibvirtDriver(driver.ComputeDriver): guest.sysinfo = self._get_guest_config_sysinfo(instance) guest.os_smbios = vconfig.LibvirtConfigGuestSMBIOS() hw_firmware_type = image_meta.properties.get('hw_firmware_type') + if caps.host.cpu.arch == fields.Architecture.AARCH64: + if not hw_firmware_type: + hw_firmware_type = fields.FirmwareType.UEFI if hw_firmware_type == fields.FirmwareType.UEFI: if self._has_uefi_support(): global uefi_logged