"""
Check if submissions have common binary packages.
Check if binary packages exist.
+ Returns: list of non-conflicting submissions
"""
binaries = defaultdict(dict)
- for submission, data in submissions.iteritems():
+ result = set(submissions.keys())
+ for submission, data in sorted(submissions.iteritems()):
pkgs = list(obs.get_binary_packages(data['project']))
# check if submission has binary packages
for repo, bins in pkgs:
if repo in info:
common = set(info[repo]).intersection(bins)
if common:
- msg = '%s and %s have common packages: %s' % \
- (subm, submission, ','.join(common))
- raise RepaException(msg)
- binaries[submission][repo] = bins
+ print '%s and %s have %d common packages,' \
+ ' skipping %s' % (subm, submission,
+ len(common), submission)
+ if submission in result:
+ result.remove(submission)
+ break
+ else:
+ binaries[submission][repo] = bins
+
+ return result
def create_group_project(obs, submissions, meta, comment):
for subm, data in info.iteritems()]
check_build_results(bresults)
- check_binary_pkgs(obs, info, force)
+ # filter out conflicting submissions
+ filtered = check_binary_pkgs(obs, info, force)
+ bresults = [item for item in bresults if item[0] in filtered]
+ info = dict(item for item in info.iteritems() if item[0] in filtered)
# create group project
name, gproject = create_group_project(obs, info.keys(),