Jenkins API中是否有任何功能可以为我提供从属节点COMPUTERNAME / Hostname

时间:2019-06-13 13:45:21

标签: python api jenkins jenkins-api

我需要汇总在我的jenkins主节点上设置的jenkins从节点的所有主机名的列表。许多节点都设置有SLAVE NODE EXAMPLE之类的名称,而不用其服务器名称作为节点名称。我知道如何从用户界面进行操作。但是,由于需要设置许多节点,因此我需要通过python访问它,而手动检查每个节点将是一个漫长的过程。

我正在使用python-jenkins api,该API的功能可以为我提供所有节点及其配置。使用get_node_config(name)。但是,它没有为我提供COMPUTERNAME。我似乎也无法在Jenkins主目录中找到包含该信息的文件。

2 个答案:

答案 0 :(得分:0)

一旦获得节点名称,就可以使用该名称获取有关with的更多信息。 get_node_info(name, depth=0)

nodes = get_nodes()
for n in nodes:
   info = get_node_info(n[name])

答案 1 :(得分:0)

如果有帮助的话,这里有个俗套的脚本。从控制台运行。注意:节点必须在线才能查询。

Jenkins.instance.slaves.each {
   print it.getNodeName() + ' : '
   if ( it.getComputer().isOnline() ) {
      println it.getComputer().getHostName() + ' : ' + it.getComputer().getOSDescription()
   } else {
      println ' - offline -'
   }    
}
return 0

请参阅Jenkins API-Computer