Merge "Multiple project groups."
diff --git a/jeepyb/cmd/update_blueprint.py b/jeepyb/cmd/update_blueprint.py
index 2ce52f3..0231375 100644
--- a/jeepyb/cmd/update_blueprint.py
+++ b/jeepyb/cmd/update_blueprint.py
@@ -68,11 +68,18 @@
def update_spec(launchpad, project, name, subject, link, topic=None):
+ spec = None
+
if p.is_no_launchpad_blueprints(project):
return
- project = p.project_to_group(project)
- spec = launchpad.projects[project].getSpecification(name=name)
+ projects = p.project_to_groups(project)
+
+ for project in projects:
+ spec = launchpad.projects[project].getSpecification(name=name)
+ if spec:
+ break
+
if not spec:
return
diff --git a/jeepyb/cmd/update_bug.py b/jeepyb/cmd/update_bug.py
index 8644106..d0c8cd0 100644
--- a/jeepyb/cmd/update_bug.py
+++ b/jeepyb/cmd/update_bug.py
@@ -290,7 +290,7 @@
if p.is_no_launchpad_bugs(project):
return []
- project = p.project_to_group(project)
+ projects = p.project_to_groups(project)
part1 = r'^[\t ]*(?P<prefix>[-\w]+)?[\s:]*'
part2 = r'(?:\b(?:bug|lp)\b[\s#:]*)+'
@@ -307,7 +307,7 @@
try:
lp_bug = launchpad.bugs[bug_num]
for lp_task in lp_bug.bug_tasks:
- if lp_task.bug_target_name == project:
+ if lp_task.bug_target_name in projects:
bugtasks[bug_num] = Task(lp_task, prefix)
break
except KeyError:
diff --git a/jeepyb/projects.py b/jeepyb/projects.py
index a801830..713072d 100644
--- a/jeepyb/projects.py
+++ b/jeepyb/projects.py
@@ -18,6 +18,8 @@
- project: some/project
launchpad: awesomeproject
description: Best project ever.
+ groups:
+ - awesome-group
options:
- direct-release
- no-launchpad-bugs
@@ -30,10 +32,12 @@
registry = u.ProjectsRegistry()
-def project_to_group(project_full_name):
- return registry[project_full_name].get(
- 'group', registry[project_full_name].get(
- 'launchpad', u.short_project_name(project_full_name)))
+def project_to_groups(project_full_name):
+ return registry[project_full_name] \
+ .get('groups',
+ [registry[project_full_name].get('group',
+ u.short_project_name(
+ project_full_name))])
def _is_no_launchpad(project_full_name, obj_type):