Martin Polednik has uploaded a new change for review. Change subject: vdsm: refactor all_devices using etree ......................................................................
vdsm: refactor all_devices using etree More hacky than functions which return standard values, all_devices is expected to return back xml.dom.Element - small hack is therefore introduced to keep this behaviour even when internally using etree Change-Id: Id83e7282319041bd5e6fdc0ef48eb2e1cd543841 Signed-off-by: Martin Polednik <[email protected]> --- M vdsm/virt/vmxml.py 1 file changed, 13 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/53/32453/1 diff --git a/vdsm/virt/vmxml.py b/vdsm/virt/vmxml.py index 4171c5c..17443f6 100644 --- a/vdsm/virt/vmxml.py +++ b/vdsm/virt/vmxml.py @@ -61,12 +61,11 @@ def all_devices(domXML): - domObj = xml.dom.minidom.parseString(domXML) - devices = domObj.childNodes[0].getElementsByTagName('devices')[0] + domObj = etree.fromstring(domXML) + devices = domObj.find('devices') - for deviceXML in devices.childNodes: - if deviceXML.nodeType == xml.dom.Node.ELEMENT_NODE: - yield deviceXML + for deviceXML in devices: + yield _domElement(deviceXML) def filter_devices_with_alias(devices): @@ -494,6 +493,15 @@ return self.conf.get('maxVCpus', self._getSmp()) +def _domElement(etreeElement): + """ + Hack required in order to refactor functions in this module while + keeping other modules working as intended. Returns xml.dom.Element + instead of etree.Element + """ + return xml.dom.minidom.parseString(etreeElement.tostring()) + + if sys.version_info[:2] == (2, 6): # A little unrelated hack to make xml.dom.minidom.Document.toprettyxml() # not wrap Text node with whitespace. -- To view, visit http://gerrit.ovirt.org/32453 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id83e7282319041bd5e6fdc0ef48eb2e1cd543841 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Martin Polednik <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
