diff --git a/bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java b/bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java index 4d6a23b9..c09d98b5 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java @@ -76,6 +76,7 @@ public class VultrDriver extends ComputeServiceDriverBase { return snapshot == null ? die("initSnapshotOsId: no snapshot OS found") : snapshot.getId().intValue(); } + public static final long SERVER_START_INITIAL_INTERVAL = SECONDS.toMillis(30); public static final long SERVER_START_POLL_INTERVAL = SECONDS.toMillis(5); public static final long SERVER_START_TIMEOUT = MINUTES.toMillis(10); public static final long SERVER_STOP_TIMEOUT = SECONDS.toMillis(60); @@ -157,6 +158,7 @@ public class VultrDriver extends ComputeServiceDriverBase { final long start = now(); boolean startedOk = false; final HttpRequestBean poll = auth(new HttpRequestBean(POLL_SERVER_URL+subId)); + sleep(SERVER_START_INITIAL_INTERVAL); while (now() - start < SERVER_START_TIMEOUT) { sleep(SERVER_START_POLL_INTERVAL); final HttpResponseBean pollResponse = getResponse(poll); @@ -173,7 +175,7 @@ public class VultrDriver extends ComputeServiceDriverBase { && serverNode.has(VULTR_V4_IP)) { final String serverState = serverNode.get("server_state").textValue(); - if (serverState.equals("none") || serverState.equals("locked")) continue; + if (!serverState.equals("ok")) continue; final String status = serverNode.get("status").textValue(); final String ip4 = serverNode.get(VULTR_V4_IP).textValue(); diff --git a/bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java b/bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java index 4c79999a..f05509bc 100644 --- a/bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java +++ b/bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java @@ -322,7 +322,7 @@ public class StandardNetworkService implements NetworkService { final CommandResult result = ansibleSetup(script, progressMeter); // .... wait for ansible ... if (!result.isZeroExitStatus()) { - if (result.getStderr().contains("Connection timed out")) { + if (result.getStderr().contains("Connection timed out") || result.getStderr().contains("SSH connection timeout")) { log.warn("newNode: SSH connection timeout"); continue; }