From bfa108810acbafaa9d81e8d1c0b075cc829d17dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Thu, 6 Dec 2012 14:07:02 +0100 Subject: [PATCH] add support to remove repositories recursively (mostly only usefull for admins) --- NEWS | 2 +- osc/commandline.py | 4 ++++ osc/core.py | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index c73167dca..9afc41563 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ 0.138 - - + - add support to remove repositories recursively (mostly only usefull for admins) 0.137 - support single binary download via getbinaries command diff --git a/osc/commandline.py b/osc/commandline.py index 6b1d2f4c1..446c42fce 100644 --- a/osc/commandline.py +++ b/osc/commandline.py @@ -548,6 +548,8 @@ def do_develproject(self, subcmd, opts, *args): help='edit metadata') @cmdln.option('-c', '--create', action='store_true', help='create attribute without values') + @cmdln.option('-R', '--remove-linking-repositories', action='store_true', + help='Try to remove also all repositories building against remove ones.') @cmdln.option('-s', '--set', metavar='ATTRIBUTE_VALUES', help='set attribute values') @cmdln.option('--delete', action='store_true', @@ -697,6 +699,7 @@ def do_meta(self, subcmd, opts, *args): edit_meta(metatype='prj', edit=True, force=opts.force, + remove_linking_repositories=opts.remove_linking_repositories, path_args=quote_plus(project), apiurl=apiurl, template_args=({ @@ -762,6 +765,7 @@ def do_meta(self, subcmd, opts, *args): data=f, edit=opts.edit, force=opts.force, + remove_linking_repositories=opts.remove_linking_repositories, apiurl=apiurl, path_args=quote_plus(project)) elif cmd == 'pkg': diff --git a/osc/core.py b/osc/core.py index 3baf46b84..6c7167f62 100644 --- a/osc/core.py +++ b/osc/core.py @@ -3160,7 +3160,7 @@ def meta_exists(metatype, return data -def make_meta_url(metatype, path_args=None, apiurl=None, force=False): +def make_meta_url(metatype, path_args=None, apiurl=None, force=False, remove_linking_repositories=False): global metatypes if not apiurl: @@ -3175,6 +3175,8 @@ def make_meta_url(metatype, path_args=None, apiurl=None, force=False): query = {} if force: query = { 'force': '1' } + if remove_linking_repositories: + query['remove_linking_repositories'] = '1' return makeurl(apiurl, [path], query) @@ -3185,6 +3187,7 @@ def edit_meta(metatype, template_args=None, edit=False, force=False, + remove_linking_repositories=False, change_is_required=False, apiurl=None): @@ -3202,7 +3205,7 @@ def edit_meta(metatype, if edit: change_is_required = True - url = make_meta_url(metatype, path_args, apiurl, force) + url = make_meta_url(metatype, path_args, apiurl, force, remove_linking_repositories) f=metafile(url, data, change_is_required, metatypes[metatype]['file_ext']) if edit: