From ec523ddfb419752e5420088802c9df4e353970db Mon Sep 17 00:00:00 2001 From: William Petit Date: Fri, 15 Mar 2019 12:18:39 +0100 Subject: [PATCH] Nebula: add VM connection timeout --- vars/nebula.groovy | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/vars/nebula.groovy b/vars/nebula.groovy index a509a19..18ca91c 100644 --- a/vars/nebula.groovy +++ b/vars/nebula.groovy @@ -149,6 +149,7 @@ def runInNewVM(Map args, Closure body) { def vmTemplate = args.get('vmTemplate', '') def terminateOnExit = args.get('terminateOnExit', true) def shell = args.get("shell", "/bin/sh") + def connectionTimeout = args.get('connectionTimeout', 10) // On récupère les identifiants de connexion SSH pour la VM withCredentials([ @@ -160,13 +161,15 @@ def runInNewVM(Map args, Closure body) { def sshArgs = "-i '${VM_SSH_KEY}' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" // On attend que la connexion SSH soit disponible - println "En attente de l'accès SSH sur la machine ${host}..." - while(true) { - def status = sh script: "nc -zv ${host} 22", returnStatus: true - if (status == 0) { - break; + println "En attente de l'accès SSH sur la machine ${host}..." + timeout(connectionTimeout) { + while(true) { + def status = sh script: "nc -zv ${host} 22", returnStatus: true + if (status == 0) { + break; + } + sleep(5) } - sleep(5) } def remoteShell = { script ->