【问题标题】:python-jenkins get_job_info - how do I get info on more than 100 builds?python-jenkins get_job_info - 我如何获取超过 100 个构建的信息?
【发布时间】:2014-06-19 18:07:21
【问题描述】:

我正在使用 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)

我发现 - 不幸的是 - 作业信息字典中的 builds 数组从不包含超过 100 个条目,即使作业存储了比这更多的构建。

其他人是否看到过这个限制,有什么办法可以绕过它,或者这个 API 对存档构建数量很大的服务器毫无用处?

【问题讨论】:

    标签: python jenkins


    【解决方案1】:

    如果可以改用 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)
    

    【讨论】:

      【解决方案2】:

      当使用 python-jenkins 模块获取超过 100 个构建时,使用 fetch_all_builds=True 调用 get_job_info 函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 2021-07-23
        • 2018-05-29
        相关资源
        最近更新 更多