return 'packages: ' + status
-def get_groups(obs):
- """Get information about submission groups from home:prerelease:groups."""
- project = OBS_PREFIX + 'groups'
- if not obs.exists(project):
- return {}
- return json.loads(obs.get_description(project))
-
-
def list_submissions(obs, regexp):
"""List submissions and groups."""
# submissions
- related_groups = []
+ submissions = set()
header = True
for project, desc in obs.get_projects('^%s.*%s' % (OBS_PREFIX, regexp)):
+ if ':submitgroup:' in project:
+ continue
meta = json.loads(desc)
+ submissions.add(meta['git_tag'])
if header:
print ':::: Submissions:'
header = False
print meta['git_tag'], meta['obs_target_prj'], \
get_status(obs, project)
- related_groups.extend(meta.get('groups') or [])
-
- # groups
- all_groups = get_groups(obs)
- if not all_groups: # no groups found
- return
- groups = []
- for group in related_groups:
- ginfo = all_groups.get(group)
- if ginfo:
- groups.append(group, ginfo['status'])
- #else: warning: group mentioned in submission, but doesn't exist
- if groups:
- print ':::: Groups:'
- for group in groups:
- print group[0], group[1]
+
+ # Groups, related to selected submissions
+ header = True
+ for project, desc in obs.get_projects('^%ssubmitgroup' % OBS_PREFIX):
+ meta = json.loads(desc)
+ lsub = set(meta['submissions'])
+ if lsub.intersection(submissions):
+ if header:
+ print ':::: Groups:'
+ header = False
+ print meta['name'], ','.join(subm.split('/')[-1] for subm in lsub)
class List(object):