197
198
command_registry.register(UpdateSlave)
201
def get_job_default_values(name, info):
203
for action in info['actions']:
204
if 'parameterDefinitions' in action:
206
for param_def in action['parameterDefinitions']:
207
name = param_def['name']
208
val = param_def['defaultParameterValue']['value']
200
213
class RunJob(Command):
203
216
description = 'Run job[s].'
204
217
arg_parser_class = ArgParser
219
def __init__(self, **kwargs):
220
super().__init__(**kwargs)
221
self.parser.add_argument(
222
'jobre', metavar='JOB_NAME_REGEXP',
223
help='A regular expression for job names.')
226
self.jk = Jenkins(self.conf.get('byoci.api'),
227
self.conf.get('byoci.user'),
228
self.conf.get('byoci.token'))
229
jobs = [j for j in self.jk.get_all_jobs()
230
if re.search(self.options.jobre, j['fullname'])]
232
logger.error('No job matches {}'.format(self.options.jobre))
235
name = job['fullname']
236
logger.info('Running {}'.format(name))
237
info = self.jk.get_job_info(name)
238
# Get the param values as the jenkins module doesn't support just
239
# calling the job without any parameter :-/
240
params = get_job_default_values(name, info)
241
self.jk.build_job(name, params)
207
245
command_registry.register(RunJob)