From 2aca69e36c232161aa0a66f61825b459e7946c2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <dev@stellardeath.org>
Date: Wed, 13 Jan 2021 16:17:11 +0100
Subject: [PATCH] Ignore old/obsolete attribute values in packages

---
 mpcdf_common.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/mpcdf_common.py b/mpcdf_common.py
index 62b79ed..60d07b2 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -924,6 +924,10 @@ def sync_projects(api_url, package=None, from_project="software", to_projects=No
         to_projects = [p for p in osc.core.meta_get_project_list(api_url)
                        if p.startswith("software:") and not (p == "software:dist" or p == "software:images")]
 
+    allowed_attribute_values = {}
+    for attribute in package_attributes + config_attributes:
+        allowed_attribute_values[attribute] = set(get_allowed_attribute_values(api_url, attribute))
+
     for to_project in to_projects:
         print("Syncing {0} with {1}".format(to_project, from_project))
 
@@ -955,12 +959,13 @@ def sync_projects(api_url, package=None, from_project="software", to_projects=No
 
             for attribute in package_attributes + config_attributes:
                 try:
-                    attr = get_attribute(api_url, from_project, orig_package, attribute)
+                    values = list(filter(lambda q: q in allowed_attribute_values[attribute],
+                                         get_attribute_values(api_url, from_project, orig_package, attribute)))
                 except UnsetAttributeException:
                     if has_attribute(api_url, to_project, orig_package, attribute):
                         remove_attribute(api_url, to_project, orig_package, attribute)
                     continue
-                set_attribute(api_url, to_project, orig_package, attr)
+                set_attribute_values(api_url, to_project, orig_package, attribute, values)
 
             if add_to_maintainers:
                 from_maintainers = maintainers(api_url, from_project, orig_package)
-- 
GitLab