From b03f5d3b86657d99e93812aea99a2a309453f1c6 Mon Sep 17 00:00:00 2001 From: Daniel Mach Date: Tue, 13 Feb 2024 12:38:38 +0100 Subject: [PATCH] Migrate core.set_devel_project() to obs_api.Package --- .../setdevelproject-pkgcheckout.feature | 8 ----- .../setdevelproject-project-package.feature | 8 ----- osc/core.py | 32 ++++++++----------- 3 files changed, 13 insertions(+), 35 deletions(-) diff --git a/behave/features/setdevelproject-pkgcheckout.feature b/behave/features/setdevelproject-pkgcheckout.feature index 40efb702..92633135 100644 --- a/behave/features/setdevelproject-pkgcheckout.feature +++ b/behave/features/setdevelproject-pkgcheckout.feature @@ -15,8 +15,6 @@ Scenario: Run `osc setdevelproject ` And stdout is """ Setting devel project of package 'test:factory/test-pkgA' to package 'test:devel/test-pkgA' - Sending meta data... - Done. """ @@ -27,8 +25,6 @@ Scenario: Run `osc setdevelproject ` And stdout is """ Setting devel project of package 'test:factory/test-pkgA' to package 'test:devel/test-pkgA' - Sending meta data... - Done. """ @@ -39,8 +35,6 @@ Scenario: Run `osc setdevelproject /` And stdout is """ Setting devel project of package 'test:factory/test-pkgA' to package 'test:devel/test-pkgA' - Sending meta data... - Done. """ @@ -52,6 +46,4 @@ Scenario: Run `osc setdevelproject --unset` And stdout is """ Unsetting devel project from package 'test:factory/test-pkgA' - Sending meta data... - Done. """ diff --git a/behave/features/setdevelproject-project-package.feature b/behave/features/setdevelproject-project-package.feature index dd9b4032..c3cf51cd 100644 --- a/behave/features/setdevelproject-project-package.feature +++ b/behave/features/setdevelproject-project-package.feature @@ -13,8 +13,6 @@ Scenario: Run `osc setdevelproject ` And stdout is """ Setting devel project of package 'test:factory/test-pkgA' to package 'test:devel/test-pkgA' - Sending meta data... - Done. """ @@ -25,8 +23,6 @@ Scenario: Run `osc setdevelproject / / --unset` And stdout is """ Unsetting devel project from package 'test:factory/test-pkgA' - Sending meta data... - Done. """ diff --git a/osc/core.py b/osc/core.py index 27e80a06..1b775a8f 100644 --- a/osc/core.py +++ b/osc/core.py @@ -3876,6 +3876,8 @@ def show_devel_project(apiurl, prj, pac): def set_devel_project(apiurl, prj, pac, devprj=None, devpac=None, print_to="debug"): + from . import obs_api + if devprj: msg = "Setting devel project of" else: @@ -3890,26 +3892,18 @@ def set_devel_project(apiurl, prj, pac, devprj=None, devpac=None, print_to="debu ) _private.print_msg(msg, print_to=print_to) - meta = show_package_meta(apiurl, prj, pac) - root = ET.fromstring(b''.join(meta)) - node = root.find('devel') - if node is None: - if devprj is None: - return - node = ET.Element('devel') - root.append(node) + package_obj = obs_api.Package.from_api(apiurl, prj, pac) + + if devprj is None: + package_obj.devel = None else: - if devprj is None: - root.remove(node) - else: - node.clear() - if devprj: - node.set('project', devprj) - if devpac: - node.set('package', devpac) - url = makeurl(apiurl, ['source', prj, pac, '_meta']) - mf = metafile(url, ET.tostring(root, encoding=ET_ENCODING)) - mf.sync() + package_obj.devel = {"project": devprj, "package": devpac} + + if package_obj.has_changed(): + return package_obj.to_api(apiurl) + + # TODO: debug log that we have skipped the API call + return None def show_package_disabled_repos(apiurl: str, prj: str, pac: str):