From 5ef2c5bf953fd374b9202809939957fa35310269 Mon Sep 17 00:00:00 2001 From: William Petit Date: Fri, 1 Mar 2019 10:41:41 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20l'attente=20de=20conne?= =?UTF-8?q?ctivit=C3=A9=20SSH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vars/nebula.groovy | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vars/nebula.groovy b/vars/nebula.groovy index 539be15..bc1e3ef 100644 --- a/vars/nebula.groovy +++ b/vars/nebula.groovy @@ -4,6 +4,7 @@ import groovy.util.XmlSlurper import groovy.util.slurpersupport.GPathResult import groovy.util.slurpersupport.NodeChild import groovy.xml.XmlUtil +import org.jenkinsci.plugins.workflow.steps.FlowInterruptedException class Client { @@ -149,17 +150,16 @@ def runInNewVM(Map args) { initWithCredentials(urlCredentialsId, userCredentialsId) { client -> client.withNewVM(vmTemplate, terminateOnExit) { host -> - def sshArgs = "-i \'${VM_SSH_KEY}\' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" + 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..." - waitUntil { - try { - sh "ssh -q ${sshArgs} -o ConnectTimeout=1 root@${host} exit" - return true - } catch (e) { - return false + 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; } + sleep(5) } // On créait un script temporaire à exécuter sur la machine distante