From 4457c854652ac99b2e17ca5a5116de94d8e90037 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <lorenz.huedepohl@rzg.mpg.de>
Date: Thu, 6 Jun 2019 10:42:12 +0200
Subject: [PATCH] Avoid sending unchanged meta-data to server

---
 mpcdf_common.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/mpcdf_common.py b/mpcdf_common.py
index c01bb47..10ef7f1 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
 
 
-- 
GitLab