# target project: for pkg, status in res['packages'] ...
-def check_common_pkgs(obs, submissions):
- """Check if submissions have common packages"""
+def check_binary_pkgs(obs, submissions, force=False):
+ """
+ Check if submissions have common binary packages.
+ Check if binary packages exist.
+ """
binaries = {}
for submission, data in submissions.iteritems():
pkgs = list(obs.get_binary_packages(data['project']))
# check if submission has binary packages
for repo, bins in pkgs:
- #if not bins:
- # raise RepaException('No binary packages found in %s %s/%s' % \
- # (submission, repo[0], repo[1]))
+ # Check if binary packages exist
+ if not force and not bins:
+ raise RepaException('No binary packages found in %s %s/%s' % \
+ (submission, repo[0], repo[1]))
# check if submissions have common packages
for subm, info in binaries.iteritems():
if repo == info['repo']:
return aggregated
-def group_submissions(obs, submissions, target, comment):
+def group_submissions(obs, submissions, target, comment, force=False):
"""Group multiple submissions into one group."""
# find correspondent prerelease projects
info = {}
for subm, data in info.iteritems()]
check_build_results(bresults)
- check_common_pkgs(obs, info)
+ check_binary_pkgs(obs, info, force)
# create group project
name, gproject = create_group_project(obs, info.keys(),
parser.add_argument('-p', '--project', help='target project',
required=True)
parser.add_argument('-c', '--comment', help='comment', default='')
+ parser.add_argument('-f', '--force', help='force group creation',
+ default=False)
@staticmethod
def run(argv):
"""Command line entry point. Called from [sub_]main."""
obs = OBS(argv.apiurl, argv.apiuser, argv.apipasswd)
return group_submissions(obs, argv.submission, argv.project,
- argv.comment)
+ argv.comment, argv.force)
if __name__ == '__main__':