Python-jenkins模块:详解jobs执行状态获取与控制
23 浏览量
更新于2024-08-31
收藏 292KB PDF 举报
本文将详细介绍如何使用Python-jenkins模块有效地获取Jenkins jobs的执行状态,包括但不限于检查任务的存在性、获取最近的完成或失败状态、监控job的实时状态以及执行job。Python-jenkins模块提供了一个方便的接口,使得在Python环境中与Jenkins服务器进行交互变得简单。
首先,我们需要通过`jenkins.Jenkins()`函数连接到Jenkins服务器,传入服务器的URL、用户名和密码。例如,`server_1 = jenkins.Jenkins('http://%s:%s@192.168.37.134:8081/', username, password)`。在进行任何操作之前,确保目标job存在是关键步骤,如`server_1.assert_job_exists('2019/get_node_list')`。
为了获取job的执行状态,我们可以利用`get_job_info`方法来获取job的详细信息,特别是关于最近一次完成build的编号,如`lastCompletedBuild['number']`。同时,`get_build_info`方法用于检查build的结果,可以区分SUCCESS、FAILURE或ABORTED。例如,`server_1.get_build_info('2019/get_node_list', 3)['result']`。
查看build的详细输出可以使用`get_build_console_output`方法,但需要注意的是,在job执行过程中,输出可能不准确,因此最好在job完成后再获取状态信息。另外,为了处理job可能的RUNNING或PENDING状态,我们可以通过异常处理来判断job是否在队列中,代码如下:
```python
def get_jobs_status(job_name, server):
try:
server.assert_job_exists(job_name)
except Exception as e:
print(e)
job_status = '1' # 假设job不存在或未定义
in_queue = server.get_job_info(job_name)['inQueue']
if in_queue:
job_status = 'pending' # 如果job在队列中,状态为pending
else:
# 获取实际的执行状态,如running、success、failure等
build_number = server.get_job_info(job_name)['lastCompletedBuild']['number']
build_result = server.get_build_info('2019/get_node_list', build_number)['result']
job_status = {
'SUCCESS': 'success',
'FAILURE': 'failure',
'ABORTED': 'aborted'
}.get(build_result, 'running')
return job_status
```
通过这个函数,你可以获取到一个job的当前状态,包括它是否在队列中,或者如果已经执行,其最终结果是什么。这在自动化测试、监控或调度任务时非常有用,可以帮助开发者更好地理解和管理Jenkins的工作流程。
总结来说,本文主要介绍了Python-jenkins模块在获取Jenkins jobs执行状态方面的核心功能,包括job存在性检查、状态识别、执行操作和实时状态跟踪,这些技巧有助于提高对Jenkins的自动化管理效率。
362 浏览量
1587 浏览量
2021-04-02 上传
1194 浏览量
121 浏览量
2022-01-12 上传
2022-02-01 上传
121 浏览量
weixin_38652870
- 粉丝: 5
- 资源: 904
最新资源
- GDI方式实现图片拼接-易语言
- django-project-template:模板personalizado para criar novos projetos com o framework Django
- 安卓双机(两个手机)wifi下socket通信(client输入,在server端显示)
- 我的figma设计
- 手机端PC端视频播放
- javaScript-quiz-app:来自定义数组的应用显示问题
- JS+CSS+Bootstrap+PHP学习帮助文档chm.zip
- Denwa Click-To-Call-crx插件
- yeoman-coffee-jade-template:带有 grunt、coffee、jade、livereload 和其他一些实用程序的 Webapp 前端模板
- sevhou.github.io:个人网站
- html-css-toboolist
- Solar-System:虚拟太阳系
- TestThreadApp.rar
- 易语言gdi+实现拼接图片-易语言
- Dedup Tabs-crx插件
- 迅捷fw300um无线网卡驱动 官方最新版