Add support for parsing the <uuid> from libvirt host capabilities

The libvirt host capabilities provide a <uuid> element which
uniquely identifies the host platform.

Change-Id: Ic619a24b4b90c757b868aa78396d6cdee56ccb4b
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2012-12-11 17:37:22 +00:00
parent d407ca3c90
commit e2bf709a7f
2 changed files with 7 additions and 0 deletions

View File

@ -65,6 +65,7 @@ class LibvirtConfigCapsTest(LibvirtConfigBaseTest):
xmlin = """
<capabilities>
<host>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<cpu>
<arch>x86_64</arch>
<model>Opteron_G3</model>
@ -88,6 +89,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()

View File

@ -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())