如何获取所有分配了标签的Jenkins节点(包括主节点)的列表?

我正在创建Jenkins管道作业,并且需要在所有带有特定标签的节点上运行作业。

因此,我试图获取分配有特定标签的节点名称的列表。(有了一个节点,我可以使用来获得标签getAssignedLabels()

中的nodes-list jenkins.model.Jenkins.instance.nodes似乎不包含我需要包含在搜索中的主节点。

我当前的解决方案是遍历-

jenkins.model.Jenkins.instance.computers并使用getNode()-method获取节点。这行得通,但是在Jenkins的javadoc中,我正在阅读此列表,可能不是最新的。

从长远来看,我将(动态地)添加云节点,恐怕届时我将无法使用computers

正确获取所有当前节点的列表是什么?

这就是我现在正在做的:

@NonCPS

def nodeNames(label) {

def nodes = []

jenkins.model.Jenkins.instance.computers.each { c ->

if (c.node.labelString.contains(label)) {

nodes.add(c.node.selfLabel.name)

}

}

return nodes

}

回答:

这就是我现在正在做的方式。我还没有发现其他东西:

@NonCPS

def hostNames(label) {

def nodes = []

jenkins.model.Jenkins.get.computers.each { c ->

if (c.node.labelString.contains(label)) {

nodes.add(c.node.selfLabel.name)

}

}

return nodes

}

jenkins.model.Jenkins.get.computers 包含主节点和所有从节点。

以上是 如何获取所有分配了标签的Jenkins节点(包括主节点)的列表? 的全部内容, 来源链接: utcz.com/qa/414840.html

回到顶部