Merge #1770 Pass koji_tag to get_built_rpms_in_module_build()

This commit is contained in:
Brendan Reilly
2023-03-15 17:54:28 +00:00
7 changed files with 17 additions and 24 deletions

View File

@@ -31,7 +31,6 @@ from module_build_service.common.koji import (
)
from module_build_service.common.retry import retry
from module_build_service.scheduler import events
from module_build_service.scheduler.db_session import db_session
from module_build_service.scheduler.reuse import get_reusable_components, get_reusable_module
logging.basicConfig(level=logging.DEBUG)
@@ -1167,20 +1166,14 @@ class KojiModuleBuilder(GenericBuilder):
return weights
@classmethod
def get_built_rpms_in_module_build(cls, mmd):
def get_built_rpms_in_module_build(cls, mmd, koji_tag):
"""
:param Modulemd mmd: Modulemd to get the built RPMs from.
:koji_tag str: koji_tag corresponding to the module
:return: list of NVRs
"""
build = models.ModuleBuild.get_build_from_nsvc(
db_session,
mmd.get_module_name(),
mmd.get_stream_name(),
mmd.get_version(),
mmd.get_context()
)
koji_session = get_session(conf, login=False)
rpms = koji_session.listTaggedRPMS(build.koji_tag, latest=True)[0]
rpms = koji_session.listTaggedRPMS(koji_tag, latest=True)[0]
nvrs = set(kobo.rpmlib.make_nvr(rpm, force_epoch=True) for rpm in rpms)
return list(nvrs)

View File

@@ -753,24 +753,17 @@ class MockModuleBuilder(GenericBuilder):
self._createrepo(include_module_yaml=True)
@classmethod
def get_built_rpms_in_module_build(cls, mmd):
def get_built_rpms_in_module_build(cls, mmd, koji_tag):
"""
:param Modulemd mmd: Modulemd to get the built RPMs from.
:return: list of NVRs
"""
build = models.ModuleBuild.get_build_from_nsvc(
db_session,
mmd.get_module_name(),
mmd.get_stream_name(),
mmd.get_version(),
mmd.get_context()
)
if build.koji_tag.startswith("repofile://"):
if koji_tag.startswith("repofile://"):
# Modules from local repository have already the RPMs filled in mmd.
return mmd.get_rpm_artifacts()
else:
koji_session = get_session(conf, login=False)
rpms = koji_session.listTaggedRPMS(build.koji_tag, latest=True)[0]
rpms = koji_session.listTaggedRPMS(koji_tag, latest=True)[0]
nvrs = set(kobo.rpmlib.make_nvr(rpm, force_epoch=True) for rpm in rpms)
return list(nvrs)

View File

@@ -346,9 +346,10 @@ class GenericBuilder(six.with_metaclass(ABCMeta)):
raise NotImplementedError()
@classmethod
def get_built_rpms_in_module_build(cls, mmd):
def get_built_rpms_in_module_build(cls, mmd, koji_tag):
"""
:param Modulemd mmd: Modulemd to get the built RPMs from.
:koji_tag str: koji_tag corresponding to the module
:return: list of NVRs
"""
raise NotImplementedError()

View File

@@ -200,7 +200,7 @@ def record_filtered_rpms(mmd):
filtered_rpms = []
rpm_filter = req_mmd.get_rpm_filters()
if rpm_filter:
built_nvrs = builder.get_built_rpms_in_module_build(req_mmd)
built_nvrs = builder.get_built_rpms_in_module_build(req_mmd, req_data["koji_tag"])
for nvr in built_nvrs:
parsed_nvr = kobo.rpmlib.parse_nvr(nvr)
if parsed_nvr["name"] in rpm_filter:

View File

@@ -27,6 +27,7 @@ data:
stream: f28
version: '3'
context: '00000000'
koji_tag: module-f28-build
api:
rpms:
- perl-Tangerine

View File

@@ -947,7 +947,7 @@ class TestBuild:
self.cg.module.modulemd = mmd_to_str(mmd)
file_dir = self.cg._prepare_file_directory()
with io.open(path.join(file_dir, "modulemd.src.txt"), encoding="utf-8") as mmd:
assert len(mmd.read()) == 1339
assert len(mmd.read()) == 1385
def test_finalize_mmd_devel(self):
self.cg.devel = True

View File

@@ -776,9 +776,14 @@ class TestKojiBuilder:
module_build.context = mmd.get_context()
db_session.commit()
ret = KojiModuleBuilder.get_built_rpms_in_module_build(mmd)
ret = KojiModuleBuilder.get_built_rpms_in_module_build(
mmd, "module-testmodule-master-20170816080815-37c6c57"
)
assert set(ret) == {"bar-2:1.30-4.el8+1308+551bfa71", "tar-2:1.30-4.el8+1308+551bfa71"}
session.assert_not_called()
assert session.listTaggedRPMS.mock_calls == [
mock.call("module-testmodule-master-20170816080815-37c6c57", latest=True)
]
@pytest.mark.parametrize(
"cg_enabled,cg_devel_enabled", [(False, False), (True, False), (True, True)]