diff --git a/mpcdf_common.py b/mpcdf_common.py index c01bb4717256a41a103029799dbb5e0367efca52..10ef7f13f0fa36004a62e36fba41be582a8ef758 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -211,13 +211,17 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r if filter_repos is None: filter_repos = () - root = package_meta(api_url, project, package) + pkg_meta = osc.core.show_package_meta(api_url, project, package) + root = ElementTree.fromstringlist(pkg_meta) + build = root.find("./build") if build is None: build = ElementTree.SubElement(root, "build") - else: - for enable in build.findall("./enable"): - build.remove(enable) + + pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING) + + for enable in build.findall("./enable"): + build.remove(enable) try: enable_repos = get_attribute_values(api_url, project, package, "MPCDF:enable_repositories") @@ -332,9 +336,10 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r if len(build.getchildren()) > 0: build.getchildren()[-1].tail = "\n " - pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING) + new_pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING) + if pkg_meta != new_pkg_meta: + osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta) - osc.core.edit_meta("pkg", (project, package), data=pkg_meta) return True