From bfcc3444e608d92b8ed517ccfb59ea55edb10dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCdepohl?= <dev@stellardeath.org> Date: Fri, 3 Apr 2020 14:13:16 +0200 Subject: [PATCH] Fix mpcdf_sync_projects - Had old logic for distribution - Removed '--all' flag to disentangle functionality Use mpcdf_setup_subproject if you want to re-create all enabled repositories for all packages --- mpcdf_common.py | 26 ++++++-------------------- mpcdf_sync_projects.py | 11 +++-------- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/mpcdf_common.py b/mpcdf_common.py index 9a52ec3..72459a7 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -865,10 +865,7 @@ def set_as_branch(api_url, my_project, my_package, main_project, main_package): return True -def sync_projects(api_url, package=None, from_project="software", to_projects=None, redo_all=False, add_to_maintainers=True, verbose=False): - if package is not None and redo_all: - raise osc.oscerr.WrongArgs('Cannot specify `redo_all` and package') - +def sync_projects(api_url, package=None, from_project="software", to_projects=None, add_to_maintainers=True, verbose=False): if to_projects is None: 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")] @@ -880,15 +877,16 @@ def sync_projects(api_url, package=None, from_project="software", to_projects=No if package is None: from_packages = osc.core.meta_get_packagelist(api_url, from_project) - if not redo_all: - from_packages = list(sorted(set(from_packages) - set(to_packages))) else: from_packages = [package] def non_system_package(package): enable_repos = get_attribute_values(api_url, from_project, package, "MPCDF:enable_repositories") - if enable_repos == ["system"]: - print("Not branching package {0}, is only enabled for 'System'".format(package)) + if len(enable_repos) == 0: + print("Not branching package {0}, is disabled".format(package)) + return False + elif enable_repos == ["system"]: + print("Not branching package {0}, is only enabled for 'system'".format(package)) return False else: return True @@ -930,18 +928,6 @@ def sync_projects(api_url, package=None, from_project="software", to_projects=No to_meta.insert(2, person) osc.core.edit_meta("pkg", (to_project, orig_package), data=ElementTree.tostring(to_meta), apiurl=api_url) - if package is None and redo_all: - # Check if distribution is already set in to_project - to_prj_meta = project_meta(api_url, to_project) - some_repo = to_prj_meta.find('./repository') - if some_repo is None: - distribution = project_meta(api_url, from_project).find('./repository/path[@project="software"]').get("repository") - else: - distribution = some_repo.find('./path[@project="distributions"]').get("repository") - - print("Creating repository configuration") - mpcdf_setup_subproject(api_url, to_project, distribution=distribution) - for orig_package in from_packages: try: mpcdf_enable_repositories(api_url, to_project, orig_package, verbose=verbose) diff --git a/mpcdf_sync_projects.py b/mpcdf_sync_projects.py index 5baea7d..e6695cd 100644 --- a/mpcdf_sync_projects.py +++ b/mpcdf_sync_projects.py @@ -8,8 +8,6 @@ import osc.core import osc.cmdln -@osc.cmdln.option('-a', '--all', action="store_true", - help="Update all packages in the target repository, not only new ones") @osc.cmdln.option('-f', '--from', default="software", help="Source project") @osc.cmdln.option('-t', '--to', @@ -23,7 +21,6 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args): Usage: osc mpcdf_sync_projects osc mpcdf_sync_projects PACKAGE - osc mpcdf_sync_projects --all-packages Examples: - Sync all new packages from software into all software: sub-projects @@ -32,8 +29,8 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args): - Sync the package foobar_1_2 into all software: sub-projects #> osc mpcdf_sync_projects foobar_1_2 - - Sync all packages from software to software:SLE_12_SP3:skylake - #> osc mpcdf_sync_projects --all-packages --to software:SLE_12_SP3:skylake + - Update project software:SLE_12_SP3:skylake with all new packages from software + #> osc mpcdf_sync_projects --to software:SLE_12_SP3:skylake ${cmd_option_list} """ @@ -41,8 +38,6 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args): if len(args) > 1: raise osc.oscerr.WrongArgs("Too many arguments") - elif len(args) == 1 and opts.all: - raise osc.oscerr.WrongArgs('Cannot specify `--all` and PACKAGE') elif len(args) == 1: package, = args @@ -56,5 +51,5 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args): to_projects = None mpcdf_common.sync_projects(api_url, package, - from_project=from_project, to_projects=to_projects, redo_all=opts.all, + from_project=from_project, to_projects=to_projects, add_to_maintainers=not opts.private) -- GitLab