python的Jenkins接口调用方式


Posted in Python onMay 12, 2020

本来非常喜欢偷懒

最好就是不干活那种

所以最近在研究把Jenkins模块集成起来

做成傻瓜界面这样就给他们用

本人Python搓望大神不要喷,多多指导

jenkins的Python模块模块安装

pip:
pip install python-jenkins

easy_install:
easy_install python-jenkins

使用:

class jenkins_tools():
  def __init__(self):
    cf = get_conf()
    self.username = cf.get('jenkins', 'username')
    self.password = cf.get('jenkins', 'password')
    self.php_jenkins = '''			#本?抛约旱?enkins的conf文件
    <project>				#这里可以去抄jenkins的项目文件夹里面的配置文件
     <actions/>				#记得不要加xml头,源码哪里帮我们加了,自己加就是作死
     <description></description>		#项目需求不一样,配置文件也不一样,你们不要抄我的
     <keepDependencies>false</keepDependencies>
     <properties>
      <hudson.model.ParametersDefinitionProperty>
       <parameterDefinitions>
        <hudson.model.StringParameterDefinition>
         <name>Branch</name>
         <description></description>
         <defaultValue>%s</defaultValue>
        </hudson.model.StringParameterDefinition>
       </parameterDefinitions>
      </hudson.model.ParametersDefinitionProperty>
     </properties>
     <scm class="hudson.scm.NullSCM"/>
     <canRoam>true</canRoam>
     <disabled>false</disabled>
     <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
     <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
     <triggers/>
     <concurrentBuild>false</concurrentBuild>
     <builders>
      <hudson.tasks.Shell>
       <command>xxxxxxx</command>	
      </hudson.tasks.Shell>
     </builders>
     <publishers/>
     <buildWrappers/>
    </project>
      '''
    self.java_newjenkins = '''		#本?诺牧硗庖桓?enkins的conf文件
      <project>
       <actions/>
       <description></description>
       <keepDependencies>false</keepDependencies>
       <properties>
        <hudson.model.ParametersDefinitionProperty>
         <parameterDefinitions>
          <hudson.model.StringParameterDefinition>
           <name>Branch</name>
           <description></description>
           <defaultValue>%s</defaultValue>
          </hudson.model.StringParameterDefinition>
         </parameterDefinitions>
        </hudson.model.ParametersDefinitionProperty>
       </properties>
       <scm class="hudson.scm.NullSCM"/>
       <canRoam>true</canRoam>
       <disabled>false</disabled>
       <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
       <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
       <triggers/>
       <concurrentBuild>false</concurrentBuild>
       <builders>
        <hudson.tasks.Shell>
         <command>xxxx</command>	
        </hudson.tasks.Shell>
       </builders>
       <publishers/>
       <buildWrappers/>
      </project>
        '''
  def __conn_jenkins_server(self, url):
    try:
	  #获得一个jenkins的操作实例
      server = jenkins.Jenkins(url, username=self.username, password=self.password)
      return server
    except Exception:
      logging.warning('login jenkins failed!')
      return None
	
  def create_project(self, host_ip, project_name, git_path, git_branch, url, environment):
    server = self.__conn_jenkins_server(url)
    if server:
      server.create_job(project_name, self.php_jenkins)	#参数1写的是项目名称,参数2是xml文档
      return True
    else:
      return None
 
  def project_built(self, url, project_name, git_branch):	#这个函数作用是构建项目
    server = self.__conn_jenkins_server(url)		
    server.build_job(project_name, {'Branch': git_branch})
 
  def check_project_exist(self, project_name, url):		#这个函数是检查项目是否已经存在虽然写得很挫忘不要见怪
    server = self.__conn_jenkins_server(url)
    name = server.get_job_name(project_name)
    if name is None:
      return False
    return True

详细可以看官方文档:http://python-jenkins.readthedocs.io/en/latest/api.html

补充知识:python调用jenkinsapi

在通过python 调用jenkinsapi的时候,需要对一些作业进行定时对构建

python的Jenkins接口调用方式

报错:

<title>Error 403 No valid crumb was included in the request</title>\n</head>\n<body><h2>HTTP ERROR 403</h2>

原因是在jenkins的安全配置里勾选里下面这个选项,在预防跨站点请求,将其勾掉即可。

python的Jenkins接口调用方式

以上这篇python的Jenkins接口调用方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
在Python中给Nan值更改为0的方法
Oct 30 Python
Django实现单用户登录的方法示例
Mar 28 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
anaconda如何查看并管理python环境
Jul 05 Python
python+django+rest框架配置创建方法
Aug 31 Python
python常用排序算法的实现代码
Nov 08 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
详解Python牛顿插值法
May 11 Python
pytorch中[..., 0]的用法说明
May 20 Python
jenkins+python自动化测试持续集成教程
May 12 #Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 #Python
基于Python的Jenkins的二次开发操作
May 12 #Python
Python-jenkins模块获取jobs的执行状态操作
May 12 #Python
Python-jenkins 获取job构建信息方式
May 12 #Python
python进行参数传递的方法
May 12 #Python
python输出数学符号实例
May 11 #Python
You might like
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
Snoopy类使用小例子
2008/04/15 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
python下MySQLdb用法实例分析
2015/06/08 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
后勤岗位职责
2013/11/26 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
详解python字符串驻留技术
2021/05/21 Python