# 根据运行时间,获取build对象列表,默认时间分钟
def get_high_time_numbers(self,max):
for number in list(self.buildsInstance.keys()):
build = self.buildsInstance.get(number)
if int(build.build_use_time/60) < max :
self.buildsInstance.pop(number)
self.job_list.remove(number)
def get_limit_success_rate(self,limit):
all_list = len(self.get_limit_numbers(limit))
print all_list
success_list = len(self.get_success_build_numbers())
print success_list
if success_list == 0 :
return '0%'
return 'percent: {:.2%}'.format(float(success_list)/float(all_list))
# 判断当前的build是否全部失败。
def juge_all_fail(self):
'''
判断所有构建是否失败,
:param buildsInstance:{1:buildobject1,2:buildobject2}
:return:True or False
'''
for number, build in self.buildsInstance.items():
if build.build_result == 'SUCCESS':
return False
return True
# 判断当前job类型是 tag类型还是 非tag类型。
def is_job_type(self):
ch_list = []
tag_list = []
for number,build in self.buildsInstance.items():
try:
changeid = build.get_build_one_parmas('GERRIT_CHANGE_ID')
# print changeid
# 更改一下
# if len(changeid) == 41:
if len(changeid) == 41:
ch_list.append(number)
else:
tag_list.append(number)
except:
return 'all_tag'
# print 'ch_list',ch_list
# print 'tag_list',tag_list
if not ch_list:
return 'all_tag'
return 'not_all_tag'
#把非tag类型的job ,把tag的build全部删除
def del_tag_build(self):
# print self.is_job_type()
if self.is_job_type() == 'not_all_tag':
for number, build in self.buildsInstance.items():
try:
changeid = build.get_build_one_parmas('GERRIT_CHANGE_ID')
if len(changeid) != 41:
self.buildsInstance.pop(number)
self.job_list.remove(number)
except:
print '%s 工程没有GERRIT_CHANGE_ID参数 '.format(self.get_job_url())
if __name__ == '__main__':
jenkins_instance = LoginJenkins('http://10.0.0.70:8080/jenkins/','admin','XXXX')
one_job = Analyze_Job_Builds(jenkins_instance,'all_changed_success')
# print one_job.get_all_params()
# print one_job.buildsInstance.keys()
# for number in one_job.buildsInstance.keys():
# print number
# one_job.get_success_build_number()
# one_job.get_startend_Success_build_numbers('2021-10-04 03:42:00','2021-10-07 12:50:00')
# print one_job.buildsInstance.keys()
#
# one_job.get_limit_numbers(2)
# print one_job.buildsInstance.keys()
# print one_job.get_build_time_median()
print one_job.get_limit_success_rate(5)
# dic = {1:"1",2:'2',3:'3'}
# # dic2 = sorted(dic.items(), key=lambda k: k[0],reverse=True)
# # print dict(dic2)
#
# print sorted(dic.items(),key=lambda x:x[0],reverse=True)
#
# print { k:v for k,v in sorted(dic.items(),key=lambda x:x[0],reverse=True)}
# import collections
#
#
# dic = {1:"1",2:'2',3:'3'}
# sorted_x = sorted(dic.items(),key=operator.itemgetter(0),reverse=True)
# sorted_dict = collections.OrderedDict(sorted_x)
# y = { k:v for k,v in sorted(dic.items(),key=operator.itemgetter(0),reverse=True)}
# print sorted_dict
# print dict(sorted_dict)
2021-10-07-jobinfo2
最新推荐文章于 2022-08-12 20:44:29 发布