栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-jenkins

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-jenkins

python-jenkins
import jenkins
import request
import json

# 初始化 Jenkins, jenkinsPassWord 使用用户token,而非密码,否则删除没有权限
server = jenkins.Jenkins(jenkinsUrl, jenkinsUser, jenkinsPassWord)

################# 节点 ################
# 获取节点
server.get_nodes()
# [{'name': 'master', 'offline': False}, {'name': '192.168.1.1', 'offline': True}]
# 获取节点信息, 返回json数据
response = server.jenkins_open(requests.Request('GET', Urlparse.unquote(f'{self.jenkinsUrl}/computer/{nodeName}/api/json?depth=0')))
nodeInfo = json.loads(response)
# 节点是否掉线
nodeInfo['offline']
# 可执行任务数
nodeInfo["numExecutors"]

# 获取执行中的任务
runJobList = server.get_running_builds()
# [{'name': 'deer02_loadcontrol', 'number': 10, 'url': 'http://192.168.234.251:8080/job/deer02_loadcontrol/10/', 'node': '192.168.234.203', 'executor': 1}]

################# 任务 job ################

# job是否存在
server.job_exists("TEST")

# 获取job xml配置值文件
xmlString = server.get_job_config("TEST")

# 创建job
server.create_job("TEST_1", xmlString)

# 构建job
server.build_job("jobName")

## 获取job 构建历史信息
jobInfor = server.get_job_info("jobName")
## 构建信息
obInfor["builds"]
number = obInfor["builds"][0]["number"] # 如果 builds 大于 0 构建数
## 任务URL
url = obInfor["url"]

# 获取执行中的任务
server.get_running_builds()


# 删除job
server.delete_job("TEST_1")

################# 视图 view ################

# 判断视图是否存在
server.view_exists("viewName")

# 获取所有视图
server.get_views()

# 获取视图的配置
xmlString = server.get_view_config("viewName")

# 创建视图 view
server.create_view("viewName", xmlString)

############ 将job配置到指定视图中 ##########
from xml.etree import ElementTree

viewXml = ElementTree.fromstring(server.get_view_config(viewName))
jobNames = viewXml.find("jobNames")
stringList = []
for string in jobNames.findall("string"):
    if string.text is not None:
        stringList.append(string.text)
        jobNames.remove(string)
if jobName not in stringList:
	stringList.append(jobName)
### 如果不排序,页面展示可能有问题
stringList.sort()
for jobName in stringList:
    string = Element('string')
    string.text = jobName
    jobNames.append(string)
viewXml = ElementTree.tostring(viewXml).decode("utf-8")
server.reconfig_view(viewName, viewXml)

# 获取 视图中的 job
server._get_view_jobs("viemName")

# 删除视图
server.delete_view(viemName)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号