编辑:重写答案。
我在jenkins设置管线中运行master和多个slave节点,我有一个要求,我需要找到slave节点是否空闲(需要确认该节点上没有运行作业(。如果它是免费的,我需要在该节点上执行一些活动。如有任何帮助,将不胜感激
nodelist = ['master', 'node1', 'node2']
def builders = [:]
for (x in nodelist) {
def nodelabel = x
builders[nodelabel] = {
node(nodelabel) {
#how to get the node is free or not
if free do some task
else continue.
您可以访问可以从Node对象获得的Computer对象。
for (Node node in Hudson.instance.nodes) {
def nodeName = node.getNodeName()
def computer = node.toComputer()
if (computer != null && node.toComputer().online) {
println """node ${nodeName}
busy: ${computer.countBusy()}
idle: ${computer.countIdle()}
total: ${computer.countExecutors()} """
}
}
显然,countBusy()
为0的节点是绝对自由的。