Add acceptance comment for created SR.
.RE
+.PP
+\-j \-\-jenkins
+.RS 2
+Trigger Jenkins job to accept submission.
+.RE
+
.\"
.\" The "reject" command description
.\"
Add rejection comment for created SR.
.RE
+.PP
+\-j \-\-jenkins
+.RS 2
+Trigger Jenkins job to reject submission.
+.RE
+
.\"
.\" The "group" command description
.\"
"""
import sys
+from collections import namedtuple
from repa.obs import OBS
from repa.main import sub_main
"""Adds arguments to the parser. Called from [sub_]main."""
parser.add_argument('submission', help='submission or group')
parser.add_argument('-c', '--comment', help='comment', default='')
+ parser.add_argument('-j', '--jenkins', action='store_true',
+ help='trigger Jenkins job')
@staticmethod
def run(argv):
"""Command line entry point. Called from [sub_]main."""
obs = OBS(argv.apiurl, argv.apiuser, argv.apipasswd)
+
+ cred = None
+ if argv.jenkins:
+ cred = namedtuple('cred', ['url', 'username', 'password'])(\
+ argv.jenkins_url, argv.jenkins_user, argv.jenkins_passwd)
+
return accept_or_reject(obs, argv.submission, 'accepted',
- argv.project, argv.comment)
+ argv.project, argv.comment, cred)
if __name__ == '__main__':
sys.exit(sub_main(sys.argv[1:], Accept()))
import json
from functools import wraps, partial
+from repa.jenkins import trigger_build
+
OBS_PROJECT_PREFIX = "home:prerelease:"
class RepaException(Exception):
obs.delete_project(project)
-def accept_or_reject(obs, submission, state, target, comment=''):
- """Create SRs and set their state for one submission or for a group."""
+def accept_or_reject(obs, submission, state, target, comment='',
+ jenkins_cred=None):
+ """
+ Create SRs and set their state for one submission or for a group.
+
+ This can be done 2 ways - directly using OBS API and by triggering
+ jenkins job
+ """
for name, project, meta in _resolve_submissions(obs, submission, target):
# osc submitreq [OPTIONS] SOURCEPRJ SOURCEPKG DESTPRJ [DESTPKG]
# osc request accept [-m TEXT] ID
% (comment or "submission %s" % str(name),
projects, meta['git_tag'])
- # Create SR
- reqid = obs.create_sr(project, obs.get_source_packages(project),
- str(meta['obs_target_prj']), message=message)
+ target_prj = str(meta['obs_target_prj'])
+
+ if jenkins_cred:
+ build, status, out = \
+ trigger_build('re', {'action': state,
+ 'submission': str(name),
+ 'target_project': target_prj,
+ 'comment': comment}, jenkins_cred)
+ print "Jenkins job: re, build #%s, status: %s" % (build, status)
+ print out
+ else:
+ # Create SR
+ reqid = obs.create_sr(project, obs.get_source_packages(project),
+ target_prj, message=message)
- print 'created SR %s' % reqid
+ print 'created SR %s' % reqid
- # and immediately set its state
- message = "SR %s is set to %s" % (reqid, state)
- if comment:
- message += comment
- obs.set_sr_state(reqid, state=state,
+ # and immediately set its state
+ message = "SR %s is set to %s" % (reqid, state)
+ if comment:
+ message += comment
+ obs.set_sr_state(reqid, state=state,
message=str(message), force=True)
- print 'set SR state to', state
+ print 'set SR state to', state
# delete submit group
if submission.startswith('submitgroup'):
"""
import sys
+from collections import namedtuple
from repa.obs import OBS
from repa.main import sub_main
"""Adds arguments to the parser. Called from [sub_]main."""
parser.add_argument('submission', help='submission or group')
parser.add_argument('-c', '--comment', help='comment', default='')
+ parser.add_argument('-j', '--jenkins', action='store_true',
+ help='trigger Jenkins job')
@staticmethod
def run(argv):
"""Command line entry point. Called from [sub_]main."""
obs = OBS(argv.apiurl, argv.apiuser, argv.apipasswd)
+
+ cred = None
+ if argv.jenkins:
+ cred = namedtuple('cred', ['url', 'username', 'password'])(\
+ argv.jenkins_url, argv.jenkins_user, argv.jenkins_passwd)
+
return accept_or_reject(obs, argv.submission, 'declined',
- argv.project, argv.comment)
+ argv.project, argv.comment, cred)
if __name__ == '__main__':
sys.exit(sub_main(sys.argv[1:], Reject()))