summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-10 18:41:20 +0000
committerGerrit Code Review <review@openstack.org>2012-12-10 18:41:20 +0000
commit5bfe4a7438a0bd500f109d1efd4dbf9ec63f3883 (patch)
tree5d00a46d015b1b193128c84d9dd2c150978780f7
parent50f3fdfbea40637cfbe3d53fee42b717a836466e (diff)
parentd0e930bd9f1bddf6223635fdc463b2176cc39690 (diff)
Merge "libvirt: enable apic setting for Xen or KVM guest."
-rw-r--r--nova/tests/test_libvirt.py1
-rw-r--r--nova/tests/test_libvirt_config.py12
-rw-r--r--nova/virt/libvirt/config.py8
-rw-r--r--nova/virt/libvirt/driver.py1
4 files changed, 20 insertions, 2 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index dd540ad5e..b714be958 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -652,6 +652,7 @@ class LibvirtConnTestCase(test.TestCase):
_fake_network_info(self.stubs, 1),
None, None)
self.assertEquals(cfg.acpi, True)
+ self.assertEquals(cfg.apic, True)
self.assertEquals(cfg.memory, 1024 * 1024 * 2)
self.assertEquals(cfg.vcpus, 1)
self.assertEquals(cfg.os_type, vm_mode.HVM)
diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py
index c285d46c0..887199608 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/test_libvirt_config.py
@@ -632,6 +632,8 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.os_loader = '/usr/lib/xen/boot/hvmloader'
obj.os_root = "root=xvda"
obj.os_cmdline = "console=xvc0"
+ obj.acpi = True
+ obj.apic = True
disk = config.LibvirtConfigGuestDisk()
disk.source_type = "file"
@@ -654,6 +656,10 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
<cmdline>console=xvc0</cmdline>
<root>root=xvda</root>
</os>
+ <features>
+ <acpi/>
+ <apic/>
+ </features>
<devices>
<disk type="file" device="disk">
<source file="/tmp/img"/>
@@ -671,6 +677,8 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "linux"
obj.os_boot_dev = "hd"
+ obj.acpi = True
+ obj.apic = True
disk = config.LibvirtConfigGuestDisk()
disk.source_type = "file"
@@ -691,6 +699,10 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
<type>linux</type>
<boot dev="hd"/>
</os>
+ <features>
+ <acpi/>
+ <apic/>
+ </features>
<devices>
<disk type="file" device="disk">
<source file="/tmp/img"/>
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index 58d065d21..69864645c 100644
--- a/nova/virt/libvirt/config.py
+++ b/nova/virt/libvirt/config.py
@@ -587,6 +587,7 @@ class LibvirtConfigGuest(LibvirtConfigObject):
self.vcpus = 1
self.cpu = None
self.acpi = False
+ self.apic = False
self.clock = None
self.os_type = None
self.os_loader = None
@@ -624,9 +625,12 @@ class LibvirtConfigGuest(LibvirtConfigObject):
root.append(os)
def _format_features(self, root):
- if self.acpi:
+ if self.acpi or self.apic:
features = etree.Element("features")
- features.append(etree.Element("acpi"))
+ if self.acpi:
+ features.append(etree.Element("acpi"))
+ if self.apic:
+ features.append(etree.Element("apic"))
root.append(features)
def _format_devices(self, root):
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index ca410dd21..0802c0e94 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -1787,6 +1787,7 @@ class LibvirtDriver(driver.ComputeDriver):
if CONF.libvirt_type != "lxc" and CONF.libvirt_type != "uml":
guest.acpi = True
+ guest.apic = True
clk = vconfig.LibvirtConfigGuestClock()
clk.offset = "utc"