From 19a5b83177dcfb9fa8ba31ff53e7b02400db8216 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 19 Jun 2012 14:27:49 +0100 Subject: [PATCH] Add libvirt config classes for handling capabilities XML doc Libvirt exposes the host/hypervisor features using an XML schema known as "capabilities". Currently the libvirt driver code just parses this in an adhoc manner using xpath queries. This change provides a handful of classes LibvirtConfigCaps, LibvirtConfigCapsHost and LibvirtConfigCapsGuest for maintaining an object based representation of the capabilities. The LibvirtConfigCapsHost class also uses the existing LibvirtConfigCPU class Fixes: bug #1003373 Implements: blueprint libvirt-xml-cpu-model Change-Id: Ie962c6378b0da09eddc75983d4824a226ed1c25e Signed-off-by: Daniel P. Berrange --- nova/tests/test_libvirt_config.py | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py index 59ed88e1..55f5528c 100644 --- a/nova/tests/test_libvirt_config.py +++ b/nova/tests/test_libvirt_config.py @@ -59,6 +59,41 @@ class LibvirtConfigTest(LibvirtConfigBaseTest): obj.parse_str(inxml) +class LibvirtConfigCapsTest(LibvirtConfigBaseTest): + + def test_config_host(self): + xmlin = """ + + + + x86_64 + Opteron_G3 + AMD + + + + + + + hvm + + + + hvm + + + """ + + obj = config.LibvirtConfigCaps() + obj.parse_str(xmlin) + + self.assertEqual(type(obj.host), config.LibvirtConfigCapsHost) + + xmlout = obj.to_xml() + + self.assertXmlEqual(xmlin, xmlout) + + class LibvirtConfigGuestTimerTest(LibvirtConfigBaseTest): def test_config_platform(self): obj = config.LibvirtConfigGuestTimer()