release-snapshot can be triggered by Tizen dashboard 71/119071/2
authorJunghyun Kim <jh0822.kim@samsung.com>
Wed, 15 Mar 2017 10:35:42 +0000 (19:35 +0900)
committerJunghyun Kim <jh0822.kim@samsung.com>
Wed, 15 Mar 2017 23:14:46 +0000 (08:14 +0900)
PARAMETER CHANGED:
profile -> obs_project
version (NEW)

release-snapshot triggers BUILD-MONITOR with bm_stage RELEASE_SNAPSHOT

profile can be obtained from obs_project using snapshot-repo-conf
jenkins-jobs will be updated together.

Change-Id: I945be1756426c3c9b88a901d5cf1afa59b395c16
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
job_buildmonitor.py
job_release_snapshot.py

index a85136a..6beaecf 100644 (file)
@@ -1156,6 +1156,16 @@ def update_build_log(content):
             query_data = (build_log_url, build_target_id, info_package_id)
             buildmonitor_db.do_query(query, query_data)
 
+def update_release_snapshot(content):
+    snapshot = content.get('snapshot')
+    release_type = content.get('release_type')
+    version = content.get('version')
+
+    print "update snapshot %s as a %s release with version %s" % (snapshot, release_type, version)
+    query = "UPDATE build_snapshot SET %s=%s WHERE snapshot_name=%s"
+    query_data = (release_type, version, snapshot)
+    buildmonitor_db.do_query(query, query_data)
+
 def update_unresolvable_broken_packages(project, unresolvable_broken_packages):
 
     if unresolvable_broken_packages is None:
@@ -2046,6 +2056,10 @@ def main():
         print "[%s][[TRBS]_UPDATE_BUILD_LOG]\n" % (__file__)
         update_build_log(content)
 
+    elif bm_stage == "RELEASE_SNAPSHOT":
+        print "[%s][%s]\n" % (__file__, bm_stage)
+        update_release_snapshot(content)
+
     #=======================================================
     # [POST] Image / Post_Image => N/A
     #=======================================================
index c1f2f61..c13908f 100755 (executable)
@@ -38,13 +38,22 @@ def main():
     path_repo_base = os.getenv('PATH_REPO_BASE')
 
     release_type = os.getenv('release_type')
-    release_profile = os.getenv('profile')
+    #release_profile = os.getenv('profile')
+    obs_project = os.getenv('obs_project')
     release_id = os.getenv('release_id')
+    version = os.getenv('version')
 
     # only supports the snapshot repo created by Jenkins
     backend = BackendDB(os.getenv('REDIS_HOST'),
                         int(os.getenv("REDIS_PORT")))
 
+    obs_repo_map = backend.get_obs_repo_map()
+    if obs_project not in obs_repo_map:
+        print "Internal error, the repository corresponding obs project %s does not exist!" % obs_project
+        return -1
+
+    release_profile = obs_repo_map[obs_project]
+
     repos = backend.get_repos()
     if release_profile not in repos:
         print "Internal error, the profile %s doesn't exists" % release_profile
@@ -97,6 +106,11 @@ def main():
                          'base_project':profile_info['Project'], \
                          'release_id':release_id})
 
+    trigger_next("BUILD-MONITOR", \
+            {'bm_stage':'RELEASE_SNAPSHOT',
+                 'snapshot_name':release_id,
+                 'release_type':release_type,
+                 'version':version})
 if __name__ == '__main__':
 
     sys.exit(main())