Fix sync error of the spin infra 10/176610/1
authorYonghee Han <onstudy@samsung.com>
Fri, 20 Apr 2018 08:05:29 +0000 (17:05 +0900)
committerYonghee Han <onstudy@samsung.com>
Fri, 20 Apr 2018 08:05:29 +0000 (17:05 +0900)
Enable Submit request
Add a hooks/commit
Add exception code for the contains branch

Change-Id: I431d4324ea73f0e85ed8ead3e237e8466312d557

job_git_sync_downstream.py

index 5d64907..4af916c 100644 (file)
@@ -45,7 +45,7 @@ class GitType:
                 break
         return type_name
 
-IS_SUBMIT_REQUEST=False
+IS_SUBMIT_REQUEST=True
 def submit_request(project, branch, commit, tagname):
     """
     Submit Request
@@ -128,7 +128,6 @@ def parse_pkg_info_xml(tmpdir, pkg_info_url, user=None, password=None):
     tree = ET.parse(urllib2.urlopen(request))
     root = tree.getroot()
 
-    #print root.read()
     for info in root.iter('gerritinfo'):
         for content in info.iter('content'):
             project=''
@@ -190,7 +189,7 @@ def main():
     git_prefix = content.get('fork_repo_prefix')
     sync_history_id = content.get('sync_history_id')
     tagname = content.get('sr_tag')
-    pkg_sync_list = content.get('package_list').split(',')
+    pkg_sync_list = content.get('package_list')
 
     if not pkg_info_url:
         print 'Error : Can not parse from package-info.xml'
@@ -219,6 +218,8 @@ def main():
 
     # Parse from package-info.xml
     pkg_info_list = parse_pkg_info_xml(tmpdir, pkg_info_url)
+    print pkg_info_list
+
     # Compare package list
     for project in pkg_sync_list:
         try:
@@ -253,6 +254,13 @@ def main():
                 private_git_dir = os.path.join(tmpdir, private_project)
                 private_gitprj = git.Git(private_git_dir)
 
+                # ERROR: missing Change-Id in commit message footer  
+                retcode, outs = runner.show('scp -p -P %s %s@%s:hooks/commit-msg %s/.git/hooks/' \
+                                            %(os.getenv('GERRIT_SSHPORT'), os.getenv('GERRIT_USERNAME'), 
+                                              os.getenv('GERRIT_HOSTNAME'), private_git_dir))
+                if retcode != 0:
+                    raise RevisionError('error')
+
                 if not private_gitprj.has_branch('origin/%s' % sync_branch, True):
                     raise UpstreamError('Present %s branch failed(%s)' % (sync_branch, private_project))
             
@@ -271,10 +279,13 @@ def main():
                         submit_request_successs.append((private_project, commit, tagname))
             
                 else: ## Merge
-                    if branch in private_gitprj.branch_contains(commit):
-                        print 'already merge %s branch..' % (branch)
-                        continue
-            
+                    try:
+                        if branch in private_gitprj.branch_contains(commit):
+                            print 'already merge %s branch..' % (branch)
+                            continue
+                    except Exception as err:
+                        raise MergeError('merge %s branch failed(%s, %s)' % (branch, private_project, commit))
+                        
                     print '\n* Merge %s %s %s' % (commit, branch, private_project)
                     #retcode = private_gitprj.checkout('origin/%s' % branch, '--')[0]
                     private_gitprj.checkout('origin/%s' % branch)