From 77667be570f5d83ddad87e782cc6ebede4987a51 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 28 Aug 2023 20:29:44 +0200 Subject: [PATCH] fix: validation --- app/Http/Livewire/Server/Proxy/Status.php | 12 +++++++----- bootstrap/helpers/remoteProcess.php | 21 +++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/app/Http/Livewire/Server/Proxy/Status.php b/app/Http/Livewire/Server/Proxy/Status.php index a4a29b7c2..352a1df52 100644 --- a/app/Http/Livewire/Server/Proxy/Status.php +++ b/app/Http/Livewire/Server/Proxy/Status.php @@ -12,10 +12,12 @@ class Status extends Component public function get_status() { - dispatch_sync(new ProxyContainerStatusJob( - server: $this->server - )); - $this->server->refresh(); - $this->emit('proxyStatusUpdated'); + if (data_get($this->server,'settings.is_usable')) { + dispatch_sync(new ProxyContainerStatusJob( + server: $this->server + )); + $this->server->refresh(); + $this->emit('proxyStatusUpdated'); + } } } diff --git a/bootstrap/helpers/remoteProcess.php b/bootstrap/helpers/remoteProcess.php index 86e11bcf3..b99dc3a9d 100644 --- a/bootstrap/helpers/remoteProcess.php +++ b/bootstrap/helpers/remoteProcess.php @@ -16,11 +16,6 @@ use Illuminate\Support\Sleep; use Spatie\Activitylog\Models\Activity; -/** - * Run a Remote Process, which SSH's asynchronously into a machine to run the command(s). - * @TODO Change 'root' to 'coolify' when it's able to run Docker commands without sudo - * - */ function remote_process( array $command, Server $server, @@ -167,17 +162,23 @@ function validateServer(Server $server) { try { refresh_server_connection($server->privateKey); - $uptime = instant_remote_process(['uptime'], $server); + $uptime = instant_remote_process(['uptime'], $server, false); if (!$uptime) { - $uptime = 'Server not reachable.'; - throw new \Exception('Server not reachable.'); + $server->settings->is_reachable = false; + return [ + "uptime" => null, + "dockerVersion" => null, + ]; } $server->settings->is_reachable = true; $dockerVersion = instant_remote_process(['docker version|head -2|grep -i version'], $server, false); if (!$dockerVersion) { - $dockerVersion = 'Not installed.'; - throw new \Exception('Docker not installed.'); + $dockerVersion = null; + return [ + "uptime" => $uptime, + "dockerVersion" => null, + ]; } $server->settings->is_usable = true; return [