summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2014-11-24 17:13:34 +0000
committerAnthony PERARD <anthony.perard@citrix.com>2015-02-03 13:57:56 +0000
commite4d42831194953dd13189684f23e791c36808706 (patch)
tree1e7337a6ac8dd4947e106bc9fbcc77f1577f9f9f
parent3d88cfcc13694ede66bf35fdfeca0a78b3229f69 (diff)
downloadnova-e4d42831194953dd13189684f23e791c36808706.tar.gz
libvirt-xen: don't request features ACPI or APIC with PV guest.
Those are HVM features only. Also, fix unit test. Change-Id: I5f3630626c6bc908ee3456203ca38f3c57231782
-rw-r--r--nova/tests/unit/virt/libvirt/test_driver.py6
-rw-r--r--nova/virt/libvirt/driver.py3
2 files changed, 3 insertions, 6 deletions
diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py
index 598c1756a9..22de035ccf 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 6df53fc015..241d44b48a 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())