mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-13 14:29:42 +08:00
Merge #1770 Pass koji_tag to get_built_rpms_in_module_build()
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -27,6 +27,7 @@ data:
|
||||
stream: f28
|
||||
version: '3'
|
||||
context: '00000000'
|
||||
koji_tag: module-f28-build
|
||||
api:
|
||||
rpms:
|
||||
- perl-Tangerine
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)]
|
||||
|
||||
Reference in New Issue
Block a user