diff --git a/app/Actions/Service/DeleteService.php b/app/Actions/Service/DeleteService.php index a70adfecf..743158c2d 100644 --- a/app/Actions/Service/DeleteService.php +++ b/app/Actions/Service/DeleteService.php @@ -10,43 +10,36 @@ class DeleteService use AsAction; public function handle(Service $service) { - try { - $server = data_get($service, 'server'); - if ($server->isFunctional()) { - StopService::run($service); - $storagesToDelete = collect([]); - - $service->environment_variables()->delete(); - $commands = []; - foreach ($service->applications()->get() as $application) { - $storages = $application->persistentStorages()->get(); - foreach ($storages as $storage) { - $storagesToDelete->push($storage); - } - } - foreach ($service->databases()->get() as $database) { - $storages = $database->persistentStorages()->get(); - foreach ($storages as $storage) { - $storagesToDelete->push($storage); - } - } - foreach ($storagesToDelete as $storage) { - $commands[] = "docker volume rm -f $storage->name"; - } - $commands[] = "docker rm -f $service->uuid"; - - instant_remote_process($commands, $server, false); - } - } catch (\Exception $e) { - throw new \Exception($e->getMessage()); - } finally { - foreach ($service->applications()->get() as $application) { - $application->forceDelete(); - } - foreach ($service->databases()->get() as $database) { - $database->forceDelete(); - } - $service->forceDelete(); + $server = data_get($service, 'server'); + if ($server->isFunctional()) { + StopService::run($service); } + $storagesToDelete = collect([]); + + $service->environment_variables()->delete(); + $commands = []; + foreach ($service->applications()->get() as $application) { + $storages = $application->persistentStorages()->get(); + foreach ($storages as $storage) { + $storagesToDelete->push($storage); + } + $application->forceDelete(); + } + foreach ($service->databases()->get() as $database) { + $storages = $database->persistentStorages()->get(); + foreach ($storages as $storage) { + $storagesToDelete->push($storage); + } + $database->forceDelete(); + } + if ($server->isFunctional()) { + foreach ($storagesToDelete as $storage) { + $commands[] = "docker volume rm -f $storage->name"; + } + $commands[] = "docker rm -f $service->uuid"; + + instant_remote_process($commands, $server, false); + } + $service->forceDelete(); } }