|
| 1 | + import jenkins.model.Jenkins |
| 2 | + import hudson.slaves.* |
| 3 | + import hudson.plugins.sshslaves.* |
| 4 | + |
| 5 | + def createLauncher(agentLauncher){ |
| 6 | + if(agentLauncher.class.name == 'hudson.plugins.sshslaves.SSHLauncher'){ |
| 7 | + return "new hudson.plugins.sshslaves.SSHLauncher('${agentLauncher.host}',${agentLauncher.port},'${agentLauncher.credentialsId}','${agentLauncher?.jvmOptions}','${agentLauncher?.javaPath}','${agentLauncher?.prefixStartSlaveCmd}','${agentLauncher?.suffixStartSlaveCmd}',${agentLauncher?.launchTimeoutSeconds},${agentLauncher?.maxNumRetries},${agentLauncher?.retryWaitTime})" |
| 8 | + } else if(agentLauncher.class.name == 'com.cloudbees.jenkins.plugins.sshslaves.SSHLauncher'){ |
| 9 | + return "new com.cloudbees.jenkins.plugins.sshslaves.SSHLauncher('${agentLauncher.host}',new com.cloudbees.jenkins.plugins.sshslaves.SSHConnectionDetails('${agentLauncher.connectionDetails.credentialsId}',${agentLauncher.connectionDetails.port},'${agentLauncher.connectionDetails?.javaPath}','${agentLauncher.connectionDetails?.jvmOptions}','${agentLauncher.connectionDetails?.prefixStartSlaveCmd}','${agentLauncher.connectionDetails?.suffixStartSlaveCmd}',${agentLauncher.connectionDetails?.displayEnvironment}))" |
| 10 | + } else if (agentLauncher.class.name == 'hudson.slaves.JNLPLauncher' ||agentLauncher.class.name == 'com.cloudbees.opscenter.server.jnlp.slave.JocJnlpSlaveLauncher'){ |
| 11 | + def tunnel = agentLauncher?.tunnel == null ? "" : agentLauncher?.tunnel |
| 12 | + def vmargs = agentLauncher?.vmargs == null ? "" : agentLauncher?.vmargs |
| 13 | + return "new hudson.slaves.JNLPLauncher('${tunnel}','${vmargs}')" |
| 14 | + } |
| 15 | + |
| 16 | + return "NOT SUPPORTED - " + agentLauncher.getClass().getCanonicalName() + " - NOT SUPPORTED" |
| 17 | + } |
| 18 | + |
| 19 | + def createAgent(agentName, agentDescription, agentHome, agentExecutors, agentLabels, launcher) { |
| 20 | + println "//Create Agent ${agentName}" |
| 21 | + //DumbSlave(String name, String nodeDescription, String remoteFS, String numExecutors, Node.Mode mode, String labelString, ComputerLauncher launcher, RetentionStrategy retentionStrategy) |
| 22 | + println "Jenkins.instance.addNode(new DumbSlave('${agentName}', '${agentDescription}', '${agentHome}', '${agentExecutors}', Mode.NORMAL, '${agentLabels}', ${launcher}, new RetentionStrategy.Always()))" |
| 23 | + } |
| 24 | + |
| 25 | + |
| 26 | +println ''' |
| 27 | +import jenkins.model.* |
| 28 | +import hudson.model.* |
| 29 | +import hudson.slaves.* |
| 30 | +import hudson.plugins.sshslaves.* |
| 31 | +import com.cloudbees.opscenter.server.model.* |
| 32 | +import hudson.model.Node.Mode |
| 33 | +''' |
| 34 | + |
| 35 | + // Jenkins Master and slaves |
| 36 | + Jenkins.instance.computers.grep { |
| 37 | + it.class.superclass?.simpleName != 'AbstractCloudComputer' && |
| 38 | + it.class.superclass?.simpleName != 'AbstractCloudSlave' && |
| 39 | + it.class.simpleName != 'EC2AbstractSlave' |
| 40 | + }.each { |
| 41 | + if (!(it instanceof jenkins.model.Jenkins.MasterComputer)) { |
| 42 | + createAgent(it.name, it.displayName, it.getNode().getRemoteFS(), it.numExecutors, it.getNode().getLabelString(), createLauncher(it.getLauncher())) |
| 43 | + } |
| 44 | + } |
| 45 | + |
| 46 | + // CJOC Shared Slaves |
| 47 | + Jenkins.instance.allItems.grep { |
| 48 | + it.class.name == 'com.cloudbees.opscenter.server.model.SharedSlave' |
| 49 | + }.each { |
| 50 | + createAgent(it.name, it.displayName, it.getRemoteFS(), it.numExecutors, it.getLabelString(), createLauncher(it.getLauncher())) |
| 51 | + } |
| 52 | + |
| 53 | +println ''' |
| 54 | +//END_OF_SCRIPT |
| 55 | +
|
| 56 | +''' |
0 commit comments