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