From 0335ea4e0b8ef87788032b1092cd35a71e84e049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Fri, 16 May 2025 12:41:12 +0200 Subject: [PATCH] fix(findings): Fix latest metadata backfill condition (#7762) --- api/src/backend/api/v1/views.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index eec7b4827c..36fa3f08f9 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1947,18 +1947,18 @@ class FindingViewSet(PaginateByPkMixin, BaseRLSViewSet): tenant_id = request.tenant_id query_params = request.query_params - latest_scan_ids = ( + latest_scan_queryset = ( Scan.all_objects.filter(tenant_id=tenant_id, state=StateChoices.COMPLETED) .order_by("provider_id", "-inserted_at") .distinct("provider_id") - .values_list("id", flat=True) ) queryset = ResourceScanSummary.objects.filter( - tenant_id=tenant_id, scan_id__in=latest_scan_ids + tenant_id=tenant_id, + scan_id__in=latest_scan_queryset.values_list("id", flat=True), ) # ToRemove: Temporary fallback mechanism - scans_with_flag = latest_scan_ids.annotate( + scans_with_flag = latest_scan_queryset.annotate( has_summary=Exists( ResourceScanSummary.objects.filter( tenant_id=tenant_id, @@ -1966,9 +1966,11 @@ class FindingViewSet(PaginateByPkMixin, BaseRLSViewSet): ) ) ) - if missing_scan_ids := scans_with_flag.filter(has_summary=False).values_list( - "id", flat=True - ): + missing_scan_ids = list( + scans_with_flag.filter(has_summary=False).values_list("id", flat=True) + ) + + if missing_scan_ids: for scan_id in missing_scan_ids: backfill_scan_resource_summaries_task.apply_async( kwargs={"tenant_id": tenant_id, "scan_id": scan_id}