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 <berrange@redhat.com>
This commit is contained in:
@@ -59,6 +59,41 @@ class LibvirtConfigTest(LibvirtConfigBaseTest):
|
|||||||
obj.parse_str(inxml)
|
obj.parse_str(inxml)
|
||||||
|
|
||||||
|
|
||||||
|
class LibvirtConfigCapsTest(LibvirtConfigBaseTest):
|
||||||
|
|
||||||
|
def test_config_host(self):
|
||||||
|
xmlin = """
|
||||||
|
<capabilities>
|
||||||
|
<host>
|
||||||
|
<cpu>
|
||||||
|
<arch>x86_64</arch>
|
||||||
|
<model>Opteron_G3</model>
|
||||||
|
<vendor>AMD</vendor>
|
||||||
|
<topology sockets='1' cores='4' threads='1'/>
|
||||||
|
<feature name='ibs'/>
|
||||||
|
<feature name='osvw'/>
|
||||||
|
</cpu>
|
||||||
|
</host>
|
||||||
|
<guest>
|
||||||
|
<os_type>hvm</os_type>
|
||||||
|
<arch name='x86_64'/>
|
||||||
|
</guest>
|
||||||
|
<guest>
|
||||||
|
<os_type>hvm</os_type>
|
||||||
|
<arch name='i686'/>
|
||||||
|
</guest>
|
||||||
|
</capabilities>"""
|
||||||
|
|
||||||
|
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):
|
class LibvirtConfigGuestTimerTest(LibvirtConfigBaseTest):
|
||||||
def test_config_platform(self):
|
def test_config_platform(self):
|
||||||
obj = config.LibvirtConfigGuestTimer()
|
obj = config.LibvirtConfigGuestTimer()
|
||||||
|
|||||||
Reference in New Issue
Block a user