def finish(self, request, pk, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) jjob = JenkinsController().get_job(pk) if not jjob: return ResponseNotFound("Job '%s' not found on Jenkins" % pk) job.build_number = 0 job.save() return ResponseOk(model_to_dict(job))
def stop(self, request, pk, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) jay = JenkinsController() jjob = jay.get_job(pk) if not jjob: return ResponseNotFound("Job '%s' not found on Jenkins" % pk) try: jay.stop_build(job) except jenkins.JenkinsException as e: return ResponseServerError(str(e)) job.save() return ResponseOk(model_to_dict(job))
def status(self, request, pk, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) jay = JenkinsController() jjob = jay.get_job(pk) if not jjob: return ResponseNotFound("Job '%s' not found on Jenkins" % pk) try: if not job.build_number: return ResponseNotFound("Job '%s' doesn't have a current build" % pk) build_info = jay.get_build_info(job, job.build_number) except jenkins.JenkinsException as e: return ResponseServerError(str(e)) return ResponseOk(build_info)
def builds(self, request, pk, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) jay = JenkinsController() jjob = jay.get_job(pk) if not jjob: return ResponseNotFound("Job '%s' not found on Jenkins" % pk) try: job_info = jay.get_job_info(job) builds = [] for build in job_info['builds']: builds.append(jay.get_build_info(job, build['number'])) except jenkins.JenkinsException as e: return ResponseServerError(str(e)) return ResponseOk(builds)
def start(self, request, pk, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) try: jay = JenkinsController() jjob = jay.get_job(pk) if not jjob: jay.create_job(job) else: jay.update_job(job) job.build_number = jay.build_job(job) if job.build_number: job.save() except jenkins.JenkinsException as e: return ResponseServerError(str(e)) return ResponseOk(model_to_dict(job))
def build_info(self, request, pk, number, format=None): job = Job.find_job(pk) if not job: return ResponseNotFound("Job '%s' not found" % pk) jay = JenkinsController() jjob = jay.get_job(pk) if not jjob: return ResponseNotFound("Job '%s' not found on Jenkins" % pk) try: try: number = int(number) except ValueError: msg = ("Job '%s' does not have a job '%s'" % (pk, number)) return ResponseNotFound(msg) build_info = jay.get_build_info(job, number) except jenkins.JenkinsException as e: return ResponseServerError(str(e)) return ResponseOk(build_info)