TPE-286 Generate git obs mapping json file for forked git 46/146746/1
authorhyokeun <hyokeun.jeon@samsung.com>
Wed, 30 Aug 2017 08:34:38 +0000 (17:34 +0900)
committerhyokeun <hyokeun.jeon@samsung.com>
Wed, 30 Aug 2017 08:34:38 +0000 (17:34 +0900)
Change-Id: Ia8b95ab294c38ce3d4e4b2de69e11ce4ba8f135f

job_update_git_obs_mapping_for_dashboard.py

index f80c932..a777257 100644 (file)
@@ -27,6 +27,8 @@ from common.gerrit import Gerrit, get_gerrit_event
 from common.git import clone_gitproject
 from common.git_obs_mapping import GitObsMapping
 
+from common.mapping import git_obs_map_full_list
+
 #================================================================================
 # generate_mapping()
 #================================================================================
@@ -73,6 +75,30 @@ def generate_mapping(prjdir, target_dir):
     with open(target_filename, "w") as f:
         f.write(json.dumps(git_obs_mapping_info))
 
+#Handle forked git
+def generate_fork_git_mapping(prjdir, target_dir):
+    mapping = git_obs_map_full_list()
+    git_obs_mapping_fork_info = {}
+    for item in mapping:
+        # We only care about defined git repositories
+        if ('OBS_project' not in item) or (not item.get('OBS_project')) \
+            or ('Project_name' not in item) or (not item.get('Project_name')):
+            continue
+        git_repo = item.get('Project_name')
+        package_name = item.get('OBS_package', None)
+        if not package_name:
+            package_name = os.path.basename(git_repo)
+        obs_project = item.get('OBS_project')
+        if item.get('Project_name') not in git_obs_mapping_fork_info:
+            git_obs_mapping_fork_info[git_repo] = {obs_project: package_name}
+        else:
+            git_obs_mapping_fork_info[git_repo][obs_project] = package_name
+
+    target_filename = os.path.join(target_dir, "mapping_fork.json")
+
+    with open(target_filename, "w") as f:
+        f.write(json.dumps(git_obs_mapping_fork_info))
+
 ###########################################################
 # test code
 #target_dir = ".dashboard/git_obs_mapping"
@@ -97,7 +123,9 @@ clone_gitproject(GERRIT_PROJECT, prjdir)
 target_dir = ".dashboard/git_obs_mapping"
 
 generate_mapping(prjdir, target_dir)
+generate_fork_git_mapping(prjdir, target_dir)
 
 sync_dest = os.path.join(os.getenv("IMG_SYNC_DEST_BASE"), "snapshots", target_dir)
 # sync to the download server.
 sync(target_dir, sync_dest)
+