Changes the ssh port ready check from a simple 'is the port open?' to
a full ssh login check to ensure that sshd is actually running on the
target server.
Adds timeout to ssh check
Fixes bug 1903
Change-Id: I8c3f0d8e1ac450726bc3336c00e7fbdf405fe067
Signed-off-by: beierlm <mark.beierl@canonical.com>
println("Waiting for VM at ${IP_ADDRESS} to be reachable")
alive = false
- while (! alive) {
- output=sh(returnStdout: true, script: "sleep 1 ; nc -zv ${IP_ADDRESS} 22 2>&1 || true").trim()
- println("output is [$output]")
- alive = output.contains("succeeded")
+ timeout(time: 1, unit: 'MINUTES') {
+ while (!alive) {
+ output = sh(
+ returnStatus: true,
+ script: "ssh -T -i ${SSH_KEY} " +
+ "-o StrictHostKeyChecking=no " +
+ "-o UserKnownHostsFile=/dev/null " +
+ "-o ConnectTimeout=5 ubuntu@${IP_ADDRESS} 'echo Alive'")
+ alive = (output == 0)
+ }
}
println("VM is ready and accepting ssh connections")
} // stage("Spawn Remote VM")