|
8 | 8 | from models_library.users import UserID |
9 | 9 | from servicelib.logging_errors import create_troubleshotting_log_kwargs |
10 | 10 | from servicelib.logging_utils import log_context |
| 11 | +from simcore_service_webserver.products import _api as products_service |
11 | 12 |
|
12 | 13 | from ..folders import folders_trash_service |
13 | 14 | from ..projects import projects_trash_service |
@@ -108,32 +109,38 @@ async def empty_trash_safe( |
108 | 109 |
|
109 | 110 | async def delete_expired_trash_as_admin(app: web.Application) -> list[str]: |
110 | 111 | settings = get_plugin_settings(app) |
111 | | - |
112 | | - # app-wide |
113 | 112 | retention = timedelta(days=settings.TRASH_RETENTION_DAYS) |
114 | 113 | delete_until = arrow.now().datetime - retention |
115 | 114 |
|
116 | | - with log_context( |
117 | | - _logger, |
118 | | - logging.DEBUG, |
119 | | - "CODE PLACEHOLDER: **ALL** items marked as trashed during %s days are deleted (those marked before %s)", |
120 | | - retention, |
121 | | - delete_until, |
122 | | - ): |
123 | | - try: |
124 | | - await folders_trash_service.batch_delete_trashed_folders_as_admin( |
125 | | - app, trashed_before=delete_until, product_name="TODO", fail_fast=False |
126 | | - ) |
127 | | - except Exception as exc: # pylint: disable=broad-exception-caught |
128 | | - _logger.warning( |
129 | | - **create_troubleshotting_log_kwargs( |
130 | | - "Error deleting a trashed folders (and content) that were expired.", |
131 | | - error=exc, |
132 | | - error_context={ |
133 | | - "delete_until": delete_until, |
134 | | - "retention": retention, |
135 | | - }, |
| 115 | + for product in products_service.list_products(app): |
| 116 | + with log_context( |
| 117 | + _logger, |
| 118 | + logging.DEBUG, |
| 119 | + "Items marked as trashed before %s in %s [retention=%s]", |
| 120 | + retention, |
| 121 | + product.display_name, |
| 122 | + delete_until, |
| 123 | + ): |
| 124 | + try: |
| 125 | + |
| 126 | + await folders_trash_service.batch_delete_trashed_folders_as_admin( |
| 127 | + app, |
| 128 | + trashed_before=delete_until, |
| 129 | + product_name=product.name, |
| 130 | + fail_fast=False, |
| 131 | + ) |
| 132 | + |
| 133 | + except Exception as exc: # pylint: disable=broad-exception-caught |
| 134 | + _logger.warning( |
| 135 | + **create_troubleshotting_log_kwargs( |
| 136 | + "Error batch deleting expired trashed folders as admin.", |
| 137 | + error=exc, |
| 138 | + error_context={ |
| 139 | + "delete_until": delete_until, |
| 140 | + "retention": retention, |
| 141 | + "product_name": product.name, |
| 142 | + }, |
| 143 | + ) |
136 | 144 | ) |
137 | | - ) |
138 | 145 |
|
139 | 146 | return [] |
0 commit comments