From 67c76ba28971346a61058394e5081e63f9a4ce31 Mon Sep 17 00:00:00 2001 From: Sebastian Mitterle Date: Wed, 19 Jul 2023 03:40:18 -0400 Subject: [PATCH] nodedev_xml: extend MdevXML with attr elements Add support for attribute elements of the mediated device capability xml, e.g.: ``` ``` Signed-off-by: Sebastian Mitterle --- virttest/libvirt_xml/nodedev_xml.py | 30 +++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/virttest/libvirt_xml/nodedev_xml.py b/virttest/libvirt_xml/nodedev_xml.py index e81a71bdef..3ec2ad4ab3 100644 --- a/virttest/libvirt_xml/nodedev_xml.py +++ b/virttest/libvirt_xml/nodedev_xml.py @@ -152,16 +152,42 @@ class MdevXML(CAPXML): """ class for capability whose type is mdev """ - __slots__ = ('type_id', 'uuid') + __slots__ = ('type_id', 'uuid', 'attrs') def __init__(self, virsh_instance=base.virsh): accessors.XMLAttribute('type_id', self, parent_xpath='/', tag_name='type', attribute='id') accessors.XMLElementText('uuid', self, parent_xpath='/', tag_name='uuid') + accessors.XMLElementList(property_name='attrs', + libvirtxml=self, + parent_xpath='/', + marshal_from=self.marshal_from_attrs, + marshal_to=self.marshal_to_attrs, + has_subclass=False) super(MdevXML, self).__init__(virsh_instance=virsh_instance) self.xml = (' ') + @staticmethod + def marshal_from_attrs(item, index, libvirtxml): + """Convert dictionary to an xml object""" + del index + del libvirtxml + if not isinstance(item, dict): + raise xcepts.LibvirtXMLError("Expected a dictionary of host" + " attributes, not a %s" + % str(item)) + return ('attr', dict(item)) + + @staticmethod + def marshal_to_attrs(tag, attr_dict, index, libvirtxml): + """Convert xml object to a dictionary""" + del index + del libvirtxml + if tag != 'attr': + return None + return dict(attr_dict) + class StorageXML(CAPXML): @@ -315,7 +341,7 @@ def get_sysfs_sub_path(self): Return the sysfs_subdir in . Example: - pci_bus/0000\:00/device/0000\:00\:00.0/ + pci_bus/0000:00/device/0000:00:00.0/ """ domain = self.domain bus = self.bus