From 20fcd437c5ece69d0d0447d2c475b3a896f4ee2e Mon Sep 17 00:00:00 2001 From: davidhorvat Date: Thu, 5 Dec 2024 21:18:24 +0100 Subject: [PATCH] chore: add delete_all_dangling_server_docker_images --- .../DeleteAllDanglingServerDockerImages.php | 15 ++++++++++++ app/Http/Controllers/Api/DockerController.php | 23 ++++++++++++++++++- routes/api.php | 3 ++- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 app/Actions/Docker/DeleteAllDanglingServerDockerImages.php diff --git a/app/Actions/Docker/DeleteAllDanglingServerDockerImages.php b/app/Actions/Docker/DeleteAllDanglingServerDockerImages.php new file mode 100644 index 000000000..592241b95 --- /dev/null +++ b/app/Actions/Docker/DeleteAllDanglingServerDockerImages.php @@ -0,0 +1,15 @@ +json(GetServerDockerImageDetails::run($server, $id)); } + + public function delete_all_dangling_server_docker_images($server_uuid) + { + $query = Server::query(); + + $server = $query->where('uuid', $server_uuid)->first(); + if (!$server) { + return response()->json(['error' => 'server not found'], 404); + } + + $isReachable = (bool) $server->settings->is_reachable; + // If the server is reachable, send the reachable notification if it was sent before + if ($isReachable !== true) { + return response()->json(['error' => 'server is not reachable.'], 403); + } + + $message = DeleteAllDanglingServerDockerImages::run($server); + + return response()->json(['message' => $message]); + } } diff --git a/routes/api.php b/routes/api.php index 59687d8a6..fc24abcc7 100644 --- a/routes/api.php +++ b/routes/api.php @@ -131,7 +131,8 @@ Route::group([ Route::match(['get', 'post'], '/services/{uuid}/stop', [ServicesController::class, 'action_stop'])->middleware([IgnoreReadOnlyApiToken::class]); Route::get('/docker/{server_uuid}/images', [DockerController::class, 'list_server_docker_images']); - Route::get('/docker/{server_uuid}/image/{id}', [DockerController::class, 'get_server_dcoker_image_details']); + Route::get('/docker/{server_uuid}/image/{id}', [DockerController::class, 'get_server_docker_image_details']); + Route::delete('/docker/{server_uuid}/images/delete/dangling', [DockerController::class, 'delete_all_dangling_server_docker_images']); });