summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs/config.py
diff options
context:
space:
mode:
authorDarragh Bailey <dbailey@hpe.com>2018-01-12 14:29:11 +0000
committerThanh Ha <thanh.ha@linuxfoundation.org>2018-01-12 11:49:17 -0500
commita7af4a4c100916f77456a8dabbc92a3f935bde62 (patch)
tree8c227ef2efceb47ae7141d75e66853348b514134 /jenkins_jobs/config.py
parent58a02d58f786da95bfc67b86b736864e13955633 (diff)
downloadpython-jenkins-job-builder-a7af4a4c100916f77456a8dabbc92a3f935bde62.tar.gz
python-jenkins-job-builder-a7af4a4c100916f77456a8dabbc92a3f935bde62.tar.xz
python-jenkins-job-builder-a7af4a4c100916f77456a8dabbc92a3f935bde62.zip
Tidy up config object
Remove unnecessary class members that are not used or queried after object initialization. Remove temporary assignment no longer needed. Change-Id: Iab2cd2a69fae103967bb20cf2ede4884f4bf67d6
Diffstat (limited to 'jenkins_jobs/config.py')
-rw-r--r--jenkins_jobs/config.py62
1 files changed, 23 insertions, 39 deletions
diff --git a/jenkins_jobs/config.py b/jenkins_jobs/config.py
index 136dc78d..95f94485 100644
--- a/jenkins_jobs/config.py
+++ b/jenkins_jobs/config.py
@@ -125,14 +125,7 @@ class JJBConfig(object):
self.config_parser = config_parser
- self.ignore_cache = False
- self.flush_cache = False
- self.user = None
- self.password = None
- self.section = config_section
- self.plugins_info = None
- self.timeout = builder._DEFAULT_TIMEOUT
- self.allow_empty_variables = None
+ self._section = config_section
self.jenkins = defaultdict(None)
self.builder = defaultdict(None)
@@ -204,19 +197,22 @@ class JJBConfig(object):
logger.debug("Config: {0}".format(config))
# check the ignore_cache setting
- if config.has_option(self.section, 'ignore_cache'):
+ ignore_cache = False
+ if config.has_option(self._section, 'ignore_cache'):
logging.warning("ignore_cache option should be moved to the "
"[job_builder] section in the config file, the "
"one specified in the [jenkins] section will be "
"ignored in the future")
- self.ignore_cache = config.getboolean(self.section, 'ignore_cache')
+ ignore_cache = config.getboolean(self._section, 'ignore_cache')
elif config.has_option('job_builder', 'ignore_cache'):
- self.ignore_cache = config.getboolean('job_builder',
- 'ignore_cache')
+ ignore_cache = config.getboolean('job_builder', 'ignore_cache')
+ self.builder['ignore_cache'] = ignore_cache
# check the flush_cache setting
+ flush_cache = False
if config.has_option('job_builder', 'flush_cache'):
- self.flush_cache = config.getboolean('job_builder', 'flush_cache')
+ flush_cache = config.getboolean('job_builder', 'flush_cache')
+ self.builder['flush_cache'] = flush_cache
# Jenkins supports access as an anonymous user, which can be used to
# ensure read-only behaviour when querying the version of plugins
@@ -227,15 +223,18 @@ class JJBConfig(object):
# catching 'TypeError' is a workaround for python 2.6 interpolation
# error
# https://bugs.launchpad.net/openstack-ci/+bug/1259631
+
try:
- self.user = config.get(self.section, 'user')
+ user = config.get(self._section, 'user')
except (TypeError, configparser.NoOptionError):
- pass
+ user = None
+ self.jenkins['user'] = user
try:
- self.password = config.get(self.section, 'password')
+ password = config.get(self._section, 'password')
except (TypeError, configparser.NoOptionError):
- pass
+ password = None
+ self.jenkins['password'] = password
# None -- no timeout, blocking mode; same as setblocking(True)
# 0.0 -- non-blocking mode; same as setblocking(False) <--- default
@@ -245,29 +244,23 @@ class JJBConfig(object):
# "timeout=jenkins_jobs.builder._DEFAULT_TIMEOUT" or not set timeout at
# all.
try:
- self.timeout = config.getfloat(self.section, 'timeout')
+ timeout = config.getfloat(self._section, 'timeout')
except (ValueError):
raise JenkinsJobsException("Jenkins timeout config is invalid")
except (TypeError, configparser.NoOptionError):
- pass
+ timeout = builder._DEFAULT_TIMEOUT
+ self.jenkins['timeout'] = timeout
- if (config.has_option(self.section, 'query_plugins_info') and
- not config.getboolean(self.section, "query_plugins_info")):
+ if (config.has_option(self._section, 'query_plugins_info') and
+ not config.getboolean(self._section, "query_plugins_info")):
logger.debug("Skipping plugin info retrieval")
- self.plugins_info = []
+ self.builder['plugins_info'] = []
self.recursive = config.getboolean('job_builder', 'recursive')
self.excludes = config.get('job_builder', 'exclude').split(os.pathsep)
# The way we want to do things moving forward:
- self.jenkins['url'] = config.get(self.section, 'url')
- self.jenkins['user'] = self.user
- self.jenkins['password'] = self.password
- self.jenkins['timeout'] = self.timeout
-
- self.builder['ignore_cache'] = self.ignore_cache
- self.builder['flush_cache'] = self.flush_cache
- self.builder['plugins_info'] = self.plugins_info
+ self.jenkins['url'] = config.get(self._section, 'url')
# keep descriptions ? (used by yamlparser)
keep_desc = False
@@ -294,14 +287,11 @@ class JJBConfig(object):
# allow empty variables?
self.yamlparser['allow_empty_variables'] = (
- self.allow_empty_variables or
config and config.has_section('job_builder') and
config.has_option('job_builder', 'allow_empty_variables') and
config.getboolean('job_builder', 'allow_empty_variables'))
def validate(self):
- config = self.config_parser
-
# Inform the user as to what is likely to happen, as they may specify
# a real jenkins instance in test mode to get the plugin info to check
# the XML generated.
@@ -320,12 +310,6 @@ class JJBConfig(object):
not isinstance(self.builder['plugins_info'], list)):
raise JenkinsJobsException("plugins_info must contain a list!")
- # Temporary until yamlparser is refactored to query config object
- if self.yamlparser['allow_empty_variables'] is not None:
- config.set('job_builder',
- 'allow_empty_variables',
- str(self.yamlparser['allow_empty_variables']))
-
def get_module_config(self, section, key, default=None):
""" Given a section name and a key value, return the value assigned to
the key in the JJB .ini file if it exists, otherwise emit a warning