Fix check for common packages
authorEd Bartosh <eduard.bartosh@intel.com>
Fri, 2 May 2014 16:22:53 +0000 (19:22 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Fri, 2 May 2014 16:22:53 +0000 (19:22 +0300)
This check should not allow to create group from submissions with common
binary packages. It didn't work because of the incomplete implementation.

Fixes: #1847
Change-Id: I7e756913f8756bdb330bf31dae9574e973717f6c
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
repa/group.py

index 25be5aba7a6fc04a3e7a902e2acdbf2e7bcee770..506eb02e9afc888afac961145691e6d02e5f568e 100755 (executable)
@@ -69,7 +69,7 @@ def check_binary_pkgs(obs, submissions, force=False):
     Check if submissions have common binary packages.
     Check if binary packages exist.
     """
-    binaries = {}
+    binaries = defaultdict(dict)
     for submission, data in submissions.iteritems():
         pkgs = list(obs.get_binary_packages(data['project']))
         # check if submission has binary packages
@@ -80,12 +80,13 @@ def check_binary_pkgs(obs, submissions, force=False):
                                     (submission, repo[0], repo[1]))
             # check if submissions have common packages
             for subm, info in binaries.iteritems():
-                if repo == info['repo']:
-                    common = set(info['bins']).intersection(bins)
+                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
 
 
 def create_group_project(obs, submissions, meta, comment):