summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-13 07:14:02 +0000
committerGerrit Code Review <review@openstack.org>2012-12-13 07:14:02 +0000
commit5f575d8b9ced29e6c467f552e08d9d971b320d01 (patch)
tree56bc8a977b5eec6d010f6038f7095d83a584dbe7
parentb963a93194c25f20db7eb87348ec1b61c06e7864 (diff)
parentd407ca3c90af30b57d57d522728274a0e219ee0d (diff)
Merge "Add support for libvirt domain <smbios> XML config"
-rw-r--r--nova/tests/test_libvirt_config.py13
-rw-r--r--nova/virt/libvirt/config.py18
2 files changed, 31 insertions, 0 deletions
diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py
index f771d23f8..567c39e50 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/test_libvirt_config.py
@@ -301,6 +301,17 @@ class LibvirtConfigGuestCPUTest(LibvirtConfigBaseTest):
""")
+class LibvirtConfigGuestSMBIOSTest(LibvirtConfigBaseTest):
+
+ def test_config_simple(self):
+ obj = config.LibvirtConfigGuestSMBIOS()
+
+ xml = obj.to_xml()
+ self.assertXmlEqual(xml, """
+ <smbios mode="sysinfo"/>
+ """)
+
+
class LibvirtConfigGuestSysinfoTest(LibvirtConfigBaseTest):
def test_config_simple(self):
@@ -743,6 +754,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "linux"
obj.os_boot_dev = "hd"
+ obj.os_smbios = config.LibvirtConfigGuestSMBIOS()
obj.acpi = True
obj.apic = True
@@ -776,6 +788,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
<os>
<type>linux</type>
<boot dev="hd"/>
+ <smbios mode="sysinfo"/>
</os>
<features>
<acpi/>
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index dcf5aeb40..14d940269 100644
--- a/nova/virt/libvirt/config.py
+++ b/nova/virt/libvirt/config.py
@@ -337,6 +337,21 @@ class LibvirtConfigGuestCPU(LibvirtConfigCPU):
return cpu
+class LibvirtConfigGuestSMBIOS(LibvirtConfigObject):
+
+ def __init__(self, **kwargs):
+ super(LibvirtConfigGuestSMBIOS, self).__init__(root_name="smbios",
+ **kwargs)
+
+ self.mode = "sysinfo"
+
+ def format_dom(self):
+ smbios = super(LibvirtConfigGuestSMBIOS, self).format_dom()
+ smbios.set("mode", self.mode)
+
+ return smbios
+
+
class LibvirtConfigGuestSysinfo(LibvirtConfigObject):
def __init__(self, **kwargs):
@@ -678,6 +693,7 @@ class LibvirtConfigGuest(LibvirtConfigObject):
self.os_root = None
self.os_init_path = None
self.os_boot_dev = None
+ self.os_smbios = None
self.devices = []
def _format_basic_props(self, root):
@@ -703,6 +719,8 @@ class LibvirtConfigGuest(LibvirtConfigObject):
os.append(self._text_node("init", self.os_init_path))
if self.os_boot_dev is not None:
os.append(etree.Element("boot", dev=self.os_boot_dev))
+ if self.os_smbios is not None:
+ os.append(self.os_smbios.format_dom())
root.append(os)
def _format_features(self, root):