summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2012-12-11 17:37:22 +0000
committerDaniel P. Berrange <berrange@redhat.com>2012-12-11 20:01:08 +0000
commite2bf709a7f1b5a375e359f4a75512c76b36216a7 (patch)
tree9ab4eff03de45834ac2533ecea5c6240ae25a396
parentd407ca3c90af30b57d57d522728274a0e219ee0d (diff)
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>
-rw-r--r--nova/tests/test_libvirt_config.py2
-rw-r--r--nova/virt/libvirt/config.py5
2 files changed, 7 insertions, 0 deletions
diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py
index ed01cc4fd..e5ed1b528 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/test_libvirt_config.py
@@ -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()
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index 14d940269..7e27f3925 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())