From 7d9bb50b22cbf648c006fa8661115bfe212a5023 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 2 Jun 2025 13:24:28 -0700 Subject: [PATCH] add logging to show what services are holding onto csvs --- app/aws/s3.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/aws/s3.py b/app/aws/s3.py index d98529d8a..1db6e5f11 100644 --- a/app/aws/s3.py +++ b/app/aws/s3.py @@ -11,6 +11,8 @@ from flask import current_app from app import job_cache, job_cache_lock from app.clients import AWS_CLIENT_CONFIG + +# from app.service.rest import get_service_by_id from notifications_utils import aware_utcnow FILE_LOCATION_STRUCTURE = "service-{}-notify/{}.csv" @@ -162,6 +164,36 @@ def cleanup_old_s3_objects(): current_app.logger.exception( "#delete-old-s3-objects An error occurred while cleaning up old s3 objects", ) + try: + response = s3_client.list_objects_v2(Bucket=bucket_name) + + service_ids = set() + while True: + for obj in response.get("Contents", []): + # Get the service id out of the upload key + key = obj["Key"] + object_arr = key.split("/") + service_id = object_arr[0] + service_id = service_id.replace("-service-notify", "") + service_ids.add(service_id) + if "NextContinuationToken" in response: + response = s3_client.list_objects_v2( + Bucket=bucket_name, + ContinuationToken=response["NextContinuationToken"], + ) + else: + break + retained_services = [] + for service_id in service_ids: + # service = get_service_by_id(service_id) + retained_services.append(service_id) + current_app.logger.info( + f"#delete-old-s3-objects Services with retained jobs: {retained_services}" + ) + except Exception: + current_app.logger.exception( + "#delete-old-s3-objects An error occurred while cleaning up old s3 objects", + ) def get_job_id_from_s3_object_key(key):