Merge "Added option to print job names as urls"

This commit is contained in:
Zuul 2018-01-26 15:43:45 +00:00 committed by Gerrit Code Review
commit 8d489abece
3 changed files with 24 additions and 2 deletions

View File

@ -52,6 +52,11 @@ job_builder section
string, allowing you to use those strings without having to define all the
keys it might be using.
**print_job_urls**
(Optional) If set to True it will print full jobs urls while updating jobs,
so user can be sure which instance was updated. User may click the link to
go directly to that job. False by default.
jenkins section
^^^^^^^^^^^^^^^

View File

@ -104,12 +104,22 @@ class JenkinsManager(object):
self._job_list = set(job['fullname'] for job in self.jobs)
return self._job_list
def _job_format(self, job_name):
# returns job name or url based on config option
if self._jjb_config.builder['print_job_urls']:
return self._jjb_config.jenkins['url'] + \
'/job/' + '/job/'.join(job_name.split('/'))
else:
return job_name
def update_job(self, job_name, xml):
if self.is_job(job_name):
logger.info("Reconfiguring jenkins job {0}".format(job_name))
logger.info("Reconfiguring jenkins job {0}".format(
self._job_format(job_name)))
self.jenkins.reconfig_job(job_name, xml)
else:
logger.info("Creating jenkins job {0}".format(job_name))
logger.info("Creating jenkins job {0}".format(
self._job_format(job_name)))
self.jenkins.create_job(job_name, xml)
def is_job(self, job_name):

View File

@ -126,6 +126,7 @@ class JJBConfig(object):
self.config_parser = config_parser
self._section = config_section
self.print_job_urls = False
self.jenkins = defaultdict(None)
self.builder = defaultdict(None)
@ -214,6 +215,11 @@ class JJBConfig(object):
flush_cache = config.getboolean('job_builder', 'flush_cache')
self.builder['flush_cache'] = flush_cache
# check the print_job_urls setting
if config.has_option('job_builder', 'print_job_urls'):
self.print_job_urls = config.getboolean('job_builder',
'print_job_urls')
# Jenkins supports access as an anonymous user, which can be used to
# ensure read-only behaviour when querying the version of plugins
# installed for test mode to generate XML output matching what will be
@ -263,6 +269,7 @@ class JJBConfig(object):
# The way we want to do things moving forward:
self.jenkins['url'] = config.get(self._section, 'url')
self.builder['print_job_urls'] = self.print_job_urls
# keep descriptions ? (used by yamlparser)
keep_desc = False