首页 > 编程语言 >python创建config.xml文件,调用Jenkins API接口创建带参数的Job

python创建config.xml文件,调用Jenkins API接口创建带参数的Job

时间:2022-12-31 10:01:13浏览次数:63  
标签:xml pipeline python 创建 param server Jenkins find


文章目录

  • ​​一、要求​​
  • ​​二、pipeline模板xml的内容可以通过如下方式获取​​
  • ​​三、代码​​
  • ​​四、效果​​
  • ​​五、参考文章​​

一、要求

将hudson.model.StringParameterDefinition的参数名从DB_TYPE改为OS_TYPE,并创建名字为​​test1​​的Job

二、pipeline模板xml的内容可以通过如下方式获取

​http://Jenkins地址/job/job名/config.xml​python创建config.xml文件,调用Jenkins API接口创建带参数的Job_xml

三、代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import jenkins
from xml.etree import ElementTree as ET

jenkins_server_url = "http://192.168.1.2:6060/"
username = "admin"
token = "112f52051d1432cade5d555b5c595a"

server = jenkins.Jenkins(jenkins_server_url, username=username, password=token)
print(server.get_version()) # Jenkins版本

# pipeline模板
pipeline_template = """
<flow-definition plugin="[email protected]_29023983d67">
<actions>
<org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction plugin="[email protected]_e52371b_">
<jobPropertyDescriptors>
<string>hudson.model.ParametersDefinitionProperty</string>
</jobPropertyDescriptors>
</org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction>
</actions>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>DB_TYPE</name>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="[email protected]">
<script></script>
<sandbox>true</sandbox>
</definition>
<triggers/>
<disabled>false</disabled>
</flow-definition>
"""
xml_root = ET.XML(pipeline_template) # 获取文件根标签

str_param_object = xml_root.find("properties").find("hudson.model.ParametersDefinitionProperty").find("parameterDefinitions").iter("hudson.model.StringParameterDefinition") # 获取字符串参数标签
for str_param_cell in str_param_object:
str_param_cell.find("name").text = "OS_TYPE" # 修改<name></name>之间的值
tree = ET.ElementTree(xml_root)
tree.write("config.xml", encoding="utf-8",short_empty_elements=True) # 如果文件不存在,则创建文件,如果文件已存在则修改相应内容

f = open('config.xml', 'r') # 打开文件
xml = f.read() # 读取文件内容
f.close()
server.create_job("test1",xml)

四、效果

python创建config.xml文件,调用Jenkins API接口创建带参数的Job_jenkins_02

五、参考文章

​python 操作xml的方式介绍​​​​使用Python操作Jenkins(创建,构建,获取Job日志和报告)​


标签:xml,pipeline,python,创建,param,server,Jenkins,find
From: https://blog.51cto.com/u_4820306/5981902

相关文章

  • [oeasy]python0036_牛说_cowsay_小动物说话_asciiart_figlet_lolcat_管道(祝大家新年
    ​ 牛说(cowsay)回忆上次内容上次我们研究了shell脚本的编程并且在shell中实现了循环语句延迟命令清屏命令python命令figlet命令​编辑还能整点什么......
  • Python-codeobject
    普通函数的code本地存储情况deff():passprint(f.__code__)#<codeobjectfat0x0000018A7AC6F1B0,file"E:\zwx901323\test_position\easy.py",line1>print......
  • Python字节码与虚拟机
    Python代码,底层的编译实现过程fromdisimportdisdefadd(a,b):returna+bdis(add)"""栈里保存a,b50LOAD_FAST0(a)......
  • python 部署django项目到公网 无法连接
    https://blog.csdn.net/xiongzaiabc/article/details/108448390 服务器后台运行:https://www.jianshu.com/p/4041c4e6e1b0......
  • Vue 组件的创建、使用
    Vue组件(Vuecomponent)Vue组件的位置在Vue项目中可以看到一类新的文件后缀.vue用来表示Vue文件。需要区分在项目目录src下的App.vue和src\components的......
  • Python之路【第六篇】:socket
    1.Socketsocket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket起源于Unix,而Unix/......
  • Python-标准库个人学习日志
    一、文本1.1字符串—文本常量和模板点击查看代码#函数#string_capwords.pyimportstrings='Thequickbrownfoxjumpedoverthelazydog.'print(s)pr......
  • Python3 socket编程
    1.C/S架构和socket的关系socket就是为了完成C/S架构的开发用socket来做一个服务端(客户端)分别运行在不同的机器上 2.OSI七层协议应用层==>提供应用软件的接口,以......
  • Python 对数字的千分位处理方式
    对数字的千分位处理法1>>>"{:,}".format(56381779049)'56,381,779,049'>>>"{:,}".format(56381779049.1)'56,381,779,049.1'>>>法2>>>importre>>>subject......
  • 创建菜单与游戏界面
    今天学习完成构建蛇与蛇的移动自己的vscode没有自动导入Snake,下次记得手动导入接下来,实现蛇的连贯移动思路:设置一个虚拟的头部。每次移动只有头和尾巴移动回合制游戏......