mirror of
https://github.com/openSUSE/osc.git
synced 2025-02-26 12:12:11 +01:00
initial service command for running source services remote or locally
This commit is contained in:
parent
2f544dad9f
commit
11d81fe776
3
NEWS
3
NEWS
@ -1,3 +1,6 @@
|
|||||||
|
0.130
|
||||||
|
- New "service" command to run source services locally or trigger a re-run on the server.
|
||||||
|
|
||||||
0.129
|
0.129
|
||||||
- "dists" command to show the configured default base repos from the server.
|
- "dists" command to show the configured default base repos from the server.
|
||||||
- "review list" command to list open review requests
|
- "review list" command to list open review requests
|
||||||
|
@ -4400,6 +4400,53 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
log = '\n'.join(get_commitlog(apiurl, project, package, rev, format, opts.meta))
|
log = '\n'.join(get_commitlog(apiurl, project, package, rev, format, opts.meta))
|
||||||
run_pager(log)
|
run_pager(log)
|
||||||
|
|
||||||
|
def do_service(self, subcmd, opts, *args):
|
||||||
|
"""${cmd_name}: Handle source services
|
||||||
|
|
||||||
|
Source services can be used to modify sources like downloading files,
|
||||||
|
verify files, generating files or modify existing files.
|
||||||
|
|
||||||
|
usage:
|
||||||
|
osc service COMMAND (inside working copy)
|
||||||
|
osc service COMMAND PROJECT PACKAGE
|
||||||
|
|
||||||
|
COMMAND can be:
|
||||||
|
run run defined services locally
|
||||||
|
remoterun trigger a re-run on the server side
|
||||||
|
|
||||||
|
${cmd_option_list}
|
||||||
|
"""
|
||||||
|
|
||||||
|
args = slash_split(args)
|
||||||
|
|
||||||
|
package = repo = arch = code = None
|
||||||
|
apiurl = self.get_api_url()
|
||||||
|
|
||||||
|
if len(args) < 2:
|
||||||
|
if is_package_dir(os.curdir):
|
||||||
|
project = store_read_project(os.curdir)
|
||||||
|
package = store_read_package(os.curdir)
|
||||||
|
apiurl = store_read_apiurl(os.curdir)
|
||||||
|
else:
|
||||||
|
raise oscerr.WrongArgs('Too few arguments.')
|
||||||
|
elif len(args) == 3:
|
||||||
|
project = args[1]
|
||||||
|
package = args[2]
|
||||||
|
else:
|
||||||
|
raise oscerr.WrongArgs('Too few arguments.')
|
||||||
|
|
||||||
|
command = args[0]
|
||||||
|
|
||||||
|
if command == "remoterun":
|
||||||
|
print runservice(apiurl, project, package)
|
||||||
|
|
||||||
|
if command == "run":
|
||||||
|
if not is_package_dir(os.curdir):
|
||||||
|
raise oscerr.WrongArgs('Local directory is no package')
|
||||||
|
p = Package(".")
|
||||||
|
p.run_source_services()
|
||||||
|
|
||||||
|
|
||||||
@cmdln.option('-f', '--failed', action='store_true',
|
@cmdln.option('-f', '--failed', action='store_true',
|
||||||
help='rebuild all failed packages')
|
help='rebuild all failed packages')
|
||||||
@cmdln.alias('rebuildpac')
|
@cmdln.alias('rebuildpac')
|
||||||
|
13
osc/core.py
13
osc/core.py
@ -4464,6 +4464,19 @@ def get_commitlog(apiurl, prj, package, revision, format = 'text', meta = False)
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
def runservice(apiurl, prj, package):
|
||||||
|
u = makeurl(apiurl, ['source', prj, package], query={'cmd': 'runservice'})
|
||||||
|
|
||||||
|
try:
|
||||||
|
f = http_POST(u)
|
||||||
|
except urllib2.HTTPError, e:
|
||||||
|
e.osc_msg = 'could not trigger service run for project \'%s\' package \'%s\'' % (prj, package)
|
||||||
|
raise
|
||||||
|
|
||||||
|
root = ET.parse(f).getroot()
|
||||||
|
return root.get('code')
|
||||||
|
|
||||||
|
|
||||||
def rebuild(apiurl, prj, package, repo, arch, code=None):
|
def rebuild(apiurl, prj, package, repo, arch, code=None):
|
||||||
query = { 'cmd': 'rebuild' }
|
query = { 'cmd': 'rebuild' }
|
||||||
if package:
|
if package:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user