Disconnect and Reconnect Jenkins Slave

Disconnect slave from master for maintenance.

def list = ['xxxx','xxxx']

jenkins = Hudson.instance
for (slave in jenkins.slaves) {
  def computer = slave.computer
  if(list.contains(computer.name)){
    println "Computer ${computer.name} in list"
    computer.disconnect(new hudson.slaves.OfflineCause.ByCLI("Maintenance"))
    println('computer.getOfflineCause: ' + slave.getComputer().getOfflineCause());
    println('computer.offline: ' + computer.offline); 
  }
}

Reconnect slave to master

def list = ['xxxx','xxxx']
 
jenkins = Hudson.instance
for (slave in jenkins.slaves) {
  def computer = slave.computer
  if(list.contains(computer.name)){
    println "Computer ${computer.name} in list"
    println("bringing slave back online")	
    computer.connect(true)  
    println('computer.getConnectTime: ' + new Date(computer.getConnectTime()));
    println('computer.offline: ' + computer.offline); 
  }
}