Merge "Sort output in generated legacy files" into feature/zuulv3
diff --git a/zuul/cmd/migrate.py b/zuul/cmd/migrate.py
index 8ed098b..567980c 100644
--- a/zuul/cmd/migrate.py
+++ b/zuul/cmd/migrate.py
@@ -29,6 +29,7 @@
import getopt
import logging
import os
+import operator
import subprocess
import tempfile
import re
@@ -1181,15 +1182,17 @@
zuul_yaml = os.path.join(self.outdir, 'zuul.yaml')
zuul_d = os.path.join(self.outdir, 'zuul.d')
orig = os.path.join(zuul_d, '01zuul.yaml')
- job_outfile = os.path.join(zuul_d, '99converted-jobs.yaml')
- project_outfile = os.path.join(zuul_d, '99converted-projects.yaml')
+ job_outfile = os.path.join(zuul_d, '99legacy-jobs.yaml')
+ project_outfile = os.path.join(zuul_d, '99legacy-projects.yaml')
+ project_template_outfile = os.path.join(
+ zuul_d, '99legacy-project-templates.yaml')
if not os.path.exists(self.outdir):
os.makedirs(self.outdir)
if not os.path.exists(zuul_d):
os.makedirs(zuul_d)
if os.path.exists(zuul_yaml) and self.move:
os.rename(zuul_yaml, orig)
- return job_outfile, project_outfile
+ return job_outfile, project_outfile, project_template_outfile
def makeNewJobs(self, old_job, parent: Job=None):
self.log.debug("makeNewJobs(%s)", old_job)
@@ -1417,22 +1420,28 @@
return new_project
def writeJobs(self):
- job_outfile, project_outfile = self.setupDir()
+ job_outfile, project_outfile, template_outfile = self.setupDir()
job_config = []
project_config = []
+ template_config = []
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']):
- job_config.append({'project-template': new_template})
+ template_config.append({'project-template': new_template})
+ template_config = sorted(
+ template_config,
+ key=lambda template: template['project-template']['name'])
project_names = []
for project in self.layout.get('projects', []):
project_names.append(project['name'])
project_config.append(
{'project': self.writeProject(project)})
+ project_config = sorted(
+ project_config, key=lambda project: project['project']['name'])
seen_jobs = []
for job in sorted(self.job_objects, key=lambda job: job.name):
@@ -1444,11 +1453,18 @@
job_config.append({'job': job.toJobDict(
has_artifacts, has_post, has_draft, project_names)})
seen_jobs.append(job.name)
+ job_config = sorted(
+ job_config, key=lambda job: job['job']['name'])
with open(job_outfile, 'w') as yamlout:
# Insert an extra space between top-level list items
yamlout.write(ordered_dump(job_config).replace('\n-', '\n\n-'))
+ with open(template_outfile, 'w') as yamlout:
+ # Insert an extra space between top-level list items
+ yamlout.write(
+ ordered_dump(template_config).replace('\n-', '\n\n-'))
+
with open(project_outfile, 'w') as yamlout:
# Insert an extra space between top-level list items
yamlout.write(ordered_dump(project_config).replace('\n-', '\n\n-'))