Python-jenkins 获取job构建信息方式
作者:wangju003 发布时间:2022-01-11 19:06:17
标签:Python,jenkins,job
官方文档:
需求:当1个job启动构建后,获取它的构建状态.(成功,失败,驳回,构建中,正在排队)
关键函数:
获取job是否在排队的结果
获取正在排队构建的job队列 即pending状态中的所有job,如果没有 pending状态的job即返回1个空列表
queue_info = server.get_queue_info()
获取job构建结果
server.get_build_info(name, build_number)[
'result'] # 构建结束 SUCCESS|FAILURE<class 'str'> ABORTED <class 'str'> 构建中None None <class 'NoneType'>
代码示例:
def get_build_state(server, name, build_number):
'''
:param name: job_name
:param build_number: 最后1次构建序号
:param:jenkins_server
:return: 最后1次构建状态 pending,success,false,building
'''
build_state = None
# 获取正在排队构建的job队列 即pending状态中的所有job,如果没有 pending状态的job即返回1个空列表
queue_info = server.get_queue_info()
if queue_info:
for queue_job_info in queue_info:
if queue_job_info['task']['name'] == name:
# msg = 'pending期,排队构建中'
build_state = 'pending'
else:
build_state = server.get_build_info(name, build_number)[
'result'] # 构建结束 SUCCESS|FAILURE<class 'str'> ABORTED <class 'str'> 构建中None None <class 'NoneType'>
return build_state
通过接口将该功能封装起来
@build_bp.route('/gotest/api/getBuildState', methods=['POST'])
def get_job_build_state():
'''
获取job构建状态
return:build_state Success,Faild,Pending,Building
'''
data = request.get_json()
job_name = data['job_name']
server = get_jenkins_server()
# 获取job的最后次构建号
lastbuildNumber = server.get_job_info(job_name)['lastBuild']['number']
#获取构建状态
build_state = get_build_state(server, job_name, lastbuildNumber)
if build_state is None:
build_msg = 'Building'
elif build_state == 'SUCCESS':
build_msg = 'SUCCESS'
elif build_state == 'FAILURE':
build_msg = 'FAILURE'
elif build_state == 'ABORTED':
build_msg = 'ABORTED'
elif build_state =='pending':
build_msg = 'pending'
response = {}
datas={}
response['code'] = 200
response['msg'] = 'OK'
datas['build_state'] = build_msg
datas['buildNumber'] = lastbuildNumber
response['datas'] = datas
return response
测试接口:
import requests
url='http://127.0.0.1:5000/gotest/api/getBuildState'
data={'job_name':'android_official'}
r = requests.post(url,json=data)
print(r.text)
响应:
{"code":200,"datas":{"buildNumber":1010,"build_state":"SUCCESS"},"msg":"OK"}
来源:https://www.cnblogs.com/kaerxifa/p/12750297.html


猜你喜欢
- 一个封装好的链接Oracle数据库的工具类,可以方便的获取Connection对象关闭Statement、ResultSet、Statmen
- forma格式化的用法format函数可以接受不限个参数,位置可以不按顺序。基本语法是通过{ }和:来代替c语言的%。>>>
- 本文介绍一款工具 go-callvis,它能够将 Go 代码的调用关系可视化出来,并提供了可交互式的 web 服务。go get -u gi
- 本文主要介绍的是MySQL慢查询分析方法,前一段日子,我曾经设置了一次记录在MySQL数据库中对慢于1秒钟的SQL语句进行查询。想起来有几个
- 本文实例讲述了mysql中各种常见join连表查询。分享给大家供大家参考,具体如下:通常我们需要连接多个表查询数据,以获取想要的结果。一、连
- 方法一:使用列表推导式>>> vec = [[1,2,3],[4,5,6],[7,8,9]]>>> ge
- 本文实例讲述了Python实现爬虫抓取与读写、追加到excel文件操作。分享给大家供大家参考,具体如下:爬取糗事百科热门安装 读写excel
- 本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下功能:1、注册 2、登录 3、充钱&nb
- 继Go 1.18支持泛型后,Go 将在下个版本中支持pdqsort排序算法再次引起了开发者们的热切讨论。目前,Go仓库的最新commit中提
- 本文实例讲述了Python使用wget实现下载网络文件功能。分享给大家供大家参考,具体如下:wget是一个从网络上自动下载文件的自由工具。它
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的
- 一. 抛出异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,
- 本文实例讲述了php计算函数执行时间的方法。分享给大家供大家参考。具体如下:我们可以通过在程序的前后分别记录开始和结束时间,两个时间差就是程
- 为了实现Nao机器人与电脑端的TCP通信,于是研究了一下Python实现TCP通信,在网上也看到了很多例子,但大多都是在一台机器上验证。在两
- 描述sorted() 函数对所有可迭代的对象进行排序操作。语法sorted(iterable, key=None, reverse=Fals
- python提取照片坐标信息的代码如下所示:from PIL import Imagefrom PIL.ExifTags import TA
- JS数组遍历普通函数优点:支持流程控制(break、continue、return)forconst arr = ["A"
- 比如CUTEEDITOR,虽 然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKED
- python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http
- django 创建过滤器一、需求来源:假如有一个模板文件有一个字符串变量,这个字符串变量中不能有任何的空格,而恰恰这个模板被很多个视图函数多