From 8581b9d02f89952a8c7bd53982e95056cd5273c6 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Fri, 11 Oct 2019 16:04:29 -0400 Subject: [PATCH 1/7] adjust name for devel builds in modulemd.txt --- module_build_service/builder/KojiContentGenerator.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index 6a4d9d73..025d0a39 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -752,8 +752,14 @@ class KojiContentGenerator(object): prepdir = tempfile.mkdtemp(prefix="koji-cg-import") mmd_path = os.path.join(prepdir, "modulemd.txt") log.info("Writing generic modulemd.yaml to %r" % mmd_path) + if self.devel: + mmd = self.module.mmd() + mmd = mmd.copy(mmd.get_module_name() + "-devel") + contents = mmd_to_str(mmd) + else: + contents = self.mmd with open(mmd_path, "w", encoding="utf-8") as mmd_f: - mmd_f.write(self.mmd) + mmd_f.write(contents) mmd_path = os.path.join(prepdir, "modulemd.src.txt") self._download_source_modulemd(self.module.mmd(), mmd_path) From 8a83a17c535df1b00d2b98262d3ee888f7ca29ad Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Mon, 14 Oct 2019 13:02:33 -0400 Subject: [PATCH 2/7] update devel case assertion --- tests/test_content_generator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_content_generator.py b/tests/test_content_generator.py index 035f51c0..121a906b 100644 --- a/tests/test_content_generator.py +++ b/tests/test_content_generator.py @@ -131,6 +131,7 @@ class TestBuild: # For devel, only check that the name has -devel suffix. assert ret["build"]["name"] == "nginx-devel" assert ret["build"]["extra"]["typeinfo"]["module"]["name"] == "nginx-devel" + assert "name: nginx-devel" in ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"] # Ensure an anonymous Koji session works koji_session.krb_login.assert_not_called() From ad6afecc69701e13e4d8a64f764e49ebb300b8cb Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Mon, 14 Oct 2019 17:35:32 -0400 Subject: [PATCH 3/7] also fix build.extra --- module_build_service/builder/KojiContentGenerator.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index 025d0a39..c90f5fae 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -268,6 +268,11 @@ class KojiContentGenerator(object): ret = self.module.nvr if self.devel: ret["name"] += "-devel" + mmd = self.module.mmd() + mmd = mmd.copy(mmd.get_module_name() + "-devel") + modulemd_str = mmd_to_str(mmd) + else: + modulemd_str = self.module.modulemd ret[u"source"] = self.module.scmurl ret[u"start_time"] = calendar.timegm(self.module.time_submitted.utctimetuple()) ret[u"end_time"] = calendar.timegm(self.module.time_completed.utctimetuple()) @@ -276,7 +281,7 @@ class KojiContentGenerator(object): u"module": { u"module_build_service_id": self.module.id, u"content_koji_tag": self.module.koji_tag, - u"modulemd_str": self.module.modulemd, + u"modulemd_str": modulemd_str, u"name": ret["name"], u"stream": self.module.stream, u"version": self.module.version, From 620263c34b0685d49822141daa6ed48d3b8ed6e0 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Mon, 14 Oct 2019 19:03:44 -0400 Subject: [PATCH 4/7] combine common code --- .../builder/KojiContentGenerator.py | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index c90f5fae..fa7e6896 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -268,11 +268,6 @@ class KojiContentGenerator(object): ret = self.module.nvr if self.devel: ret["name"] += "-devel" - mmd = self.module.mmd() - mmd = mmd.copy(mmd.get_module_name() + "-devel") - modulemd_str = mmd_to_str(mmd) - else: - modulemd_str = self.module.modulemd ret[u"source"] = self.module.scmurl ret[u"start_time"] = calendar.timegm(self.module.time_submitted.utctimetuple()) ret[u"end_time"] = calendar.timegm(self.module.time_completed.utctimetuple()) @@ -281,7 +276,7 @@ class KojiContentGenerator(object): u"module": { u"module_build_service_id": self.module.id, u"content_koji_tag": self.module.koji_tag, - u"modulemd_str": modulemd_str, + u"modulemd_str": self._get_fixed_mmd(), u"name": ret["name"], u"stream": self.module.stream, u"version": self.module.version, @@ -332,6 +327,16 @@ class KojiContentGenerator(object): u"type": u"rpm", } + def _get_fixed_mmd(self): + if self.devel: + mmd = self.module.mmd() + mmd = mmd.copy(mmd.get_module_name() + "-devel") + ret = mmd_to_str(mmd) + else: + ret = self.mmd + + return ret + def _get_arch_mmd_output(self, output_path, arch): """ Returns the CG "output" dict for architecture specific modulemd file. @@ -757,14 +762,8 @@ class KojiContentGenerator(object): prepdir = tempfile.mkdtemp(prefix="koji-cg-import") mmd_path = os.path.join(prepdir, "modulemd.txt") log.info("Writing generic modulemd.yaml to %r" % mmd_path) - if self.devel: - mmd = self.module.mmd() - mmd = mmd.copy(mmd.get_module_name() + "-devel") - contents = mmd_to_str(mmd) - else: - contents = self.mmd with open(mmd_path, "w", encoding="utf-8") as mmd_f: - mmd_f.write(contents) + mmd_f.write(self._get_fixed_mmd()) mmd_path = os.path.join(prepdir, "modulemd.src.txt") self._download_source_modulemd(self.module.mmd(), mmd_path) From 5e854f503df6183d89e4bb4c655f28bd027ab16a Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Mon, 14 Oct 2019 19:06:28 -0400 Subject: [PATCH 5/7] adjust unit test --- tests/test_content_generator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_content_generator.py b/tests/test_content_generator.py index 121a906b..6b225907 100644 --- a/tests/test_content_generator.py +++ b/tests/test_content_generator.py @@ -131,7 +131,10 @@ class TestBuild: # For devel, only check that the name has -devel suffix. assert ret["build"]["name"] == "nginx-devel" assert ret["build"]["extra"]["typeinfo"]["module"]["name"] == "nginx-devel" - assert "name: nginx-devel" in ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"] + mmd_str = ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"] + assert ("name: nginx-devel" in mmd_str) + with open("%s/modulemd.txt" % file_dir) as fo: + assert mmd_str == fo.read() # Ensure an anonymous Koji session works koji_session.krb_login.assert_not_called() From dbcb0f30d17a2d0fe81fe683c16e95e32c2b69da Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Tue, 15 Oct 2019 10:28:50 -0400 Subject: [PATCH 6/7] drop unnecessary parentheses --- tests/test_content_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_content_generator.py b/tests/test_content_generator.py index 6b225907..38bd77d4 100644 --- a/tests/test_content_generator.py +++ b/tests/test_content_generator.py @@ -132,7 +132,7 @@ class TestBuild: assert ret["build"]["name"] == "nginx-devel" assert ret["build"]["extra"]["typeinfo"]["module"]["name"] == "nginx-devel" mmd_str = ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"] - assert ("name: nginx-devel" in mmd_str) + assert "name: nginx-devel" in mmd_str with open("%s/modulemd.txt" % file_dir) as fo: assert mmd_str == fo.read() From 107df947761659815ae2a1877d82dba42c7cf163 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Tue, 15 Oct 2019 10:44:29 -0400 Subject: [PATCH 7/7] fix unit test --- tests/test_content_generator.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/test_content_generator.py b/tests/test_content_generator.py index 38bd77d4..68bd3999 100644 --- a/tests/test_content_generator.py +++ b/tests/test_content_generator.py @@ -131,10 +131,11 @@ class TestBuild: # For devel, only check that the name has -devel suffix. assert ret["build"]["name"] == "nginx-devel" assert ret["build"]["extra"]["typeinfo"]["module"]["name"] == "nginx-devel" - mmd_str = ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"] - assert "name: nginx-devel" in mmd_str - with open("%s/modulemd.txt" % file_dir) as fo: - assert mmd_str == fo.read() + new_mmd = module_build_service.utils.load_mmd( + ret["build"]["extra"]["typeinfo"]["module"]["modulemd_str"]) + assert new_mmd.get_module_name().endswith("-devel") + new_mmd = module_build_service.utils.load_mmd_file("%s/modulemd.txt" % file_dir) + assert new_mmd.get_module_name().endswith("-devel") # Ensure an anonymous Koji session works koji_session.krb_login.assert_not_called()