Skip to content

Instantly share code, notes, and snippets.

@andrewdmcleod
Created March 9, 2018 13:28
Show Gist options
  • Save andrewdmcleod/01b02bc97f28cc6f094a2555b918fde1 to your computer and use it in GitHub Desktop.
Save andrewdmcleod/01b02bc97f28cc6f094a2555b918fde1 to your computer and use it in GitHub Desktop.
start offline jenkins slaves
import hudson.model.*
import hudson.node_monitors.*
import hudson.slaves.*
import java.util.concurrent.*
jenkins = Hudson.instance
import javax.mail.internet.*;
import javax.mail.*
import javax.activation.*
def getEnviron(computer) {
def env
def thread = Thread.start("Getting env from ${computer.name}", { env = computer.environment })
thread.join(2000)
if (thread.isAlive()) thread.interrupt()
env
}
def slaveAccessible(computer) {
getEnviron(computer)?.get('PATH') != null
}
def numberOfflineNodes = 0
def numberNodes = 0
for (slave in jenkins.slaves) {
def computer = slave.computer
numberNodes ++
println ""
if (computer.offline) {
numberOfflineNodes ++
println "${computer.name}"
println('\tcomputer.isOffline: ' + slave.getComputer().isOffline());
println('\tcomputer.isTemporarilyOffline: ' + slave.getComputer().isTemporarilyOffline());
println('\tcomputer.getOfflineCause: ' + slave.getComputer().getOfflineCause());
println('\tcomputer.offline: ' + computer.offline);
println('\tattempting to online slave...');
computer.connect(true)
}
}
println ("Number of Offline Nodes: " + numberOfflineNodes)
println ("Number of Nodes: " + numberNodes)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment