From dd78c86a60fffea02b93f4b92d2afdbd1bd30d96 Mon Sep 17 00:00:00 2001 From: Saeed Vaziry <61919774+saeedvaziry@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:26:09 +0100 Subject: [PATCH] Fix missing ip for AWS and DO (#461) * Fix missing ip for AWS and DO * Fix Vultr --- app/Actions/Server/CreateServer.php | 3 +++ app/ServerProviders/AWS.php | 4 ++++ app/ServerProviders/DigitalOcean.php | 4 ++++ app/ServerProviders/Vultr.php | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/app/Actions/Server/CreateServer.php b/app/Actions/Server/CreateServer.php index 83ce07f0..f3da2ba7 100755 --- a/app/Actions/Server/CreateServer.php +++ b/app/Actions/Server/CreateServer.php @@ -86,6 +86,9 @@ private function install(Server $server): void while ($maxWait > 0) { sleep(10); $maxWait -= 10; + if (! $server->provider()->isRunning()) { + continue; + } try { $server->ssh()->connect(); break; diff --git a/app/ServerProviders/AWS.php b/app/ServerProviders/AWS.php index f40c5e6e..7380e574 100755 --- a/app/ServerProviders/AWS.php +++ b/app/ServerProviders/AWS.php @@ -149,6 +149,10 @@ public function isRunning(): bool $this->server->save(); } + if (! $this->server->ip) { + return false; + } + if (isset($result['Reservations'][0]['Instances'][0]['State']) && isset($result['Reservations'][0]['Instances'][0]['State']['Name'])) { $status = $result['Reservations'][0]['Instances'][0]['State']['Name']; if ($status == 'running') { diff --git a/app/ServerProviders/DigitalOcean.php b/app/ServerProviders/DigitalOcean.php index 85a23da7..0e93dc33 100644 --- a/app/ServerProviders/DigitalOcean.php +++ b/app/ServerProviders/DigitalOcean.php @@ -176,6 +176,10 @@ public function isRunning(): bool $this->server->save(); } + if (! $this->server->ip) { + return false; + } + return $status->json()['droplet']['status'] == 'active'; } diff --git a/app/ServerProviders/Vultr.php b/app/ServerProviders/Vultr.php index 6fffb514..036f61cf 100644 --- a/app/ServerProviders/Vultr.php +++ b/app/ServerProviders/Vultr.php @@ -171,6 +171,10 @@ public function isRunning(): bool $this->server->save(); } + if (! $this->server->ip) { + return false; + } + return $status->json()['instance']['status'] == 'active'; }