Created
March 9, 2018 13:28
-
-
Save andrewdmcleod/01b02bc97f28cc6f094a2555b918fde1 to your computer and use it in GitHub Desktop.
start offline jenkins slaves
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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