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):