python-jenkins get_job_info - 如何获取超过100个版本的信息?

时间:2014-06-19 18:07:21

标签: python jenkins

我正在使用python-jenkins api来管理一些jenkins构建服务器。服务器非常负载 - 大量的工作和一些工作已经节省了数百个构建。

我的基本目标是使用API​​来获取每个作业的构建计数,以及所有作业的总构建计数。这是代码:

import jenkins
jnk = jenkins.Jenkins(myUrl, myUsername, myPassword)
info = jnk.get_info()
jobs = info['jobs']
totalBuildCount = 0

for job in jobs:
    jobName = job['name']
    jobinfo = jnk.get_job_info(jobName)
    builds = jobinfo['builds'] # never contains more than 100 items
    print jobName + " build count: " + str(len(builds))
    totalBuildCount += len(builds)

print "Total build count: " + str(totalBuildCount)

我发现 - 遗憾的是 - 作业信息字典中的构建数组永远不会包含超过100个条目,即使作业存储的构建数量也多于此。

让其他人看到这个限制,是否有任何解决方法,或者这个API对于具有大量存档构建计数的服务器是否无用?

2 个答案:

答案 0 :(得分:0)

如果可以改为使用jenkinsapi:

from jenkinsapi.jenkins import Jenkins
jnk = Jenkins(myUrl, myUsername, myPassword)
totalBuildCount = 0

for job in jnk.keys():
    builds = jnk[job].get_build_dict()
    print job + " build count: " + str(len(builds))
    totalBuildCount += len(builds)

print "Total build count: " + str(totalBuildCount)

答案 1 :(得分:0)

在使用python-jenkins模块获取100个以上的版本时,请使用fetch_all_builds=True调用get_job_info函数