TPE-469 Fix dashboard git-obs-map update fail and abs update 93/161393/2
authorhyokeun <hyokeun.jeon@samsung.com>
Thu, 23 Nov 2017 06:54:49 +0000 (15:54 +0900)
committerhyokeun <hyokeun.jeon@samsung.com>
Thu, 23 Nov 2017 08:52:34 +0000 (17:52 +0900)
Change-Id: Id0d8a3eb46c40e7025e5dc56c4a711782ac24642

common/mapping.py
job_update_git_obs_mapping_for_dashboard.py

index e113b48..2a23763 100644 (file)
@@ -195,11 +195,11 @@ class MappingV2(object):
 
         return mapping
 
-    def get_mapping_list(self, obs_project, staging_project):
+    def get_mapping_list(self, obs_project, staging_project, ignore_config=False):
         """Get all list"""
         mapping = []
 
-        if self.mapping_obj.configure:
+        if ignore_config == False and self.mapping_obj.configure:
             # if configure.enable is false then return []
             if self.mapping_obj.configure.enable == 'false':
                 return mapping
@@ -415,7 +415,7 @@ def git_obs_map_full_list(obs_project=None, staging_project=None, gitcache=None,
     # get mappings v2
     for file in mapping_v2_file_lists:
         mymapping_v2 = MappingV2(file)
-        obs_prjs.extend(mymapping_v2.get_mapping_list(obs_project, staging_project))
+        obs_prjs.extend(mymapping_v2.get_mapping_list(obs_project, staging_project, ignore_config=True))
 
     # remove overlapped items
     #obs_prjs = remove_overlaps(obs_prjs)
index a777257..9f46ffc 100755 (executable)
@@ -48,9 +48,10 @@ def generate_mapping(prjdir, target_dir):
     git_obs_mapping_info = {}
 
     #proj_branch_info = gerrit.ls_projects()
-    cmd = "ssh -p %s %s gerrit ls-projects %s > proj_list" % (os.getenv('GERRIT_SSHPORT', 29418),
-                                                              os.getenv('GERRIT_HOSTNAME', "review.tizen.org"),
-                                                              arg)
+    cmd = "ssh -p %s %s@%s gerrit ls-projects %s > proj_list" % (os.getenv('GERRIT_SSHPORT', 29418),
+                                                                 os.getenv('GERRIT_USERNAME'),
+                                                                 os.getenv('GERRIT_HOSTNAME', "review.tizen.org"),
+                                                                 arg)
     subprocess.check_output(cmd, shell=True)
     with open("proj_list", "r") as f:
         for l in f:
@@ -99,6 +100,32 @@ def generate_fork_git_mapping(prjdir, target_dir):
     with open(target_filename, "w") as f:
         f.write(json.dumps(git_obs_mapping_fork_info))
 
+#Handle ABS git
+def generate_abs_git_mapping(prjdir, target_dir):
+    mapping = git_obs_map_full_list()
+    git_obs_mapping_abs_info = {}
+    for item in mapping:
+        # We only care about abs tag
+        if ('OBS_project' not in item) or (not item.get('OBS_project')) \
+            or ('Project_name' not in item) or (not item.get('Project_name')) \
+            or ('OBS_staging_project' not in item) or (not item.get('OBS_staging_project')) \
+            or (item.get('OBS_staging_project') != 'abs'):
+            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_abs_info:
+            git_obs_mapping_abs_info[git_repo] = {obs_project: package_name}
+        else:
+            git_obs_mapping_abs_info[git_repo][obs_project] = package_name
+
+    target_filename = os.path.join(target_dir, "mapping_abs.json")
+
+    with open(target_filename, "w") as f:
+        f.write(json.dumps(git_obs_mapping_abs_info))
+
 ###########################################################
 # test code
 #target_dir = ".dashboard/git_obs_mapping"
@@ -115,15 +142,14 @@ GERRIT_SSHPORT = os.getenv('GERRIT_SSHPORT')
 GERRIT_SILENT_MODE = int(os.getenv('GERRIT_SILENT_MODE'))
 
 events = get_gerrit_event()
-print(events)
 
 prjdir = os.path.join(WORKSPACE, "git-obs-mapping")
-
-clone_gitproject(GERRIT_PROJECT, prjdir)
+clone_gitproject(GERRIT_PROJECT, prjdir, git_cache_dir="nonexist")
 target_dir = ".dashboard/git_obs_mapping"
 
 generate_mapping(prjdir, target_dir)
 generate_fork_git_mapping(prjdir, target_dir)
+generate_abs_git_mapping(prjdir, target_dir)
 
 sync_dest = os.path.join(os.getenv("IMG_SYNC_DEST_BASE"), "snapshots", target_dir)
 # sync to the download server.