diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py index 567c39e5026d..29f5782d3604 100644 --- a/nova/tests/test_libvirt_config.py +++ b/nova/tests/test_libvirt_config.py @@ -63,6 +63,7 @@ class LibvirtConfigCapsTest(LibvirtConfigBaseTest): xmlin = """ + c7a5fdbd-edaf-9455-926a-d65c16db1809 x86_64 Opteron_G3 @@ -86,6 +87,7 @@ class LibvirtConfigCapsTest(LibvirtConfigBaseTest): obj.parse_str(xmlin) self.assertEqual(type(obj.host), config.LibvirtConfigCapsHost) + self.assertEqual(obj.host.uuid, "c7a5fdbd-edaf-9455-926a-d65c16db1809") xmlout = obj.to_xml() diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py index 14d940269df4..7e27f3925cf6 100644 --- a/nova/virt/libvirt/config.py +++ b/nova/virt/libvirt/config.py @@ -106,6 +106,7 @@ class LibvirtConfigCapsHost(LibvirtConfigObject): **kwargs) self.cpu = None + self.uuid = None def parse_dom(self, xmldoc): super(LibvirtConfigCapsHost, self).parse_dom(xmldoc) @@ -115,10 +116,14 @@ class LibvirtConfigCapsHost(LibvirtConfigObject): cpu = LibvirtConfigCPU() cpu.parse_dom(c) self.cpu = cpu + elif c.tag == "uuid": + self.uuid = c.text def format_dom(self): caps = super(LibvirtConfigCapsHost, self).format_dom() + if self.uuid: + caps.append(self._text_node("uuid", self.uuid)) if self.cpu: caps.append(self.cpu.format_dom())