"""Wrapper around get_description to be able to use @retry."""
return self.get_description(project)
- def get_projects(self, regexp='', processes=0):
- """List projects with attributes."""
+ def get_project_list(self, regexp=''):
+ """Get list of projects matching regexp."""
try:
projects = core.meta_get_project_list(self.apiurl)
except OSCError as err:
raise RepaException("cat't get list of projects from %s: %s" %
(self.apiurl, err))
+ for proj in projects:
+ if regexp and re.match(regexp, proj):
+ yield proj
+
+
+ def get_projects(self, regexp='', processes=0):
+ """List projects with attributes."""
+ projects = list(self.get_project_list(regexp))
+
if processes > 1:
from multiprocessing.pool import ThreadPool
pool = ThreadPool(processes=processes)
processes = {}
for project in projects:
- if regexp and re.match(regexp, project):
- processes[project] = (
- pool.apply_async(self.get_descr, [project]),
- pool.apply_async(self.get_build_results, [project]))
+ processes[project] = (
+ pool.apply_async(self.get_descr, [project]),
+ pool.apply_async(self.get_build_results, [project]))
for project in projects:
- if regexp and re.match(regexp, project):
- if processes > 1:
- yield (project, processes[project][0].get(),
- processes[project][1].get())
- else:
- yield (project, self.get_descr(project),
- self.get_build_results(project))
+ if processes > 1:
+ yield (project, processes[project][0].get(),
+ processes[project][1].get())
+ else:
+ yield (project, self.get_descr(project),
+ self.get_build_results(project))
@retry((OSCError, HTTPError))