from array import * from rpi_led_manager import RaspberryPi from jenkinsapi.jenkins import Jenkins class JenkinsStatus: def __init__(self, jenkins_url, jenkins_job, rpi): self.jenkins_url = jenkins_url self.jenkins_job = jenkins_job self.raspberry_pi = rpi def get_server_instance(self): server = Jenkins(self.jenkins_url) return server def get_latest_job(self): server = self.get_server_instance() job = server[self.jenkins_job] latest = job.get_last_build() return latest def get_latest_job_status(self): global current_status job = self.get_latest_job() status = job.get_status() current_status = status return status def set_status_led(self): status = self.get_latest_job_status() print status if status == 'FAILURE': raspberry_pi.set_red() if status == 'SUCCESS': raspberry_pi.set_blue() if status == 'UNSTABLE': raspberry_pi.set_yellow() self.raspberry_pi.dash() # Set appropriate GPIO pins for blue, yellow and red LEDs raspberry_pi = RaspberryPi(11, 7, 16) jenkins_url = 'http://example.com:8080' jobs = ['jenkins-example-job1', 'jenkins-example-job2'] for job in jobs: j = JenkinsStatus(jenkins_url, job, raspberry_pi) print 'Jenkins Version: ' + j.get_server_instance().version print 'Jenkins Job: ' + job print j.get_latest_job() j.get_latest_job_status() j.set_status_led()