jenkins获取job_info

import jenkins
import  time


def LoginJenkins(url, username=None, password=None):
    return jenkins.Jenkins(url,username,password)


class JobInfo(object):
    def __init__(self,InstanceJenkins,job_name):
        self.detail_Dict = InstanceJenkins.get_job_info(job_name)

    # 获取工程嘚描述
    def get_description(self):
        return self.detail_Dict.get('description',"")

    #获取工程的url
    def get_job_url(self):
        return self.detail_Dict.get('url','')

    # 检查工程时候被禁用
    def get_is_able(self):
        return self.detail_Dict.get('buildable',False)

    # 获取工程的所有构建号
    def get_builds_number_list(self):
        l = []
        if 'builds' in self.detail_Dict.keys():
            for build_info_dict in self.detail_Dict.get('builds',[]):
                if 'number' in build_info_dict.keys():
                    l.append(build_info_dict.get('number',0))
        return l

    # 或健康分数,不太准确,随时间会变化
    def get_health_score(self):
        l = []
        if 'healthReport' in self.detail_Dict.keys():
            for health_dict in self.detail_Dict.get('healthReport',[]):
                if 'score' in health_dict.keys():
                    l.append(health_dict.get('score',0))
        return l

    def formal1(self,name,sub_name):
        if name in self.detail_Dict.keys():
            if sub_name in self.detail_Dict.get(name,{}) :
                return self.detail_Dict.get(name,{}).get(sub_name,0)
    # 第一次构建号
    def get_firstBuild_number(self):
        return self.formal1( 'firstBuild', 'number')
    # 最后一次构建号
    def get_lastBuild_number(self):
        return self.formal1( 'lastBuild', 'number')
    # 最后一次,完成的构建,如果10还在构建,则9就是最后一次完成的构建
    def get_lastCompletedBuild_number(self):
        return self.formal1( 'lastCompletedBuild', 'number')
    # 最后一次失败的构建号
    def get_lastFailedBuild_number(self):
        return self.formal1('lastFailedBuild', 'number')
    # 最后一次成功的构建号
    def get_lastSuccessfulBuild_number(self):
        return self.formal1('lastSuccessfulBuild', 'number')
    # 下一次构建号
    def get_nextBuildNumber(self):
        return self.detail_Dict.get('nextBuildNumber',0)
    # 是否有排队的构建
    def get_inQueue(self):
        return self.detail_Dict.get('inQueue',False)
    # 或排队的项目,id不太准,queueItem

    # 获取整个工程的默认参数
    # {'git_url': 'http://github.com', 'tag': '09142336'},没有默认参数,值为''
    def get_all_params(self):
        params_dict = {}
        if 'property' in self.detail_Dict.keys():
            for items_dict in self.detail_Dict.get('property',[]):
                if '_class' in items_dict.keys() and items_dict.get('_class','').find('Parameters') != -1 :
                    params_list =  items_dict.get('parameterDefinitions',[])
                    for params_dict_sub in params_list:
                        params_dict[params_dict_sub.get('name','')] = params_dict_sub.\
                            get('defaultParameterValue','').get('value','')
        return  params_dict

    # 获取整个工程的某一个参数
    def get_one_params(self,param):
        if 'property' in self.detail_Dict.keys():
            for items_dict in self.detail_Dict.get('property',[]):
                if '_class' in items_dict.keys() and items_dict.get('_class','').find('Parameters') != -1 :
                    params_list =  items_dict.get('parameterDefinitions',[])
                    for params_dict_sub in params_list:
                        if  param == params_dict_sub.get('name',''):
                            return params_dict_sub.get('defaultParameterValue','').get('value','')

if __name__ == '__main__' :
    InstanceJenkins = LoginJenkins("http://10.0.0.40:8080/", "admin", "xxxxx")
    one_job = JobInfo(InstanceJenkins,'test_job_name')
    print(one_job.get_lastFailedBuild_number())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值