From f75a324030f39e11619450e62ae7326f3ea21bd9 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 1 Sep 2023 10:02:24 +0200 Subject: [PATCH] fix: proxy start job --- app/Actions/Proxy/SaveConfigurationSync.php | 21 +++++++++++++-------- app/Actions/Proxy/StartProxy.php | 6 ------ app/Jobs/DockerCleanupJob.php | 14 ++++++++++---- app/Jobs/ProxyCheckJob.php | 5 +++-- app/Jobs/ProxyStartJob.php | 7 +++++++ 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/app/Actions/Proxy/SaveConfigurationSync.php b/app/Actions/Proxy/SaveConfigurationSync.php index c17607516..b35b4375b 100644 --- a/app/Actions/Proxy/SaveConfigurationSync.php +++ b/app/Actions/Proxy/SaveConfigurationSync.php @@ -9,15 +9,20 @@ class SaveConfigurationSync { public function __invoke(Server $server, string $configuration) { - $proxy_path = get_proxy_path(); - $docker_compose_yml_base64 = base64_encode($configuration); + try { + $proxy_path = get_proxy_path(); + $docker_compose_yml_base64 = base64_encode($configuration); - $server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value; - $server->save(); + $server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value; + $server->save(); + + instant_remote_process([ + "mkdir -p $proxy_path", + "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml", + ], $server); + } catch (\Throwable $th) { + ray($th); + } - instant_remote_process([ - "mkdir -p $proxy_path", - "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml", - ], $server); } } diff --git a/app/Actions/Proxy/StartProxy.php b/app/Actions/Proxy/StartProxy.php index b9d9ab02b..d541921be 100644 --- a/app/Actions/Proxy/StartProxy.php +++ b/app/Actions/Proxy/StartProxy.php @@ -12,12 +12,6 @@ class StartProxy { public function __invoke(Server $server): Activity { - // TODO: check for other proxies - if (is_null(data_get($server, 'proxy.type'))) { - $server->proxy->type = ProxyTypes::TRAEFIK_V2->value; - $server->proxy->status = ProxyStatus::EXITED->value; - $server->save(); - } $proxy_path = get_proxy_path(); $networks = collect($server->standaloneDockers)->map(function ($docker) { return $docker['network']; diff --git a/app/Jobs/DockerCleanupJob.php b/app/Jobs/DockerCleanupJob.php index 071846fe6..6ac00bc4b 100644 --- a/app/Jobs/DockerCleanupJob.php +++ b/app/Jobs/DockerCleanupJob.php @@ -34,7 +34,13 @@ public function handle(): void if (isDev()) { $this->dockerRootFilesystem = "/"; } else { - $this->dockerRootFilesystem = instant_remote_process(["stat --printf=%m $(docker info --format '{{json .DockerRootDir}}'' |sed 's/\"//g')"], $server, false); + $this->dockerRootFilesystem = instant_remote_process( + [ + "stat --printf=%m $(docker info --format '{{json .DockerRootDir}}'' |sed 's/\"//g')" + ], + $server, + false + ); } if (!$this->dockerRootFilesystem) { continue; @@ -47,9 +53,9 @@ public function handle(): void instant_remote_process(['docker builder prune -af'], $server); $usageAfter = $this->getFilesystemUsage($server); if ($usageAfter < $this->usageBefore) { - ray('Saved ' . ( $this->usageBefore - $usageAfter) . '% disk space on ' . $server->name)->color('orange'); - send_internal_notification('DockerCleanupJob done: Saved ' . ( $this->usageBefore - $usageAfter) . '% disk space on ' . $server->name); - }else { + ray('Saved ' . ($this->usageBefore - $usageAfter) . '% disk space on ' . $server->name)->color('orange'); + send_internal_notification('DockerCleanupJob done: Saved ' . ($this->usageBefore - $usageAfter) . '% disk space on ' . $server->name); + } else { ray('DockerCleanupJob failed to save disk space on ' . $server->name)->color('orange'); } } else { diff --git a/app/Jobs/ProxyCheckJob.php b/app/Jobs/ProxyCheckJob.php index 9d5559053..720dd2ea1 100755 --- a/app/Jobs/ProxyCheckJob.php +++ b/app/Jobs/ProxyCheckJob.php @@ -33,8 +33,9 @@ public function handle() if ($status === 'running') { continue; } - // $server->team->notify(new ProxyStoppedNotification($server)); - resolve(StartProxy::class)($server); + if (data_get($server, 'proxy.type')) { + resolve(StartProxy::class)($server); + } } } catch (\Throwable $th) { ray($th->getMessage()); diff --git a/app/Jobs/ProxyStartJob.php b/app/Jobs/ProxyStartJob.php index 4e2331a68..91932a48c 100755 --- a/app/Jobs/ProxyStartJob.php +++ b/app/Jobs/ProxyStartJob.php @@ -3,6 +3,8 @@ namespace App\Jobs; use App\Actions\Proxy\StartProxy; +use App\Enums\ProxyStatus; +use App\Enums\ProxyTypes; use App\Models\Server; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -27,6 +29,11 @@ public function handle() if ($status === 'running') { return; } + if (is_null(data_get($this->server, 'proxy.type'))) { + $this->server->proxy->type = ProxyTypes::TRAEFIK_V2->value; + $this->server->proxy->status = ProxyStatus::EXITED->value; + $this->server->save(); + } resolve(StartProxy::class)($this->server); } catch (\Throwable $th) { send_internal_notification('ProxyStartJob failed with: ' . $th->getMessage());