@@ -672,8 +672,9 @@ async def update_errata_record(
672672async def get_matching_albs_packages (
673673 db : AsyncSession ,
674674 errata_package : models .NewErrataPackage ,
675- prod_repos_cache ,
676- module ,
675+ prod_repos_cache : typing .Dict ,
676+ module : Optional [str ] = None ,
677+ build_id : Optional [int ] = None ,
677678) -> Tuple [List [models .NewErrataToALBSPackage ], dict ]:
678679 package_type = {}
679680 items_to_insert = []
@@ -723,13 +724,19 @@ async def get_matching_albs_packages(
723724 # inside the ALBS, this is, build_task_artifacts.
724725 name_query = f"{ errata_package .name } -{ errata_package .version } "
725726
727+ conditions = [
728+ models .BuildTaskArtifact .type == "rpm" ,
729+ models .BuildTaskArtifact .name .startswith (name_query ),
730+ ]
731+ if build_id :
732+ conditions .append (
733+ models .BuildTask .build_id == build_id
734+ )
726735 query = (
727736 select (models .BuildTaskArtifact )
737+ .join (models .BuildTaskArtifact .build_task )
728738 .where (
729- and_ (
730- models .BuildTaskArtifact .type == "rpm" ,
731- models .BuildTaskArtifact .name .startswith (name_query ),
732- )
739+ and_ (* conditions )
733740 )
734741 .options (
735742 selectinload (models .BuildTaskArtifact .build_task ),
@@ -739,13 +746,15 @@ async def get_matching_albs_packages(
739746 # only packages that belong to the right module:stream
740747 if module :
741748 module_name , module_stream = module .split (":" )
749+ filters = [
750+ models .RpmModule .name == module_name ,
751+ models .RpmModule .stream == module_stream ,
752+ ]
753+
742754 query = (
743755 query .join (models .BuildTaskArtifact .build_task )
744756 .join (models .BuildTask .rpm_modules )
745- .filter (
746- models .RpmModule .name == module_name ,
747- models .RpmModule .stream == module_stream ,
748- )
757+ .filter (* filters )
749758 )
750759
751760 result = (await db .execute (query )).scalars ().all ()
@@ -880,15 +889,18 @@ async def process_new_errata_packages(
880889 db_errata : models .NewErrataRecord ,
881890 platform : models .Platform ,
882891):
883- packages = []
892+ db_packages = []
884893 pkg_types = []
894+ prod_repos_cache = {}
895+
885896 search_params = prepare_search_params (errata )
886- prod_repos_cache = await load_platform_packages (
887- platform ,
888- search_params ,
889- False ,
890- db_errata .module ,
891- )
897+ if not errata .is_issued_by_almalinux :
898+ prod_repos_cache = await load_platform_packages (
899+ platform ,
900+ search_params ,
901+ False ,
902+ db_errata .module ,
903+ )
892904 for package in errata .packages :
893905 # Just in case
894906 if package .arch == "src" :
@@ -904,14 +916,14 @@ async def process_new_errata_packages(
904916 reboot_suggested = False ,
905917 )
906918 db_errata .packages .append (db_package )
907- packages .append (db_package )
919+ db_packages .append (db_package )
908920 # Create ErrataToAlbsPackages
909921 matching_packages , pkg_type = await get_matching_albs_packages (
910- db , db_package , prod_repos_cache , db_errata .module
922+ db , db_package , prod_repos_cache , db_errata .module , package . build_id
911923 )
912- packages .extend (matching_packages )
924+ db_packages .extend (matching_packages )
913925 pkg_types .append (pkg_type )
914- return packages , pkg_types
926+ return db_packages , pkg_types
915927
916928
917929async def create_new_errata_record (errata : typing .Dict ):
0 commit comments