From 82b55c97d10a55e6a825261397816f6a7ad00fd7 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 17 Dec 2012 15:35:06 +0000 Subject: Fix addition of CPU features when running against legacy libvirt When running against an libvirt < 0.9.10 which lacks support for the 'host-model' CPU type, we must fake it by copying the host CPU model and features. Unfortunately the code was forgetting to append the new features to the CPU object feature list Bug: 1099527 Change-Id: I39c6df6e85d77763ad279961fd6f0da70ac2415e Signed-off-by: Daniel P. Berrange --- nova/tests/test_libvirt.py | 6 ++++++ nova/virt/libvirt/driver.py | 1 + 2 files changed, 7 insertions(+) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 53bb1b984..a1206d7fd 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -904,6 +904,9 @@ class LibvirtConnTestCase(test.TestCase): cpu.model = "Opteron_G4" cpu.vendor = "AMD" + cpu.features.append(vconfig.LibvirtConfigGuestCPUFeature("tm2")) + cpu.features.append(vconfig.LibvirtConfigGuestCPUFeature("ht")) + caps = vconfig.LibvirtConfigCaps() caps.host = vconfig.LibvirtConfigCapsHost() caps.host.cpu = cpu @@ -927,6 +930,9 @@ class LibvirtConnTestCase(test.TestCase): self.assertEquals(conf.cpu.mode, None) self.assertEquals(conf.cpu.model, "Opteron_G4") self.assertEquals(conf.cpu.vendor, "AMD") + self.assertEquals(len(conf.cpu.features), 2) + self.assertEquals(conf.cpu.features[0].name, "tm2") + self.assertEquals(conf.cpu.features[1].name, "ht") def test_get_guest_cpu_config_custom_old(self): def get_lib_version_stub(self): diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 42d9dd99b..415ec732c 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -1472,6 +1472,7 @@ class LibvirtDriver(driver.ComputeDriver): for hostfeat in hostcpu.features: guestfeat = vconfig.LibvirtConfigGuestCPUFeature(hostfeat.name) guestfeat.policy = "require" + guestcpu.features.append(guestfeat) return guestcpu -- cgit