Jenkins集群中执行程序的数量

时间:2017-04-07 17:33:36

标签: java jenkins groovy jenkins-pipeline

我有Jenkins集群,有1-Master with 2-Executor and 1-Agent with 2-Executor,现在如何使用java或groovy脚本获取Jenkins集群中执行程序的总数?

1 个答案:

答案 0 :(得分:1)

如果您有权访问脚本控制台,则可以运行以下内容:

final jenkins = Jenkins.instance

jenkins.computers.inject(0) { acc, item ->
  acc + item.numExecutors
}

如果您在沙盒管道中运行此操作,则必须由管理员在进程内脚本批准(或通过使用白名单的插件)中将这些方法列入白名单{{3 }}。由于http://jenkinsUrl/scriptApproval/,您现在无法使用inject,但您的管道脚本可能如下所示:

final jenkins = Jenkins.instance

int executorCount = 0
for (def computer in jenkins.computers) {
    executorCount += computer.numExecutors
}

// Rest of pipeline

如果您的管道未在沙箱中运行,您可以访问这些对象而不进行白名单。