diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index 385b85804a..165ee306a6 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1115,6 +1115,12 @@ class ScanViewSet(BaseRLSViewSet): def report(self, request, pk=None): scan_instance = Scan.objects.get(pk=pk) output_path = scan_instance.output_path + + if not output_path: + return Response( + {"detail": "No files found"}, status=status.HTTP_404_NOT_FOUND + ) + if scan_instance.upload_to_s3: s3_client = None try: diff --git a/api/src/backend/tasks/tasks.py b/api/src/backend/tasks/tasks.py index f4f876b1d3..60e5eab032 100644 --- a/api/src/backend/tasks/tasks.py +++ b/api/src/backend/tasks/tasks.py @@ -223,7 +223,7 @@ def generate_outputs(scan_id: str, provider_id: str, tenant_id: str): ) # Retrieve findings queryset - findings_qs = Finding.objects.filter(scan_id=scan_id) + findings_qs = Finding.objects.filter(scan_id=scan_id).order_by("uid") # Process findings in batches for batch, is_last_batch in batched(findings_qs.iterator(), 50): diff --git a/prowler/lib/outputs/csv/csv.py b/prowler/lib/outputs/csv/csv.py index 37b573cb85..dec5ab86bc 100644 --- a/prowler/lib/outputs/csv/csv.py +++ b/prowler/lib/outputs/csv/csv.py @@ -102,7 +102,8 @@ class CSV(Output): csv_writer.writeheader() for finding in self._data: csv_writer.writerow(finding) - self._file_descriptor.close() + if self.close_file: + self._file_descriptor.close() except Exception as error: logger.error( f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"