mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-10 14:56:14 +01:00
fixed several functions to respect 'osc -A'
This commit is contained in:
parent
cb18807622
commit
db08e0b496
@ -183,11 +183,13 @@ class Osc(cmdln.Cmdln):
|
||||
${cmd_option_list}
|
||||
"""
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if not package:
|
||||
init_project_dir(conf.config['apiurl'], os.curdir, project)
|
||||
init_project_dir(apiurl, os.curdir, project)
|
||||
print 'Initializing %s (Project: %s)' % (os.curdir, project)
|
||||
else:
|
||||
init_package_dir(conf.config['apiurl'], project, package, os.path.curdir)
|
||||
init_package_dir(apiurl, project, package, os.path.curdir)
|
||||
print 'Initializing %s (Project: %s, Package: %s)' % (os.curdir, project, package)
|
||||
|
||||
@cmdln.alias('ls')
|
||||
@ -243,7 +245,6 @@ class Osc(cmdln.Cmdln):
|
||||
${cmd_option_list}
|
||||
"""
|
||||
|
||||
apiurl = conf.config['apiurl']
|
||||
args = slash_split(args)
|
||||
if subcmd == 'll':
|
||||
opts.verbose = True
|
||||
@ -285,6 +286,8 @@ class Osc(cmdln.Cmdln):
|
||||
if opts.binaries and opts.expand:
|
||||
raise oscerr.WrongOptions('Sorry, --binaries and --expand are mutual exclusive.')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
# list binaries
|
||||
if opts.binaries:
|
||||
# ls -b toplevel doesn't make sense, so use info from
|
||||
@ -297,8 +300,6 @@ class Osc(cmdln.Cmdln):
|
||||
project = store_read_project(dir)
|
||||
package = store_read_package(dir)
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if not project:
|
||||
raise oscerr.WrongArgs('There are no binaries to list above project level.')
|
||||
if opts.revision:
|
||||
@ -335,7 +336,7 @@ class Osc(cmdln.Cmdln):
|
||||
# list sources
|
||||
elif not opts.binaries:
|
||||
if not args:
|
||||
print '\n'.join(meta_get_project_list(conf.config['apiurl'], opts.deleted))
|
||||
print '\n'.join(meta_get_project_list(apiurl, opts.deleted))
|
||||
|
||||
elif len(args) == 1:
|
||||
if opts.verbose:
|
||||
@ -344,14 +345,14 @@ class Osc(cmdln.Cmdln):
|
||||
if opts.expand:
|
||||
raise oscerr.WrongOptions('Sorry, the --expand option is not implemented for projects.')
|
||||
|
||||
print '\n'.join(meta_get_packagelist(conf.config['apiurl'], project, opts.deleted))
|
||||
print '\n'.join(meta_get_packagelist(apiurl, project, opts.deleted))
|
||||
|
||||
elif len(args) == 2 or len(args) == 3:
|
||||
link_seen = False
|
||||
print_not_found = True
|
||||
rev = opts.revision
|
||||
for i in [ 1, 2 ]:
|
||||
l = meta_get_filelist(conf.config['apiurl'],
|
||||
l = meta_get_filelist(apiurl,
|
||||
project,
|
||||
package,
|
||||
verbose=opts.verbose,
|
||||
@ -371,7 +372,7 @@ class Osc(cmdln.Cmdln):
|
||||
else:
|
||||
print '\n'.join(l)
|
||||
if opts.expand or opts.unexpand or not link_seen: break
|
||||
m = show_files_meta(conf.config['apiurl'], project, package)
|
||||
m = show_files_meta(apiurl, project, package)
|
||||
li = Linkinfo()
|
||||
li.read(ET.fromstring(''.join(m)).find('linkinfo'))
|
||||
if li.haserror():
|
||||
@ -954,7 +955,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
'superseded by %s' % result, result)
|
||||
|
||||
if opts.supersede:
|
||||
change_request_state(conf.config['apiurl'], opts.supersede, 'superseded',
|
||||
change_request_state(apiurl, opts.supersede, 'superseded',
|
||||
opts.message or '', result)
|
||||
|
||||
print 'created request id', result
|
||||
@ -1651,7 +1652,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
opts.message = edit_message()
|
||||
for result in results:
|
||||
print result.reqid, ": ",
|
||||
r = change_request_state(conf.config['apiurl'],
|
||||
r = change_request_state(apiurl,
|
||||
str(result.reqid), 'accepted', opts.message or '')
|
||||
print r
|
||||
else:
|
||||
@ -1659,16 +1660,16 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
raise oscerr.UserAbort()
|
||||
|
||||
elif cmd == 'log':
|
||||
for l in get_request_log(conf.config['apiurl'], reqid):
|
||||
for l in get_request_log(apiurl, reqid):
|
||||
print l
|
||||
|
||||
# show
|
||||
elif cmd == 'show':
|
||||
r = get_request(conf.config['apiurl'], reqid)
|
||||
r = get_request('apiurl', reqid)
|
||||
if opts.brief:
|
||||
print r.list_view()
|
||||
elif (opts.interactive or conf.config['request_show_interactive']) and not opts.non_interactive:
|
||||
return request_interactive_review(conf.config['apiurl'], r)
|
||||
return request_interactive_review(apiurl, r)
|
||||
else:
|
||||
print r
|
||||
# fixme: will inevitably fail if the given target doesn't exist
|
||||
@ -1676,7 +1677,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
raise oscerr.WrongOptions('\'--diff\' is not possible for request type: \'%s\'' % r.actions[0].type)
|
||||
elif opts.diff:
|
||||
try:
|
||||
print server_diff(conf.config['apiurl'],
|
||||
print server_diff(apiurl,
|
||||
r.actions[0].dst_project, r.actions[0].dst_package, None,
|
||||
r.actions[0].src_project, r.actions[0].src_package, r.actions[0].src_rev, opts.unified, True)
|
||||
except urllib2.HTTPError, e:
|
||||
@ -1685,7 +1686,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
raise e
|
||||
# backward compatiblity: only a recent api/backend supports the missingok parameter
|
||||
try:
|
||||
print server_diff(conf.config['apiurl'],
|
||||
print server_diff(apiurl,
|
||||
r.actions[0].dst_project, r.actions[0].dst_package, None,
|
||||
r.actions[0].src_project, r.actions[0].src_package, r.actions[0].src_rev, opts.unified, False)
|
||||
except urllib2.HTTPError, e:
|
||||
@ -1694,11 +1695,11 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
|
||||
# checkout
|
||||
elif cmd == 'checkout' or cmd == 'co':
|
||||
r = get_request(conf.config['apiurl'], reqid)
|
||||
r = get_request(apiurl, reqid)
|
||||
submits = [ i for i in r.actions if i.type == 'submit' ]
|
||||
if not len(submits):
|
||||
raise oscerr.WrongArgs('\'checkout\' only works for \'submit\' requests')
|
||||
checkout_package(conf.config['apiurl'], submits[0].src_project, submits[0].src_package, \
|
||||
checkout_package(apiurl, submits[0].src_project, submits[0].src_package, \
|
||||
submits[0].src_rev, expand_link=True, prj_dir=submits[0].src_project)
|
||||
|
||||
else:
|
||||
@ -1708,12 +1709,12 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
# Change review state only
|
||||
if subcmd == 'review':
|
||||
if cmd in ['accept', 'decline', 'new']:
|
||||
r = change_review_state(conf.config['apiurl'],
|
||||
r = change_review_state(apiurl,
|
||||
reqid, state_map[cmd], conf.config['user'], opts.message or '')
|
||||
print r
|
||||
# Change state of entire request
|
||||
elif cmd in ['reopen', 'accept', 'decline', 'wipe', 'revoke']:
|
||||
r = change_request_state(conf.config['apiurl'],
|
||||
r = change_request_state(apiurl,
|
||||
reqid, state_map[cmd], opts.message or '')
|
||||
print r
|
||||
|
||||
@ -1757,7 +1758,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
"""
|
||||
|
||||
args = slash_split(args)
|
||||
apiurl = conf.config['apiurl']
|
||||
apiurl = self.get_api_url()
|
||||
package = None
|
||||
if len(args) == 0:
|
||||
p = findpacs(os.curdir)[0]
|
||||
@ -1859,6 +1860,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
"""
|
||||
|
||||
args = slash_split(args)
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if not args or len(args) < 3:
|
||||
raise oscerr.WrongArgs('Incorrect number of arguments.\n\n' \
|
||||
@ -1883,7 +1885,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
opts.cicount = "copy"
|
||||
|
||||
if opts.current:
|
||||
rev = show_upstream_rev(conf.config['apiurl'], src_project, src_package)
|
||||
rev = show_upstream_rev(apiurl, src_project, src_package)
|
||||
|
||||
if rev and not checkRevision(src_project, src_package, rev):
|
||||
print >>sys.stderr, 'Revision \'%s\' does not exist' % rev
|
||||
@ -2051,6 +2053,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
${cmd_option_list}
|
||||
"""
|
||||
args = slash_split(args)
|
||||
apiurl = self.get_api_url()
|
||||
tproject = None
|
||||
|
||||
maintained_attribute = conf.config['maintained_attribute']
|
||||
@ -2063,7 +2066,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if len(args) >= 2:
|
||||
tproject = args[1]
|
||||
|
||||
r = attribute_branch_pkg(conf.config['apiurl'], maintained_attribute, maintained_update_project_attribute, \
|
||||
r = attribute_branch_pkg(apiurl, maintained_attribute, maintained_update_project_attribute, \
|
||||
package, tproject)
|
||||
|
||||
if r is None:
|
||||
@ -2073,13 +2076,13 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
print "Project " + r + " created."
|
||||
|
||||
if opts.checkout:
|
||||
init_project_dir(conf.config['apiurl'], r, r)
|
||||
init_project_dir(apiurl, r, r)
|
||||
print statfrmt('A', r)
|
||||
|
||||
# all packages
|
||||
for package in meta_get_packagelist(conf.config['apiurl'], r):
|
||||
for package in meta_get_packagelist(apiurl, r):
|
||||
try:
|
||||
checkout_package(conf.config['apiurl'], r, package, expand_link = True, prj_dir = r)
|
||||
checkout_package(apiurl, r, package, expand_link = True, prj_dir = r)
|
||||
except:
|
||||
print >>sys.stderr, 'Error while checkout package:\n', package
|
||||
|
||||
@ -2144,6 +2147,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if len(args) < 2 or len(args) > 4:
|
||||
raise oscerr.WrongArgs('Wrong number of arguments.')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
expected = 'home:%s:branches:%s' % (conf.config['user'], args[0])
|
||||
if len(args) >= 3:
|
||||
expected = tproject = args[2]
|
||||
@ -2156,7 +2161,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
opts.message = edit_message(footer, template)
|
||||
|
||||
exists, targetprj, targetpkg, srcprj, srcpkg = \
|
||||
branch_pkg(conf.config['apiurl'], args[0], args[1],
|
||||
branch_pkg(apiurl, args[0], args[1],
|
||||
nodevelproject=opts.nodevelproject, rev=opts.revision,
|
||||
target_project=tproject, target_package=tpackage,
|
||||
return_existing=opts.checkout, msg=opts.message or '',
|
||||
@ -2180,20 +2185,20 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
|
||||
package = tpackage or args[1]
|
||||
if opts.checkout:
|
||||
checkout_package(conf.config['apiurl'], targetprj, package,
|
||||
checkout_package(apiurl, targetprj, package,
|
||||
expand_link=True, prj_dir=targetprj)
|
||||
if conf.config['verbose']:
|
||||
print 'Note: You can use "osc delete" or "osc submitpac" when done.\n'
|
||||
else:
|
||||
apiopt = ''
|
||||
if conf.get_configParser().get('general', 'apiurl') != conf.config['apiurl']:
|
||||
apiopt = '-A %s ' % conf.config['apiurl']
|
||||
if conf.get_configParser().get('general', 'apiurl') != apiurl:
|
||||
apiopt = '-A %s ' % apiurl
|
||||
print 'A working copy of the branched package can be checked out with:\n\n' \
|
||||
'osc %sco %s/%s' \
|
||||
% (apiopt, targetprj, package)
|
||||
print_request_list(conf.config['apiurl'], args[0], args[1])
|
||||
print_request_list(apiurl, args[0], args[1])
|
||||
if devloc:
|
||||
print_request_list(conf.config['apiurl'], devloc, args[1])
|
||||
print_request_list(apiurl, devloc, args[1])
|
||||
|
||||
|
||||
def do_undelete(self, subcmd, opts, *args):
|
||||
@ -2212,14 +2217,16 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
args = slash_split(args)
|
||||
if len(args) < 1:
|
||||
raise oscerr.WrongArgs('Missing argument.')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
prj = args[0]
|
||||
pkgs = args[1:]
|
||||
|
||||
if pkgs:
|
||||
for pkg in pkgs:
|
||||
undelete_package(conf.config['apiurl'], prj, pkg)
|
||||
undelete_package(apiurl, prj, pkg)
|
||||
else:
|
||||
undelete_project(conf.config['apiurl'], prj)
|
||||
undelete_project(apiurl, prj)
|
||||
|
||||
|
||||
@cmdln.option('-f', '--force', action='store_true',
|
||||
@ -2241,6 +2248,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
args = slash_split(args)
|
||||
if len(args) < 1:
|
||||
raise oscerr.WrongArgs('Missing argument.')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
prj = args[0]
|
||||
pkgs = args[1:]
|
||||
|
||||
@ -2249,14 +2258,14 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
# careful: if pkg is an empty string, the package delete request results
|
||||
# into a project delete request - which works recursively...
|
||||
if pkg:
|
||||
delete_package(conf.config['apiurl'], prj, pkg)
|
||||
elif len(meta_get_packagelist(conf.config['apiurl'], prj)) >= 1 and not opts.force:
|
||||
delete_package(apiurl, prj, pkg)
|
||||
elif len(meta_get_packagelist(apiurl, prj)) >= 1 and not opts.force:
|
||||
print >>sys.stderr, 'Project contains packages. It must be empty before deleting it. ' \
|
||||
'If you are sure that you want to remove this project and all its ' \
|
||||
'packages use the \'--force\' switch'
|
||||
sys.exit(1)
|
||||
else:
|
||||
delete_project(conf.config['apiurl'], prj)
|
||||
delete_project(apiurl, prj)
|
||||
|
||||
@cmdln.hide(1)
|
||||
def do_deletepac(self, subcmd, opts, *args):
|
||||
@ -2393,6 +2402,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
"""
|
||||
|
||||
args = slash_split(args)
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
rev1 = None
|
||||
rev2 = None
|
||||
@ -2439,7 +2449,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if opts.revision:
|
||||
rev1, rev2 = parseRevisionOption(opts.revision)
|
||||
|
||||
rdiff = server_diff(conf.config['apiurl'],
|
||||
rdiff = server_diff(apiurl,
|
||||
old_project, old_package, rev1,
|
||||
new_project, new_package, rev2, not opts.plain, opts.missingok)
|
||||
print rdiff
|
||||
@ -3201,6 +3211,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
${cmd_usage}
|
||||
${cmd_option_list}
|
||||
"""
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if len(files) == 0:
|
||||
if not '/' in project:
|
||||
@ -3215,7 +3226,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if resp not in ('y', 'Y'):
|
||||
continue
|
||||
try:
|
||||
delete_files(conf.config['apiurl'], project, package, (file, ))
|
||||
delete_files(apiurl, project, package, (file, ))
|
||||
except urllib2.HTTPError, e:
|
||||
if opts.force:
|
||||
print >>sys.stderr, e
|
||||
@ -3430,7 +3441,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
apiurl, project, package, repository, arch = parse_buildlogurl(args[0])
|
||||
else:
|
||||
args = slash_split(args)
|
||||
apiurl = conf.config['apiurl']
|
||||
apiurl = self.get_api_url()
|
||||
if len(args) < 4:
|
||||
raise oscerr.WrongArgs('Too few arguments.')
|
||||
elif len(args) > 4:
|
||||
@ -4268,7 +4279,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
args = slash_split(args)
|
||||
|
||||
package = repo = arch = code = None
|
||||
apiurl = conf.config['apiurl']
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if len(args) < 1:
|
||||
if is_package_dir(os.curdir):
|
||||
@ -4324,6 +4335,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
osc abortbuild [OPTS] PROJECT [PACKAGE]
|
||||
${cmd_option_list}
|
||||
"""
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if len(args) < 1:
|
||||
raise oscerr.WrongArgs('Missing <project> argument.')
|
||||
@ -4333,7 +4345,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
else:
|
||||
package = None
|
||||
|
||||
print abortbuild(conf.config['apiurl'], args[0], package, opts.arch, opts.repo)
|
||||
print abortbuild(apiurl, args[0], package, opts.arch, opts.repo)
|
||||
|
||||
|
||||
@cmdln.option('-a', '--arch', metavar='ARCH',
|
||||
@ -4701,6 +4713,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
'or \'--bugowner\' or \'--maintainer\' or \'--limit-to-attribute <attr>\ ' \
|
||||
'or \'--project\' or \'--package\' are mutually exclusive')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
xpath = ''
|
||||
if opts.title:
|
||||
xpath = xpath_join(xpath, build_xpath('title', search_term, opts.substring), inner=True)
|
||||
@ -4740,7 +4754,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
elif opts.binary:
|
||||
what = {'published/binary/id': xpath}
|
||||
try:
|
||||
res = search(conf.config['apiurl'], **what)
|
||||
res = search(apiurl, **what)
|
||||
except urllib2.HTTPError, e:
|
||||
if e.code != 400 or not role_filter:
|
||||
raise e
|
||||
@ -4748,7 +4762,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if opts.limit_to_attribute:
|
||||
role_filter_xpath = xpath_join(role_filter_xpath, 'attribute/@name=\'%s\'' % opts.limit_to_attribute, op='and')
|
||||
what = dict([[kind, role_filter_xpath] for kind in what.keys()])
|
||||
res = search(conf.config['apiurl'], **what)
|
||||
res = search(apiurl, **what)
|
||||
filter_role(res, search_term, role_filter)
|
||||
if role_filter:
|
||||
role_filter = '%s (%s)' % (search_term, role_filter)
|
||||
@ -4972,13 +4986,15 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
${cmd_option_list}
|
||||
"""
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if not opts.method in ['GET', 'PUT', 'POST', 'DELETE']:
|
||||
sys.exit('unknown method %s' % opts.method)
|
||||
|
||||
if not url.startswith('http'):
|
||||
if not url.startswith('/'):
|
||||
url = '/' + url
|
||||
url = conf.config['apiurl'] + url
|
||||
url = apiurl + url
|
||||
|
||||
if opts.headers:
|
||||
opts.headers = dict(opts.headers)
|
||||
@ -5074,18 +5090,20 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
else:
|
||||
raise oscerr.WrongArgs('Wrong number of arguments.')
|
||||
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
if opts.add:
|
||||
for role in roles:
|
||||
addPerson(conf.config['apiurl'], prj, pac, opts.add, role)
|
||||
addPerson(apiurl, prj, pac, opts.add, role)
|
||||
elif opts.delete:
|
||||
for role in roles:
|
||||
delPerson(conf.config['apiurl'], prj, pac, opts.delete, role)
|
||||
delPerson(apiurl, prj, pac, opts.delete, role)
|
||||
elif opts.devel_project:
|
||||
# XXX: does it really belong to this command?
|
||||
setDevelProject(conf.config['apiurl'], prj, pac, opts.devel_project)
|
||||
setDevelProject(apiurl, prj, pac, opts.devel_project)
|
||||
else:
|
||||
if pac:
|
||||
m = show_package_meta(conf.config['apiurl'], prj, pac)
|
||||
m = show_package_meta(apiurl, prj, pac)
|
||||
root = ET.fromstring(''.join(m))
|
||||
if not opts.nodevelproject:
|
||||
while root.findall('devel'):
|
||||
@ -5094,16 +5112,16 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
pac = d.get('package', pac)
|
||||
if opts.verbose:
|
||||
print "Following to the development space: %s/%s" % (prj, pac)
|
||||
m = show_package_meta(conf.config['apiurl'], prj, pac)
|
||||
m = show_package_meta(apiurl, prj, pac)
|
||||
root = ET.fromstring(''.join(m))
|
||||
if not root.findall('person'):
|
||||
if opts.verbose:
|
||||
print "No dedicated persons in package defined, showing the project persons."
|
||||
pac = None
|
||||
m = show_project_meta(conf.config['apiurl'], prj)
|
||||
m = show_project_meta(apiurl, prj)
|
||||
root = ET.fromstring(''.join(m))
|
||||
else:
|
||||
m = show_project_meta(conf.config['apiurl'], prj)
|
||||
m = show_project_meta(apiurl, prj)
|
||||
root = ET.fromstring(''.join(m))
|
||||
|
||||
# showing the maintainers
|
||||
@ -5120,14 +5138,14 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if opts.email:
|
||||
emails = []
|
||||
for maintainer in maintainers.get(role, []):
|
||||
user = get_user_data(conf.config['apiurl'], maintainer, 'email')
|
||||
user = get_user_data(apiurl, maintainer, 'email')
|
||||
if len(user):
|
||||
emails.append(''.join(user))
|
||||
print ', '.join(emails) or '-'
|
||||
elif opts.verbose:
|
||||
userdata = []
|
||||
for maintainer in maintainers.get(role, []):
|
||||
user = get_user_data(conf.config['apiurl'], maintainer, 'login', 'realname', 'email')
|
||||
user = get_user_data(apiurl, maintainer, 'login', 'realname', 'email')
|
||||
userdata.append(user[0])
|
||||
if user[1] != '-':
|
||||
userdata.append("%s <%s>"%(user[1], user[2]))
|
||||
@ -5173,21 +5191,22 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if len(args) != 3:
|
||||
raise oscerr.WrongArgs('Wrong number of arguments.')
|
||||
rev, dummy = parseRevisionOption(opts.revision)
|
||||
apiurl = self.get_api_url()
|
||||
|
||||
query = { }
|
||||
if opts.revision:
|
||||
query['rev'] = opts.revision
|
||||
if opts.expand:
|
||||
query['rev'] = show_upstream_srcmd5(conf.config['apiurl'], args[0], args[1], expand=True, revision=opts.revision)
|
||||
u = makeurl(conf.config['apiurl'], ['source', args[0], args[1], args[2]], query=query)
|
||||
query['rev'] = show_upstream_srcmd5(apiurl, args[0], args[1], expand=True, revision=opts.revision)
|
||||
u = makeurl(apiurl, ['source', args[0], args[1], args[2]], query=query)
|
||||
try:
|
||||
for data in streamfile(u):
|
||||
sys.stdout.write(data)
|
||||
except urllib2.HTTPError, e:
|
||||
if e.code == 404 and not opts.expand and not opts.unexpand:
|
||||
print >>sys.stderr, 'expanding link...'
|
||||
query['rev'] = show_upstream_srcmd5(conf.config['apiurl'], args[0], args[1], expand=True, revision=opts.revision)
|
||||
u = makeurl(conf.config['apiurl'], ['source', args[0], args[1], args[2]], query=query)
|
||||
query['rev'] = show_upstream_srcmd5(apiurl, args[0], args[1], expand=True, revision=opts.revision)
|
||||
u = makeurl(apiurl, ['source', args[0], args[1], args[2]], query=query)
|
||||
for data in streamfile(u):
|
||||
sys.stdout.write(data)
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user