summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs/builder.py
diff options
context:
space:
mode:
authorWayne Warren <waynr+launchpad@sdf.org>2015-12-31 18:11:12 -0800
committerWayne Warren <waynr+launchpad@sdf.org>2016-08-05 06:40:12 -0700
commit3ce661838183e3c8a2aa4fdce28a6c4bd7e6e472 (patch)
treeee7363c0b7656425d5957085ed62c4b70888c178 /jenkins_jobs/builder.py
parent535acbc671b36b20a833417b66084add722214cf (diff)
downloadpython-jenkins-job-builder-3ce661838183e3c8a2aa4fdce28a6c4bd7e6e472.tar.gz
python-jenkins-job-builder-3ce661838183e3c8a2aa4fdce28a6c4bd7e6e472.tar.xz
python-jenkins-job-builder-3ce661838183e3c8a2aa4fdce28a6c4bd7e6e472.zip
Move 'update' yaml parsing to JenkinsJobs.execute.
1 Remove YamlParser from Builder. 2 ... 3 Rule the world. Change-Id: Id465078da2a7016fd59407516fe124602abd016c
Diffstat (limited to 'jenkins_jobs/builder.py')
-rw-r--r--jenkins_jobs/builder.py30
1 files changed, 9 insertions, 21 deletions
diff --git a/jenkins_jobs/builder.py b/jenkins_jobs/builder.py
index 582a5fd6..a3911cec 100644
--- a/jenkins_jobs/builder.py
+++ b/jenkins_jobs/builder.py
@@ -245,8 +245,6 @@ class Builder(object):
def delete_old_managed(self, keep=None):
jobs = self.jenkins.get_jobs()
deleted_jobs = 0
- if keep is None:
- keep = [job.name for job in self.parser.xml_jobs]
for job in jobs:
if job['name'] not in keep:
if self.jenkins.is_managed(job['name']):
@@ -296,24 +294,14 @@ class Builder(object):
logger.debug("'{0}' has not changed".format(job.name))
return changed
- def update_jobs(self, input_fn, jobs_glob=None, output=None,
- n_workers=None):
+ def update_jobs(self, xml_jobs, output=None, n_workers=None):
orig = time.time()
- self.parser = YamlParser(self.jjb_config, self.plugins_list)
- self.parser.load_files(input_fn)
-
- self.parser.expandYaml(jobs_glob)
- self.parser.generateXML()
- step = time.time()
- logging.debug('%d XML files generated in %ss',
- len(self.parser.jobs), str(step - orig))
-
- logger.info("Number of jobs generated: %d", len(self.parser.xml_jobs))
- self.parser.xml_jobs.sort(key=operator.attrgetter('name'))
+ logger.info("Number of jobs generated: %d", len(xml_jobs))
+ xml_jobs.sort(key=operator.attrgetter('name'))
- if (output and not hasattr(output, 'write')
- and not os.path.isdir(output)):
+ if (output and not hasattr(output, 'write') and
+ not os.path.isdir(output)):
logger.info("Creating directory %s" % output)
try:
os.makedirs(output)
@@ -326,7 +314,7 @@ class Builder(object):
if hasattr(output, 'write'):
output = utils.wrap_stream(output)
- for job in self.parser.xml_jobs:
+ for job in xml_jobs:
if hasattr(output, 'write'):
# `output` is a file-like object
logger.info("Job name: %s", job.name)
@@ -346,13 +334,13 @@ class Builder(object):
logger.debug("Writing XML to '{0}'".format(output_fn))
with io.open(output_fn, 'w', encoding='utf-8') as f:
f.write(job.output().decode('utf-8'))
- return self.parser.xml_jobs, len(self.parser.xml_jobs)
+ return xml_jobs, len(xml_jobs)
# Filter out the jobs that did not change
logging.debug('Filtering %d jobs for changed jobs',
- len(self.parser.xml_jobs))
+ len(xml_jobs))
step = time.time()
- jobs = [job for job in self.parser.xml_jobs
+ jobs = [job for job in xml_jobs
if self.changed(job)]
logging.debug("Filtered for changed jobs in %ss",
(time.time() - step))