From: Aleksey Maksimov Date: Fri, 31 Jan 2014 01:45:51 +0000 (-0800) Subject: Merge pull request #236 from jvale/job_folders_support X-Git-Tag: v0.2.23~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=45229853a925981215b33ad5350f8efe1d7a6f00;p=tools%2Fpython-jenkinsapi.git Merge pull request #236 from jvale/job_folders_support Add support for Job Folders (CloudBees Folders Plugin). --- 45229853a925981215b33ad5350f8efe1d7a6f00 diff --cc jenkinsapi/jenkinsbase.py index 052802f,8b6f321..9803f77 --- a/jenkinsapi/jenkinsbase.py +++ b/jenkinsapi/jenkinsbase.py @@@ -65,9 -66,29 +67,29 @@@ class JenkinsBase(object) try: return ast.literal_eval(response.text) except Exception: - log.exception('Inappropriate content found at %s', url) + logging.exception('Inappropriate content found at %s', url) raise JenkinsAPIException('Cannot parse %s' % response.content) + def resolve_job_folders(self, jobs): + for job in jobs: + if 'color' not in job.keys(): + jobs.remove(job) + jobs += self.process_job_folder(job) + + return jobs + + def process_job_folder(self, folder): + data = self.get_data(self.python_api_url(folder['url'])) + result = [] + + for job in data.get('jobs', []): + if 'color' not in job.keys(): + result += self.process_job_folder(job) + else: + result.append(job) + + return result + @classmethod def python_api_url(cls, url): if url.endswith(config.JENKINS_API):