Skip to content

Commit 26f3039

Browse files
author
Andrei Neagu
committed
dreictor-v2 cleansup after sidecar
1 parent dd9df67 commit 26f3039

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/api_client/_public.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,11 @@ async def free_reserved_disk_space(
503503
) -> None:
504504
await self._thin_client.post_disk_reserved_free(dynamic_sidecar_endpoint)
505505

506+
async def cleanup_long_running_tasks(
507+
self, dynamic_sidecar_endpoint: AnyHttpUrl
508+
) -> None:
509+
await self._thin_client.delete_long_running_tasks(dynamic_sidecar_endpoint)
510+
506511

507512
def _get_proxy_configuration(
508513
entrypoint_container_name: str, service_port: PortInt

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/api_client/_thin.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,3 +302,12 @@ async def post_disk_reserved_free(
302302
) -> Response:
303303
url = self._get_url(dynamic_sidecar_endpoint, "disk/reserved:free")
304304
return await self.client.post(url)
305+
306+
@retry_on_errors()
307+
@expect_status(status.HTTP_204_NO_CONTENT)
308+
async def delete_long_running_tasks(
309+
self,
310+
dynamic_sidecar_endpoint: AnyHttpUrl,
311+
) -> Response:
312+
url = self._get_url(dynamic_sidecar_endpoint, "long-running-tasks")
313+
return await self.client.delete(url)

services/director-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/scheduler/_core/_events_utils.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ async def service_remove_sidecar_proxy_docker_networks_and_volumes(
209209
app: FastAPI,
210210
node_uuid: NodeID,
211211
swarm_stack_name: str,
212+
sidecars_client: SidecarsClient,
212213
set_were_state_and_outputs_saved: bool | None = None,
213214
) -> None:
214215
scheduler_data: SchedulerData = _get_scheduler_data(app, node_uuid)
@@ -220,6 +221,9 @@ async def service_remove_sidecar_proxy_docker_networks_and_volumes(
220221
await task_progress.update(
221222
message="removing dynamic sidecar stack", percent=ProgressPercent(0.1)
222223
)
224+
225+
await sidecars_client.cleanup_long_running_tasks(scheduler_data.endpoint)
226+
223227
await remove_dynamic_sidecar_stack(
224228
node_uuid=scheduler_data.node_uuid,
225229
swarm_stack_name=swarm_stack_name,
@@ -389,7 +393,11 @@ async def attempt_pod_removal_and_data_saving(
389393
raise
390394

391395
await service_remove_sidecar_proxy_docker_networks_and_volumes(
392-
TaskProgress.create(), app, scheduler_data.node_uuid, settings.SWARM_STACK_NAME
396+
TaskProgress.create(),
397+
app,
398+
scheduler_data.node_uuid,
399+
settings.SWARM_STACK_NAME,
400+
sidecars_client,
393401
)
394402

395403
# remove sidecar's api client

services/director-v2/tests/unit/test_modules_dynamic_sidecar_client_api_thin.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,23 @@ async def test_post_disk_reserved_free(
397397
assert_responses(mock_response, response)
398398

399399

400+
async def test_delete_long_running_tasks(
401+
thin_client: ThinSidecarsClient,
402+
dynamic_sidecar_endpoint: AnyHttpUrl,
403+
mock_request: MockRequestType,
404+
) -> None:
405+
mock_response = Response(status.HTTP_204_NO_CONTENT)
406+
mock_request(
407+
"DELETE",
408+
f"{dynamic_sidecar_endpoint}{thin_client.API_VERSION}/long-running-tasks",
409+
mock_response,
410+
None,
411+
)
412+
413+
response = await thin_client.delete_long_running_tasks(dynamic_sidecar_endpoint)
414+
assert_responses(mock_response, response)
415+
416+
400417
async def test_post_containers_compose_spec(
401418
thin_client: ThinSidecarsClient,
402419
dynamic_sidecar_endpoint: AnyHttpUrl,

0 commit comments

Comments
 (0)