diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 598c1756a940..22de035ccfe6 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -2564,13 +2564,9 @@ class LibvirtConnTestCase(test.NoDBTestCase): cfg = drvr._get_guest_config(instance_ref, [], {}, disk_info) self.assertEqual(cfg.os_type, vm_mode.XEN) - self.assertEqual(3, len(cfg.features)) + self.assertEqual(1, len(cfg.features)) self.assertIsInstance(cfg.features[0], vconfig.LibvirtConfigGuestFeaturePAE) - self.assertIsInstance(cfg.features[1], - vconfig.LibvirtConfigGuestFeatureACPI) - self.assertIsInstance(cfg.features[2], - vconfig.LibvirtConfigGuestFeatureAPIC) @mock.patch.object(objects.Flavor, 'get_by_id') def test_get_guest_config_with_vnc_and_spice(self, mock_flavor): diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 6df53fc015f3..241d44b48a02 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -3627,7 +3627,8 @@ class LibvirtDriver(driver.ComputeDriver): if caps.host.cpu.arch in (arch.I686, arch.X86_64): guest.features.append(vconfig.LibvirtConfigGuestFeaturePAE()) - if virt_type not in ("lxc", "uml", "parallels"): + if (virt_type not in ("lxc", "uml", "parallels", "xen") or + (virt_type == "xen" and guest.os_type == vm_mode.HVM)): guest.features.append(vconfig.LibvirtConfigGuestFeatureACPI()) guest.features.append(vconfig.LibvirtConfigGuestFeatureAPIC())