blob: d2dc5c6fd84016838c0740b29293d55742da0ccf [file] [log] [blame]
#!groovy
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
import hudson.plugins.sshslaves.*
def launcherName = ${launcher}.getClass().getName()
def retStrategyName = new hudson.slaves.RetentionStrategy.${ret_strategy}().getClass().getName()
switch (launcherName) {
case 'hudson.slaves.JNLPLauncher':
result = Jenkins.instance.slaves.find{
it.name == "${name}" &&
it.numExecutors == ${num_executors} &&
it.nodeDescription == "${desc}" &&
it.remoteFS == "${remote_home}" &&
it.labelString == "${label}" &&
it.mode == Node.Mode.${node_mode} &&
it.launcher.tunnel == ("${tunnel}" ?: null) &&
it.launcher.vmargs == ("${jvmopts}" ?: null) &&
it.launcher.getClass().getName().equals(launcherName) &&
it.retentionStrategy.getClass().getName().equals(retStrategyName)
}
break
default:
result = Jenkins.instance.slaves.find{
it.name == "${name}" &&
it.numExecutors == ${num_executors} &&
it.nodeDescription == "${desc}" &&
it.remoteFS == "${remote_home}" &&
it.labelString == "${label}" &&
it.mode == Node.Mode.${node_mode} &&
it.launcher.vmargs == ("${jvmopts}" ?: null) &&
it.launcher.getClass().getName().equals(launcherName) &&
it.retentionStrategy.getClass().getName().equals(retStrategyName)
}
break
}
if(result){
print("EXISTS")
}else{
Slave slave = new DumbSlave(
"${name}",
"${desc}",
"${remote_home}",
"${num_executors}",
Node.Mode.${node_mode},
"${label}",
${launcher},
new RetentionStrategy.${ret_strategy}(),
new LinkedList())
Jenkins.instance.addNode(slave)
print("CREATED")
}