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'; }