有谁知道如何以非手动方式修改 Jenkins/Hudson 节点标签?我的意思是,彻底了解此工具提供的 CLI API 之类的 API(当然无需重新启动 Jenkins/Hudson)。
我的猜测是最好的选择是使用 Groovy 脚本进入 Jenkins/Hudson 内部。执行类似的东西:
java -jar -s HUDSON_URL:8080 groovy/path/to/groovy.groovy
作为该脚本的内容类似于:
for (aSlave in hudson.model.Hudson.instance.slaves) {
labels = aSlave.getAssignedLabels()
println labels
**aSlave.setLabel("blabla")** // this method doesn't exist, is there any other way???
}
提前致谢!
维克多
最佳答案
注意:其他答案有点老了,所以可能是从那时起就出现了API。
节点标签在 API 中作为单个字符串访问,就像在配置屏幕中一样。
读写标签:Node.getLabelString()和 Node.setLabelString(String) .
请注意,您也可以通过以下方式获取有效标签:Node.getAssignedLabels() ,它返回 LabelAtom 的集合,其中包括动态计算的标签,例如“自标签”(代表节点名称本身)。
最后,关于Node的这些方法类也可以直接从从属对象访问,例如作为系统 Groovy 脚本:
hudson = hudson.model.Hudson.instance
hudson.slaves.findAll { it.nodeName.equals("slave4") }.each { slave ->
print "Slave $slave.nodeName : Labels: $slave.labelString"
slave.labelString = slave.labelString + " " + "offline"
println " --> New labels: $slave.labelString"
}
hudson.save()
关于java - 使用 Groovy 修改节点标签的 Jenkins/Hudson CLI API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823443/