diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-12-13 07:14:02 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-12-13 07:14:02 +0000 |
| commit | 5f575d8b9ced29e6c467f552e08d9d971b320d01 (patch) | |
| tree | 56bc8a977b5eec6d010f6038f7095d83a584dbe7 | |
| parent | b963a93194c25f20db7eb87348ec1b61c06e7864 (diff) | |
| parent | d407ca3c90af30b57d57d522728274a0e219ee0d (diff) | |
Merge "Add support for libvirt domain <smbios> XML config"
| -rw-r--r-- | nova/tests/test_libvirt_config.py | 13 | ||||
| -rw-r--r-- | nova/virt/libvirt/config.py | 18 |
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): |
