diff --git a/src/lightning_app/testing/testing.py b/src/lightning_app/testing/testing.py index cd7d13b74e39f..a7a2b70d474a6 100644 --- a/src/lightning_app/testing/testing.py +++ b/src/lightning_app/testing/testing.py @@ -1,4 +1,5 @@ import asyncio +import datetime import json import os import shutil @@ -472,6 +473,18 @@ def wait_for(page, callback: Callable, *args, **kwargs) -> Any: sleep(2) +def _delete_lightning_app(client, project_id, app_id, app_name): + print(f"Deleting {app_name} id: {app_id}") + try: + res = client.lightningapp_instance_service_delete_lightningapp_instance( + project_id=project_id, + id=app_id, + ) + assert res == {} + except ApiException as ex: + print(f"Failed to delete {app_name}. Exception {ex}") + + def delete_cloud_lightning_apps(): """Cleanup cloud apps that start with the name test-{PR_NUMBER}-{TEST_APP_NAME}. @@ -492,17 +505,14 @@ def delete_cloud_lightning_apps(): project = _get_project(client) list_apps = client.lightningapp_instance_service_list_lightningapp_instances(project_id=project.project_id) - print([lit_app.name for lit_app in list_apps.lightningapps]) - for lit_app in list_apps.lightningapps: if pr_number and app_name and not lit_app.name.startswith(f"test-{pr_number}-{app_name}-"): continue - print(f"Deleting {lit_app.name}") - try: - res = client.lightningapp_instance_service_delete_lightningapp_instance( - project_id=project.project_id, - id=lit_app.id, - ) - assert res == {} - except ApiException as e: - print(f"Failed to delete {lit_app.name}. Exception {e}") + _delete_lightning_app(client, project_id=project.project_id, app_id=lit_app.id, app_name=lit_app.name) + + print("deleting apps that were created more than 1 hour ago.") + + for lit_app in list_apps.lightningapps: + + if lit_app.created_at < datetime.datetime.now(lit_app.created_at.tzinfo) - datetime.timedelta(hours=1): + _delete_lightning_app(client, project_id=project.project_id, app_id=lit_app.id, app_name=lit_app.name)