diff options
author | Monty Taylor <mordred@inaugust.com> | 2017-09-16 12:28:18 -0500 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2017-09-16 12:28:18 -0500 |
commit | aa7a69bb5b069f597d955d0233a9845117003723 (patch) | |
tree | b8f4cf0747a114221034785ef218c4085988cbf9 /zuul/cmd/migrate.py | |
parent | 6be5a8b0dce8a9db19bc749d6d3723cd10975a3e (diff) | |
download | zuul-aa7a69bb5b069f597d955d0233a9845117003723.tar.gz |
Don't try to write jobs that came from mappings
When we mark a job in the mapping, it's becaues we have a new job for
it. There is, therefore, no need to emit one.
Change-Id: Ic1eee1e86915b5d984c66f281aec295259849a9d
Diffstat (limited to 'zuul/cmd/migrate.py')
-rw-r--r-- | zuul/cmd/migrate.py | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/zuul/cmd/migrate.py b/zuul/cmd/migrate.py index 195766351..3ee9bbf08 100644 --- a/zuul/cmd/migrate.py +++ b/zuul/cmd/migrate.py @@ -314,6 +314,7 @@ class Job: self.branch = None self.files = None self.jjb_job = None + self.emit = True if self.content and not self.name: self.name = get_single_key(content) @@ -331,6 +332,9 @@ class Job: node_key = '-{node}'.format(node=node) self.name = self.name.replace(node_key, '') + def setNoEmit(self): + self.emit = False + def setVars(self, vars): self.vars = vars @@ -530,8 +534,9 @@ class Job: def emitPlaybooks(self, jobsdir): has_artifacts = False if not self.jjb_job: - self.log.error( - 'Job {name} has no job content'.format(name=self.name)) + if self.emit: + self.log.error( + 'Job {name} has no job content'.format(name=self.name)) return False, False playbook_dir = os.path.join(jobsdir, self.job_path) @@ -716,11 +721,13 @@ class JobMapping: def getNewJob(self, job_name, remove_gate): if job_name in self.job_direct: if isinstance(self.job_direct[job_name], dict): - return Job(job_name, content=self.job_direct[job_name]) + job = Job(job_name, content=self.job_direct[job_name]) else: - if job_name not in self.seen_new_jobs: - self.seen_new_jobs.append(self.job_direct[job_name]) - return Job(job_name, name=self.job_direct[job_name]) + job = Job(job_name, name=self.job_direct[job_name]) + if job_name not in self.seen_new_jobs: + self.seen_new_jobs.append(self.job_direct[job_name]) + job.setNoEmit() + return job new_job = None for map_info in self.job_mapping: @@ -728,6 +735,7 @@ class JobMapping: if new_job: if job_name not in self.seen_new_jobs: self.seen_new_jobs.append(new_job.name) + new_job.setNoEmit() break if not new_job: orig_name = job_name @@ -948,7 +956,7 @@ class ZuulMigrate: elif isinstance(old_job, dict): parent_name = get_single_key(old_job) - parent = Job(orig=parent_name, parent=parent) + parent = self.makeNewJobs(parent_name, parent=parent)[0] jobs = self.makeNewJobs(old_job[parent_name], parent=parent) for job in jobs: @@ -1154,9 +1162,9 @@ class ZuulMigrate: for template in self.layout.get('project-templates', []): self.log.debug("Processing template: %s", template) + new_template = self.writeProjectTemplate(template) + self.new_templates[new_template['name']] = new_template if not self.mapping.hasProjectTemplate(template['name']): - new_template = self.writeProjectTemplate(template) - self.new_templates[new_template['name']] = new_template job_config.append({'project-template': new_template}) for project in self.layout.get('projects', []): @@ -1166,7 +1174,8 @@ class ZuulMigrate: seen_jobs = [] for job in self.job_objects: if (job.name not in seen_jobs - and job.name not in self.mapping.seen_new_jobs): + and job.name not in self.mapping.seen_new_jobs + and job.emit): has_artifacts, has_post = job.emitPlaybooks(self.outdir) job_config.append({'job': job.toJobDict( has_artifacts, has_post)}) |