Update for ref create project 27/161927/1
authorYonghee Han <onstudy@samsung.com>
Tue, 28 Nov 2017 07:51:34 +0000 (16:51 +0900)
committerYonghee Han <onstudy@samsung.com>
Tue, 28 Nov 2017 07:51:34 +0000 (16:51 +0900)
update the project config for reference project

Change-Id: I812796f9258e13b528a1deeb549513d0a67163bc

job_ref_create_prj_obs.py

index 913adfa..99349a6 100644 (file)
@@ -237,7 +237,7 @@ class ref_create_project_obs(object):
             build.default_build_flag(target, repo = None, flag="build")
             build.default_build_flag(target, repo = None, flag="publish")
 
-    def create_project(self, build, target, info, meta=None, config=None, baserefproject=None, copy_person=False):
+    def create_project(self, build, target, info, meta=None, config=None, baserefproject=None):
         """
         create project
         """
@@ -254,10 +254,9 @@ class ref_create_project_obs(object):
                     xml_meta = ElementTree.fromstringlist(meta)
                     #change the target project name
                     xml_meta.set('name',target)
-                    if copy_person != True:
-                        #delete remote person
-                        for person_element in xml_meta.findall('person'):
-                            xml_meta.remove(person_element)
+                    #delete remote person
+                    for person_element in xml_meta.findall('person'):
+                        xml_meta.remove(person_element)
                 #delete link project
                 for link in xml_meta.findall('link'):
                     xml_meta.remove(link)
@@ -497,6 +496,7 @@ class ref_create_project_obs(object):
         #build.link_project(this_project, src=target, linktype=None)
 
         target_meta = build.get_meta(target)
+        target_config = build.get_project_config(target)
         print 'OK we got target_meta...\n%s' % target_meta
         target_xml_meta = ElementTree.fromstringlist(target_meta)
         target_xml_meta.attrib['name'] = this_project
@@ -511,6 +511,8 @@ class ref_create_project_obs(object):
         print 'set meta started...\n%s' % ElementTree.tostring(target_xml_meta)
         build.set_meta(ElementTree.tostring(target_xml_meta), this_project)
 
+        build.set_project_config(this_project, target_config)
+
         build.link_project(this_project, src=target, linktype=None)
 
         print 'Profile %s updated to %s' % (this_project, target)
@@ -709,7 +711,7 @@ class ref_create_project_obs(object):
                 request_sr_list.append({'sr': 'submit',
                                         'snapshot': 'no_snapshot',
                                         'submitters': ['nobody']*len(todo_dict_latest),
-                                        'packages': [ {'package': os.path.basename(todo_dict_latest[x].get('git')),
+                                        'packages': [ {'package': os.path.basename(todo_dict_latest[x].get('git')), 
                                                        'repo': todo_dict_latest[x].get('git'),
                                                        'cid': todo_dict_latest[x].get('rev')} for x in todo_dict_latest ]})
                 snapshot_history_count = len(todo_dict_repos)
@@ -764,7 +766,7 @@ class ref_create_project_obs(object):
             remote_jenkins_build_job(os.getenv('JENKINS_URL_INTERNAL'),
                                      os.getenv('JENKINS_USER'),
                                      os.getenv('JENKINS_PW'),
-                                     'submit-request-sync-hyokeun',
+                                     'submit-request-sync',
                                      None, None, [(fname, fname)])
 
             print '\n\nFinal data to be sync...'
@@ -788,7 +790,7 @@ class ref_create_project_obs(object):
 
     def run_ref_create_project_obs(self, obs_api, obs_user, obs_passwd,
                              remote_obs_api, remote_obs_user, remote_obs_passwd,
-                             gerrit_env, fields=None, copy_person=False):
+                             gerrit_env, fields=None):
 
         print '---[JOB STARTED]-------------------------'
 
@@ -879,9 +881,17 @@ class ref_create_project_obs(object):
             print 'Please check patchinfo'
 
         print "\n    0-1) copy package list (%d):\n %s" %(len(remote_package_list), remote_package_list)
+
+        # FIXME: TODO: Need to debug why osc auth fail happened...;;
+        try:
+            self.create_project(build, target, None, remote_meta, config, baserefproject)
+        except Exception as err:
+            print repr(err)
+        sleep(10)
+
         if not build.exists(target):
             print "\n    0-2) create project: %s" %(target)
-            self.create_project(build, target, None, remote_meta, config, baserefproject, copy_person=copy_person)
+            self.create_project(build, target, None, remote_meta, config, baserefproject)
             todo_dict = self.list_packages_from_remote(build_src, build, src, target)
         else:
             print "\n    0-2) project already exists: %s" %(target)
@@ -922,6 +932,9 @@ class ref_create_project_obs(object):
             print "\n********"
             print "  3) add packages %s" %(packages)
             if packages:
+                print 'profile:%s' % profile
+                print 'target:%s' % target
+                print 'packages:%s' % packages
                 ret_dict_add = self.list_packages_from_remote(\
                                         remote_build, build, profile, target, packages=packages)
                 if ret_dict_add:
@@ -960,7 +973,7 @@ class ref_create_project_obs(object):
 
     def run_copy_project_obs(self, obs_api, obs_user, obs_passwd,
                              remote_obs_api, remote_obs_user, remote_obs_passwd,
-                             gerrit_env, fields=None, copy_person=False):
+                             gerrit_env, fields=None):
         """ copy project """
 
         print '---[JOB STARTED]-------------------------'
@@ -1011,7 +1024,7 @@ class ref_create_project_obs(object):
         print "\n    0-1) copy package list (%d):\n %s" %(len(remote_package_list), remote_package_list)
         if not build.exists(target):
             print "\n    0-2) create project: %s" %(target)
-            self.create_project(build, target, None, remote_meta, config, copy_person=copy_person)
+            self.create_project(build, target, None, remote_meta, config)
             todo_dict = self.list_packages_from_remote(build_src, build, src, target,
                                                        replace_gerrit_url=replace_gerrit_url)
         else:
@@ -1118,7 +1131,7 @@ class ref_create_project_obs(object):
 
                     return self.run_ref_create_project_obs(obs_api, obs_user, obs_passwd,
                                                      remote_obs_api, remote_obs_user, remote_obs_passwd,
-                                                     gerrit_env, fields, copy_person=True)
+                                                     gerrit_env, fields)
                 elif action == 'copy':
 
                     remote_obs_api = obs_api = os.getenv("REF_TARGET_OBS_API_URL")
@@ -1144,7 +1157,7 @@ class ref_create_project_obs(object):
 
                     return self.run_copy_project_obs(obs_api, obs_user, obs_passwd,
                                                      remote_obs_api, remote_obs_user, remote_obs_passwd,
-                                                     gerrit_env, fields, copy_person=True)
+                                                     gerrit_env, fields)
                 elif action == 'remote-create':
 
                     obs_api = os.getenv("REF_TARGET_OBS_API_URL")
@@ -1169,7 +1182,7 @@ class ref_create_project_obs(object):
 
                     return self.run_ref_create_project_obs(obs_api, obs_user, obs_passwd,
                                                      remote_obs_api, remote_obs_user, remote_obs_passwd,
-                                                     gerrit_env, fields, copy_person=False)
+                                                     gerrit_env, fields)
 
                 elif action == 'trigger_manual_sr_sync':