DXLTTC-785 First SR acceptance problem. 72/138372/2
authorYonghee Han <onstudy@samsung.com>
Wed, 12 Jul 2017 03:31:24 +0000 (12:31 +0900)
committerYonghee Han <onstudy@samsung.com>
Fri, 14 Jul 2017 08:25:07 +0000 (17:25 +0900)
PROBLEM : If you have a linked package when you first accept it, it will be added to linked package.

SOLUTION : First, create initial package and will be added to SR package.

Change-Id: I8df590cfcef48cac0c402b01ae2674656cf96773

repa/common.py
repa/obs.py

index e4b743b9e661d7a4ab37e32224d11a40edce8662..c28fc98d3407644cf89c7ceeff011437f9f9129f 100644 (file)
@@ -138,6 +138,14 @@ def accept_or_reject(obs, submission, state, target, comment='',
                 if not is_aggregate_package(obs, project, p) and not is_link_package(obs, project, p):
                     source_packages.append(p)
 
+            # If source_packages is not exists in target_prj
+            # create a package in target_prj
+            if state == 'accepted':
+                org_target_packages=obs.get_package_list(target_prj)
+                for package in source_packages:
+                    if not package in org_target_packages:
+                        obs.create_package(target_prj, package)
+
             reqid = obs.create_sr(project, source_packages,
                                   target_prj, message=message)
 
index 997ae548d6e57099c7c6cb02f090c54852450e58..2796e849d8abd0fc29a8b348650c99f5e286b40c 100644 (file)
@@ -287,3 +287,17 @@ class OBS(OSC):
             if error.message == "HTTP Error 404: Not Found":
                 return None
             raise
+
+    def get_package_list(self, prj, deleted=None):
+        """Get package list of the project"""
+        query = {}
+        if deleted:
+            query['deleted'] = 1
+        else:
+            query['deleted'] = 0
+
+        url = core.makeurl(self.apiurl, ['source', prj], query)
+        _file = core.http_GET(url)
+        root = ET.parse(_file).getroot()
+        return [node.get('name') for node in root.findall('entry')]
+