aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2022-03-11 13:38:55 +0000
committerDaniel P. Berrangé <berrange@redhat.com>2022-05-11 13:20:39 +0100
commitfc322436a5f54d5772dbf04a589a97ed2eff0854 (patch)
tree4035c6316d2e17d8e7de2588f4ff83dbdfe41640
parent5327f35906531711603e1cad545f200d8ed2beb8 (diff)
downloadlibvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.zip
libvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.tar.gz
libvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.tar.bz2
lcitool/manifest: split out logic for writing out a YAML file
We currently write out a single YAML file for the GitLab config, but will shortly be switching to create many files. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r--guests/lcitool/lcitool/manifest.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/guests/lcitool/lcitool/manifest.py b/guests/lcitool/lcitool/manifest.py
index 7e8f954..5ac4f10 100644
--- a/guests/lcitool/lcitool/manifest.py
+++ b/guests/lcitool/lcitool/manifest.py
@@ -234,6 +234,21 @@ class Manifest:
def _clean_cirrus(self, generated, dryrun):
self._clean_files(generated, dryrun, "cirrus", "vars")
+ def _replace_file(self, content, path, dryrun):
+ if len(content) == 0:
+ if not self.quiet:
+ print(f"Deleting {path}")
+ path.unlink(missing_ok=True)
+ return
+
+ if not self.quiet:
+ print(f"Generating {path}")
+ header = util.generate_file_header(["manifest", self.configpath])
+
+ lines = header + "\n".join(content)
+ if not dryrun:
+ util.atomic_write(path, lines)
+
def _generate_gitlab(self, dryrun):
if not dryrun:
self.outdir.mkdir(parents=True, exist_ok=True)
@@ -287,19 +302,7 @@ class Manifest:
gitlabcontent.extend(self._generate_gitlab_cross_build_jobs())
gitlabcontent.extend(self._generate_gitlab_cirrus_build_jobs())
- if len(gitlabcontent) == 0:
- if not self.quiet:
- print(f"Deleting {gitlabfile}")
- gitlabfile.unlink(missing_ok=True)
- return
-
- if not self.quiet:
- print(f"Generating {gitlabfile}")
- header = util.generate_file_header(["manifest", self.configpath])
-
- lines = header + "\n".join(gitlabcontent)
- if not dryrun:
- util.atomic_write(gitlabfile, lines)
+ self._replace_file(gitlabcontent, gitlabfile, dryrun)
def _generate_gitlab_container_jobs(self, cross):
jobs = []