def task_listener_jenkins_invoke_job(worker, job): rev = "happy!!" jenkins_data = simplejson.loads(job.data) try: myj = Jenkins(jenkins_data['url']) job = myj.get_job(jenkins_data['job_id']) #job.invoke(securitytoken=token, block=block) job.invoke(invoke_pre_check_delay=0) except: rev = "Not Happy!!!" return rev
def task_listener_jenkins_invoke_job(worker, job): rev = "happy!!" jenkins_data = simplejson.loads(job.data) try: myj = Jenkins(jenkins_data['url']) job = myj.get_job(jenkins_data['job_id']) #job.invoke(securitytoken=token, block=block) job.invoke(invoke_pre_check_delay=0) except: rev="Not Happy!!!" return rev
def getServerInstance(jenkins_url, jenkins_usr, jenkins_psw): try: server = Jenkins(jenkins_url, username=jenkins_usr, password=jenkins_psw) return server except: # TODO using logger with filter for error messages print("Server unavailable or credentials errors") return None
def __init__(self, jenkinsurl): self.jenkinsurl = jenkinsurl self.jenkins = Jenkins(self.jenkinsurl)
class JenkinsClient(): def __init__(self, jenkinsurl): self.jenkinsurl = jenkinsurl self.jenkins = Jenkins(self.jenkinsurl) def get_user_list(self): userList = [] urlJSON = self.jenkins.get_data(self.jenkins.base_server_url() + '/asynchPeople/api/python') userListJSON = urlJSON['users'] for userJSON in userListJSON: user = userJSON['user'] userName = user['fullName'] userDict = {'name': userName} userList.append(userDict) return userList def get_last_failure(self): last_failed_build_date = None culprits = [] broken_jobs = [] for item in self.jenkins.get_jobs(): job = self.jenkins.get_job(item[0]) if (job._data['color'] == "disabled"): continue last_build = job.get_last_build_or_none() build = None if job._data.has_key("lastFailedBuild"): last_failure = job._data["lastFailedBuild"] if last_failure.has_key("number"): build_number = last_failure["number"] build = job.get_build(build_number) if (( build is not None ) and ( last_build is not None ) and ( last_build.get_number() == build.get_number() ) ): broken_jobs.append(job.name) for culprit in build.get_culprits(): culprits.append(culprit['fullName']) continue if ( build is not None ): if ( last_failed_build_date is None ): last_failed_build_date = build.get_timestamp() else: if ( last_failed_build_date < build.get_timestamp() ): last_failed_build_date = build.get_timestamp() result = {'culprits': culprits, 'broken_jobs': broken_jobs} if ( not broken_jobs ): result.update({'last_failed': last_failed_build_date}) return result def get_jobs_status(self): jobs = [] for item in self.jenkins.get_jobs(): job = self.jenkins.get_job(item[0]) project = {'project': item[0]} build = job.get_last_build_or_none() if ( build ): project.update({'last_build': build.get_number()}) project.update({'status': build.get_status()}) if ( build.is_running() ): project.update({'status': 'BUILDING'}) # who broke the build if ( build.get_actions()["causes"][0].has_key("userId") ): project.update({'user': build.get_actions()["causes"][0]["userId"]}) else: project.update({'last_build': None}) jobs.append(project) return jobs def get_view_status(self, view_name): views = Views(self.jenkins) view = views.__getitem__(view_name) jobs = [] for item in view._get_jobs(): job = self.jenkins.get_job(item[0]) project = {'project': item[0]} build = job.get_last_build_or_none() if ( build ): project.update({'last_build': build.get_number()}) project.update({'status': build.get_status()}) previousBuild = job.get_build(build.get_number() - 1) project.update({'previousBuildStatus': previousBuild.get_status()}) if ( build.is_running() ): project.update({'status': 'BUILDING'}) estimated = build._data['estimatedDuration'] completed = (time.time() * 1000) - build._data['timestamp'] completeRate = (completed * 100) / estimated if (completeRate > 99): completeRate = 99 project.update({'completeRate': completeRate}) # who broke the build if ( build.get_actions()["causes"][0].has_key("userId") ): project.update({'user': build.get_actions()["causes"][0]["userId"]}) else: project.update({'last_build': None}) jobs.append(project) return jobs def get_job(self, job_name): return self.jenkins.get_job(job_name) def get_culprits(self, build): return build._data["culprits"] def get_bonus_per_build(self, job): return len(job.get_downstream_jobs())
''' Created on Dec 7, 2012 @author: khaido ''' from jenkinsapi.api import Jenkins myj = Jenkins('http://localhost:8080') jobs_str = myj.get_jobs() jobs_list = myj.get_jobs_list() for job in jobs_list: # what labels are jobs associated with? print job node_dict = myj.get_node_dict() for k, v in sorted(node_dict.items()): print k + '=' + v myn = myj.get_node('poppy') node_data = myn.get_node_data() node_bla = myn.get_data() #job.invoke(securitytoken=token, block=block) myjob = myj.get_job('pep') myjob.invoke(invoke_pre_check_delay=0) #print j.get_jobs() #j.create_job('empty', jenkins.EMPTY_CONFIG_XML) #j.disable_job('empty') #j.copy_job('empty', 'empty_copy') #j.enable_job('empty_copy')
''' Created on Dec 7, 2012 example of controlling jenkins using the python jenkinsapi. @author: khaido ''' from jenkinsapi.api import Jenkins myj = Jenkins('http://localhost:8080') jobs_str = myj.get_jobs() jobs_list = myj.get_jobs_list() for job in jobs_list: # what labels are jobs associated with? print job node_dict = myj.get_node_dict() for k, v in sorted(node_dict.items()): print k+'='+v myn = myj.get_node('poppy') node_data = myn.get_node_data() node_bla = myn.get_data() #job.invoke(securitytoken=token, block=block) myjob = myj.get_job('pep') myjob.invoke(invoke_pre_check_delay=0)
class JenkinsClient(): def __init__(self, jenkinsurl): self.jenkinsurl = jenkinsurl self.jenkins = Jenkins(self.jenkinsurl) def get_user_list(self): userList = [] urlJSON = self.jenkins.get_data(self.jenkins.base_server_url() + '/asynchPeople/api/python') userListJSON = urlJSON['users'] for userJSON in userListJSON: user = userJSON['user'] userName = user['fullName'] userDict = {'name': userName} userList.append(userDict) return userList def get_last_failure(self): last_failed_build_date = None culprits = [] broken_jobs = [] for item in self.jenkins.get_jobs(): job = self.jenkins.get_job(item[0]) if (job._data['color'] == "disabled"): continue last_build = job.get_last_build_or_none() build = None if job._data.has_key("lastFailedBuild"): last_failure = job._data["lastFailedBuild"] if last_failure.has_key("number"): build_number = last_failure["number"] build = job.get_build(build_number) if ((build is not None) and (last_build is not None) and (last_build.get_number() == build.get_number())): broken_jobs.append(job.name) for culprit in build.get_culprits(): culprits.append(culprit['fullName']) continue if (build is not None): if (last_failed_build_date is None): last_failed_build_date = build.get_timestamp() else: if (last_failed_build_date < build.get_timestamp()): last_failed_build_date = build.get_timestamp() result = {'culprits': culprits, 'broken_jobs': broken_jobs} if (not broken_jobs): result.update({'last_failed': last_failed_build_date}) return result def get_jobs_status(self): jobs = [] for item in self.jenkins.get_jobs(): job = self.jenkins.get_job(item[0]) project = {'project': item[0]} build = job.get_last_build_or_none() if (build): project.update({'last_build': build.get_number()}) project.update({'status': build.get_status()}) if (build.is_running()): project.update({'status': 'BUILDING'}) # who broke the build if (build.get_actions()["causes"][0].has_key("userId")): project.update( {'user': build.get_actions()["causes"][0]["userId"]}) else: project.update({'last_build': None}) jobs.append(project) return jobs def get_view_status(self, view_name): views = Views(self.jenkins) view = views.__getitem__(view_name) jobs = [] for item in view._get_jobs(): job = self.jenkins.get_job(item[0]) project = {'project': item[0]} build = job.get_last_build_or_none() if (build): project.update({'last_build': build.get_number()}) project.update({'status': build.get_status()}) previousBuild = job.get_build(build.get_number() - 1) project.update( {'previousBuildStatus': previousBuild.get_status()}) if (build.is_running()): project.update({'status': 'BUILDING'}) estimated = build._data['estimatedDuration'] completed = (time.time() * 1000) - build._data['timestamp'] completeRate = (completed * 100) / estimated if (completeRate > 99): completeRate = 99 project.update({'completeRate': completeRate}) # who broke the build if (build.get_actions()["causes"][0].has_key("userId")): project.update( {'user': build.get_actions()["causes"][0]["userId"]}) else: project.update({'last_build': None}) jobs.append(project) return jobs def get_job(self, job_name): return self.jenkins.get_job(job_name) def get_culprits(self, build): return build._data["culprits"] def get_bonus_per_build(self, job): return len(job.get_downstream_jobs())