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"}

以上这篇Python-jenkins 获取job构建信息方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • jenkins配置python脚本定时任务过程图解

    这篇文章主要介绍了jekins配置python脚本定时任务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.首先安装jekins环境,访问网页https://jenkins.io/zh/download/,下载长期稳定版如下: 2.下载安装包后直接运行,进行选择安装路径,傻瓜式安装.安装完成后,点Finished,弹出jekins输入密匙网页,根据网页提示路径,找到 对应的jekins密匙输入后,选择推荐插件安装即可.(也可以不安装插

  • python jenkins 打包构建代码的示例代码

    python jenkins 打包构建代码 # pip install python-jenkins import jenkins import pprint import time # 在jenkins 的Configure Global Security下 , 取消"防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)"的勾选 server = jenkins.Jenkins('http://192.168.100.151:8

  • 基于Python的Jenkins的二次开发操作

    背景 最近我们在整一个云执行的平台,底层用的是Jenkins来做执行引擎,方便的把我们的脚本做一个统一的调度. Jenkins确实是一个非常方便的框架,它提供了一整套的RESTful的API,可以非常方便的做二次开发,而且提供了一个python的库,操作起来就更加方便了. 常用的Jenkins概念 我们在使用Jenkins的时候,一般看到的都是Jenkins的View. 也就是说我们看到的基本上都是一些视图. 每一个构建的内容,无论是执行用例,跑脚本,还是打包编译发布,都是一个job. 每一个j

  • Python-jenkins模块获取jobs的执行状态操作

    1 获取jobs的当前任务状态 server_1 = jenkins.Jenkins('http://%s:%s@192.168.37.134:8081/',username, password) 获取状态前先确认2019文件夹下的get_node_list任务是否存在: server_1.assert_job_exists('2019/get_node_list') 获取最后一次完成(不包括执行中的)的job任务执行number: server_1.get_job_info('2019/get

  • 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|FAILU

  • Java操作Jenkins操作凭证(Credential)信息方式

    jenkins-client包的api中大部分的操作是支持的,但有一些特殊操作,比如需要操作jenkins的Credential凭据信息,或是希望使用java修改Jenkins的系统配置,类似这样的操作在api中是没有的. 但依然可以通过rest的方式完成这些操作 当新增一条凭据信息时可以通过浏览器的网络监控看到他的请求内容 可以看到操作凭证的请求地址.请求参数列表,这里的参数列表的参数非常的多,但实际上在源码中读取的只有红框中的json的这一段.用postman来模拟调用一下 调用后会发现是失

  • Python爬虫获取基金变动信息

    目录 1 前言 2 抓取变动信息 2.1 基金的变动信息获取 2.2 基金阶段信息的抓取 3 最终结果展现 1 前言 前面文章Python爬虫获取基金列表.Python爬虫获取基金基本信息我们已经介绍了怎么获取基金列表以及怎么获取基金基本信息,本文我们继续前面的内容,获取基金的变动信息.这次获取信息的方式将组合使用页面数据解析和api接口调用的方式进行. 2 抓取变动信息 我们通过观察基金基本信息页面,我们可以发现有关基金变动信息的页面可以包含以下4个部分: 接下来说一下我们抓取数据的思路,在第

  • 50行Python代码获取高考志愿信息的实现方法

    最近遇到个任务,需要将高考志愿信息保存成Excel表格,BOSS丢给我一个网址表格之后就让我自己干了.虽然我以前也学习过Python编写爬虫的知识,不过时间长了忘了,于是摸索了一天之后终于完成了任务.不得不说,Python干这个还是挺容易的,最后写完一看代码,只用了50行就完成了任务. 准备工作 首先明确一下任务.首先我们要从网址表格中读取到一大串网址,然后访问每个网址,获取到页面上的学校信息,然后将它们在写到另一个Excel中.显然,我们需要一个爬虫库和一个Excel库来帮助我们完成任务. 第

  • 在Python中获取操作系统的进程信息

    本文主要介绍在 Python 中使用 psutil 获取系统的进程信息. 1 概述 psutil 是 Python 的一个进程和系统工具集模块,通过使用 psutil,我们可以在 Python 中获取操作系统中进程的相关信息. 本文中使用的 rpm 包为: python2-psutil.x86_64,该 rpm 包定义如下: python2-psutil.x86_64 : A process and system utilities module for Python 2 代码示例 下面给出一个

  • 利用Python实现获取照片位置信息

    目录 引言 一.exifread函数库 安装exrfread库(PyCharm) 什么是exifread函数库 二.获取女朋友发来的照片(单身勿扰) 三.具体代码实现 四.经纬度转换 引言 通过一张照片居然发现女友在宿舍里没去上课!强大的照片位置信息获取,快来一起学习吧! 一.exifread函数库 要怎样获得拍摄图片的GPS呢?这里我们需要exifread 库,这个就是用来提取 GPS 信息的.直接 pip install exifread 来安装就好了. 安装exrfread库(PyChar

  • Python脚本获取操作系统版本信息

    查看系统版本信息是一件家常便饭的事情,有时候需要将版本信息录入到资产管理系统中,如果每次手动的去查询这些信息再录入系统那么是一件令人呢头疼的事情,如果采用脚本去完成这件事情,那么情况就有所不同了. 在Python的世界里,获取Windows版本信息和Linux的版本信息都可以采用platform模块,但platform模块也不是万能的,有些特殊的信息(比如Windows的内部版本号)这个模块拿不到,那么只能另辟蹊径了. 在Linux系统中,可以简单的认为一切都是文件,那么就算没有现成的命令可用时

  • Python实现获取操作系统版本信息方法

    最近,想在我的YouMoney(http://code.google.com/p/youmoney/)里面增加提取用户操作系统版本信息.比如windows用户,可能要返回Windows XP ,或者Windows 2003, 苹果用户应该返回Mac OS X 10.5.8.用了很多办法,包括在mac系统里调用系统命令,取环境变量,等等.最后无意发现,原来python里里面有个platform模块就可以干这件事情.省事啊! mac上这么干 复制代码 代码如下: localhost:~ apple$

  • java代码获取jenkins数据,构建历史等信息方式

    本篇文章主要介绍如何获取jenkins构建历史数据等信息,不包含java构建等操作. 1.jenkins所需jar,后续如有缺少可百度自行补齐. <!--jenkins所需jar包开始--> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</gr

  • 使用python获取(宜宾市地震信息)地震信息

    6月17日22分25分,四川省宜宾市长宁县发生了6.0级地震,成都高新减灾研究所与应急管理部门联合建设的大陆地震预警网成功预警本次地震,提前10秒向宜宾市预警,提前61秒向成都预警. 虽然自己还不能写出这么牛逼的系统,但是今天我想结合自己学到的Python知识,用Python获取地震信息,然后微信实时推送给你的群组或你的朋友. 1.前期准备 1.爬虫基本知识,比如requests库,以及lxml库: 2.利用Xpath进行HTML的解析: 之前写的一些简单项目,提取页面信息时使用的是正则表达式,

随机推荐