Created job_submit out of job_pre_release_gerrit
authorEd Bartosh <eduard.bartosh@intel.com>
Tue, 24 Sep 2013 11:40:30 +0000 (14:40 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Wed, 9 Oct 2013 17:48:21 +0000 (20:48 +0300)
job_sumbit can be run in two modes: prerelease and snapshot. In
prerelease mode it does the same as job_pre_release_gerrit was doing. In
snapshot mode it uploads package straight to target project.

Change-Id: I6714070654cd3f1196b112e3970e39e7aa77371e
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
job_submit.py [moved from job_pre_release_gerrit.py with 76% similarity]
packaging/jenkins-scripts.spec

similarity index 76%
rename from job_pre_release_gerrit.py
rename to job_submit.py
index e910afb..672c0a1 100755 (executable)
@@ -48,8 +48,8 @@ def git_obs_map(gerrit_prj, gerrit_branch):
     raise LocalError('Not found git-obs-mapping for %s branch %s' % \
                      (gerrit_prj, gerrit_branch))
 
-def create(git_url, git_project, git_tag, git_revision, build,
-           obs_target_prj, obs_project):
+def create_project(git_url, git_project, git_tag, git_revision, build,
+                   obs_target_prj, obs_project):
     """Create prerelease OBS project and upload sources for the build."""
 
     # Create review project if it doesn't exist
@@ -72,6 +72,13 @@ def create(git_url, git_project, git_tag, git_revision, build,
         except ObsError, error:
             LocalError("Unable to create project %s: %s" % (obs_project, error))
 
+    upload(git_url, git_project, git_tag, git_revision, obs_project, build)
+
+    build.link_project(obs_project, src=obs_target_prj, linktype="localdep")
+
+
+def upload(git_url, git_project, git_tag, git_revision, obs_project, build):
+    """Upload _service file to OBS. Create package if doesn't exist."""
     package = os.path.basename(git_project)
     if not build.exists(obs_project, package):
         try:
@@ -97,15 +104,12 @@ def create(git_url, git_project, git_tag, git_revision, build,
     except ObsError, error:
         raise LocalError("Unable to upload _service to %s: %s" % \
                          (obs_project, error))
-    build.link_project(obs_project, src=obs_target_prj, linktype="localdep")
-
-    return 0
 
-def main(name):
+def main(build_type):
     """
     Script entry point.
     Parameters:
-       name - name of the script
+       build_type - type of the build (prerelease, snapshot)
 
     """
 
@@ -116,6 +120,8 @@ def main(name):
     obs_passwd = os.getenv("OBS_API_PASSWD")
     gerrit_project = os.getenv("GERRIT_PROJECT")
     gerrit_refname = os.getenv("GERRIT_REFNAME")
+    gerrit_oldrev = os.getenv("GERRIT_OLDREV")
+    gerrit_newrev = os.getenv("GERRIT_NEWREV")
 
     # Triggered by Gerrit - use GERRIT_REFNAME to get tag
     git_tag = gerrit_refname.split("refs/tags/")[1]
@@ -126,22 +132,24 @@ def main(name):
     obs_target_prjs = git_obs_map(os.getenv("GERRIT_PROJECT"), git_branch)
     build = BuildService(obs_api, obs_user, obs_passwd)
     for obs_target_prj, _obs_stg_prj, _obs_pkg in obs_target_prjs:
-        project = get_prerelease_project_name(obs_target_prj, git_tag)
-        if is_ref_deleted(os.getenv("GERRIT_OLDREV"),
-                          os.getenv("GERRIT_NEWREV")):
-            rcode = build.cleanup(project, "Cleaned by %s" % name)
-        else:
-            url = 'ssh://%s:%s' % (os.getenv('GERRIT_HOSTNAME'),
-                                   os.getenv('GERRIT_SSHPORT'))
-            rcode = create(url, gerrit_project, git_tag,
-                           os.getenv("GERRIT_NEWREV"),
-                           build, obs_target_prj, project)
-        if rcode:
-            return rcode
+        url = 'ssh://%s:%s' % (os.getenv('GERRIT_HOSTNAME'),
+                               os.getenv('GERRIT_SSHPORT'))
+        if build_type == 'prerelease':
+            project = get_prerelease_project_name(obs_target_prj, git_tag)
+            if is_ref_deleted(gerrit_oldrev, gerrit_newrev):
+                build.cleanup(project, "Cleaned by %s" % name)
+            else:
+                create_project(url, gerrit_project, git_tag, gerrit_newrev,
+                               build, obs_target_prj, project)
+        elif build_type == 'snapshot':
+            if not is_ref_deleted(gerrit_oldrev, gerrit_newrev):
+                # Upload _service to target project
+                upload(url, gerrit_project, git_tag, gerrit_newrev,
+                       obs_target_prj, build)
 
 if __name__ == '__main__':
     try:
-        sys.exit(main(os.path.basename(sys.argv[0])))
+        sys.exit(main(os.path.basename(sys.argv[1])))
     except LocalError, err:
         print err
         sys.exit(1)
index bd92c2d..164471a 100644 (file)
@@ -68,9 +68,9 @@ cp -r job_*.py common requests %{buildroot}%{destdir}/
 %{destdir}/job_load_repos.yaml.py
 %{destdir}/job_local_cache_cleanups.py
 %{destdir}/job_policycheck.py
-%{destdir}/job_pre_release_gerrit.py
 %{destdir}/job_pre_release_obs.py
 %{destdir}/job_request.py
+%{destdir}/job_submit.py
 %{destdir}/requests
 %{destdir}/common/backenddb.py
 %{destdir}/common/imagedata.py