From 0530cf27126a452b26031bb3deeba919d6908cd3 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Sep 24 2021 08:29:28 +0000 Subject: When `cts_url` is configured, use CTS `/repo` API for buildContainer yum_repourls. Signed-off-by: Jan Kaluza --- diff --git a/pungi/phases/osbs.py b/pungi/phases/osbs.py index 4f4a298..8a39523 100644 --- a/pungi/phases/osbs.py +++ b/pungi/phases/osbs.py @@ -147,6 +147,15 @@ class OSBSThread(WorkerThread): raise RuntimeError( "There is no variant %s to get repo from to pass to OSBS." % repo ) + cts_url = compose.conf.get("cts_url", None) + if cts_url: + return os.path.join( + cts_url, + "api/1/composes", + compose.compose_id, + "repo/?variant=%s" % variant, + ) + repo_path = compose.paths.compose.repository( "$basearch", variant, create_dir=False ) diff --git a/tests/test_osbs_phase.py b/tests/test_osbs_phase.py index b37fa17..fde5753 100644 --- a/tests/test_osbs_phase.py +++ b/tests/test_osbs_phase.py @@ -365,6 +365,37 @@ class OSBSThreadTest(helpers.PungiTestCase): self.assertIn("baseurl=http://example.com/repo\n", f) @mock.patch("pungi.phases.osbs.kojiwrapper.KojiWrapper") + def test_run_with_extra_repos_with_cts(self, KojiWrapper): + cfg = { + "url": "git://example.com/repo?#BEEFCAFE", + "target": "f24-docker-candidate", + "git_branch": "f24-docker", + "name": "my-name", + "version": "1.0", + "repo": [ + "Everything", + ], + } + self.compose.conf["cts_url"] = "http://cts.localhost" + self._setupMock(KojiWrapper) + self._assertConfigCorrect(cfg) + + self.t.process((self.compose, self.compose.variants["Server"], cfg), 1) + + cts_url = "http://cts.localhost/api/1/composes/%s" % self.compose.compose_id + options = { + "name": "my-name", + "version": "1.0", + "git_branch": "f24-docker", + "yum_repourls": [ + "%s/repo/?variant=Server" % cts_url, + "%s/repo/?variant=Everything" % cts_url, + ], + } + self._assertCorrectCalls(options) + self._assertCorrectMetadata() + + @mock.patch("pungi.phases.osbs.kojiwrapper.KojiWrapper") def test_run_with_deprecated_registry(self, KojiWrapper): cfg = { "url": "git://example.com/repo?#BEEFCAFE",