Skip to content

Commit

Permalink
- add support for delete requests.
Browse files Browse the repository at this point in the history
  • Loading branch information
adrianschroeter committed Nov 13, 2012
1 parent 3af9762 commit 52e2775
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
3 changes: 3 additions & 0 deletions NEWS
@@ -1,3 +1,6 @@
0.137
- support delete requests for repositories.

0.136
- prefer TLS v1.1 or v1.2 if available
- declined is considered to be an open state (that is "osc rq list" also shows declined requests)
Expand Down
9 changes: 8 additions & 1 deletion osc/commandline.py
Expand Up @@ -1635,6 +1635,8 @@ def do_requestmaintainership(self, subcmd, opts, *args):

@cmdln.option('-m', '--message', metavar='TEXT',
help='specify message TEXT')
@cmdln.option('-r', '--repository', metavar='TEXT',
help='specify message TEXT')
@cmdln.alias("dr")
@cmdln.alias("dropreq")
@cmdln.alias("droprequest")
Expand All @@ -1645,6 +1647,7 @@ def do_deleterequest(self, subcmd, opts, *args):
usage:
osc deletereq [-m TEXT] # works in checked out project/package
osc deletereq [-m TEXT] PROJECT [PACKAGE]
osc deletereq [-m TEXT] PROJECT [--repository REPOSITORY]
${cmd_option_list}
"""
import cgi
Expand All @@ -1653,6 +1656,7 @@ def do_deleterequest(self, subcmd, opts, *args):

project = None
package = None
repository = None

if len(args) > 2:
raise oscerr.WrongArgs('Too many arguments.')
Expand All @@ -1669,6 +1673,9 @@ def do_deleterequest(self, subcmd, opts, *args):
else:
raise oscerr.WrongArgs('Please specify at least a project.')

if opts.repository:
repository = opts.repository

if not opts.message:
import textwrap
if package is not None:
Expand All @@ -1681,7 +1688,7 @@ def do_deleterequest(self, subcmd, opts, *args):
opts.message = edit_message(footer)

r = Request()
r.add_action('delete', tgt_project=project, tgt_package=package)
r.add_action('delete', tgt_project=project, tgt_package=package, tgt_repository=repository)
r.description = cgi.escape(opts.message)
r.create(self.get_api_url())
print r.reqid
Expand Down
10 changes: 6 additions & 4 deletions osc/core.py
Expand Up @@ -2218,7 +2218,7 @@ class Action:
'set_bugowner': ('tgt_project', 'tgt_package', 'person_name'), # obsoleted by add_role
'maintenance_release': ('src_project', 'src_package', 'src_rev', 'tgt_project', 'tgt_package', 'person_name'),
'maintenance_incident': ('src_project', 'src_package', 'src_rev', 'tgt_project', 'tgt_releaseproject', 'person_name', 'opt_sourceupdate'),
'delete': ('tgt_project', 'tgt_package'),
'delete': ('tgt_project', 'tgt_package', 'tgt_repository'),
'change_devel': ('src_project', 'src_package', 'tgt_project', 'tgt_package')}
# attribute prefix to element name map (only needed for abbreviated attributes)
prefix_to_elm = {'src': 'source', 'tgt': 'target', 'opt': 'options'}
Expand Down Expand Up @@ -2406,9 +2406,11 @@ def format_action(action, show_srcupdate=False):
format an action depending on the action's type.
A dict which contains the formatted str's is returned.
"""
def prj_pkg_join(prj, pkg):
def prj_pkg_join(prj, pkg, repository):
if not pkg:
return prj or ''
if not repository:
return prj or ''
return '%s(%s)' % (prj, repository)
return '%s/%s' % (prj, pkg)

d = {'type': '%s:' % action.type}
Expand Down Expand Up @@ -2450,7 +2452,7 @@ def prj_pkg_join(prj, pkg):
d['target'] = prj_pkg_join(action.tgt_project, action.tgt_package)
elif action.type == 'delete':
d['source'] = ''
d['target'] = prj_pkg_join(action.tgt_project, action.tgt_package)
d['target'] = prj_pkg_join(action.tgt_project, action.tgt_package, action.tgt_repository)
return d

def list_view(self):
Expand Down

0 comments on commit 52e2775

Please sign in to comment.