java - 使用 Groovy 修改节点标签的 Jenkins/Hudson CLI API

标签 java groovy hudson jenkins

有谁知道如何以非手动方式修改 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/

相关文章:

java - 生成时出错-找不到属性 'MyOpenWeatherMapApiKey'

java - 单个 Java 线程可以摧毁整个 JVM 吗?

regex - Groovy 正则表达式模式匹配中是否存在命名组?

grails - 访问静态约束时出现NullPointerException

python - 如何让 Jenkins 运行一个执行构建的python脚本?

Java JNDI 内部结构

Java 游戏开发 : Sprite sheet frame by row and column?

java - Groovy/Java - 复制路径中带有括号的文件时出现问题

java - Hudson JDepend 插件不起作用

continuous-integration - 当另一个构建失败时如何阻止构建?