Francesco Romani has uploaded a new change for review. Change subject: vm: add getMetadata helper ......................................................................
vm: add getMetadata helper introduce a getMetadata helper method to get the libvirt domain metadata xml. This factors out the common code to deal with the fact we can't have yet a hard dependency to make sure libvirt supports the metadata. Change-Id: If29df44b26870884eb2900d14b11f3f3282cb97e Signed-off-by: Francesco Romani <[email protected]> --- M vdsm/virt/vm.py 1 file changed, 21 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/10/31210/1 diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py index 9e93425..0405726 100644 --- a/vdsm/virt/vm.py +++ b/vdsm/virt/vm.py @@ -3401,6 +3401,19 @@ return {'status': doneCode} + def _getVmMetadata(self, uri, fallback): + metadata_xml = fallback + + try: + metadata_xml = self._dom.metadata( + libvirt.VIR_DOMAIN_METADATA_ELEMENT, uri, 0) + except libvirt.libvirtError as e: + if e.get_error_code() != libvirt.VIR_ERR_NO_DOMAIN_METADATA: + self.log.exception("getVmMetadata for %s failed", uri) + return None + + return metadata_xml + def _getVmPolicy(self): """ This method gets the current qos block from the libvirt metadata. @@ -3410,19 +3423,15 @@ :return: XML DOM object representing the root qos element """ - metadata_xml = "<qos></qos>" + metadata_xml = self._getVmMetadata( + METADATA_VM_TUNE_URI, + "<qos></qos>") - try: - metadata_xml = self._dom.metadata( - libvirt.VIR_DOMAIN_METADATA_ELEMENT, - METADATA_VM_TUNE_URI, 0) - except libvirt.libvirtError as e: - if e.get_error_code() != libvirt.VIR_ERR_NO_DOMAIN_METADATA: - self.log.exception("getVmPolicy failed") - return None - - metadata = xml.dom.minidom.parseString(metadata_xml) - return metadata.getElementsByTagName("qos")[0] + if metadata_xml is None: + return None + else: + metadata = xml.dom.minidom.parseString(metadata_xml) + return metadata.getElementsByTagName("qos")[0] def _findDeviceByNameOrPath(self, device_name, device_path): for device in self._devices[DISK_DEVICES]: -- To view, visit http://gerrit.ovirt.org/31210 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If29df44b26870884eb2900d14b11f3f3282cb97e Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Francesco Romani <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
