Publish "submitted" event to IRIS.
authorZhuoX Li <zhuox.li@intel.com>
Wed, 3 Sep 2014 08:44:40 +0000 (16:44 +0800)
committerLin A Yang <lin.a.yang@intel.com>
Mon, 29 Sep 2014 00:52:16 +0000 (03:52 +0300)
Add a new function publish_event() in IrisRestClient class.

Use this function to publish "submitted" event when a submission
tag is just received.

Change-Id: I2a23b6b221e79dcb6b99bc78fd0126516407fae4

common/iris_rest_client.py
job_submit.py

index 76bdeda..73036ba 100644 (file)
@@ -58,3 +58,9 @@ class IrisRestClient(object):
         with open(domain_file, 'rb') as domains, open(gittree_file, 'rb') as gittrees:
             files = (('domains', domains), ('gittrees', gittrees))
             return self._post('app/packagedb/scm/check/', files=files)
+
+    def publish_event(self, data):
+        """
+        Publish submissions related events to IRIS server
+        """
+        return self._post('api/submissions/events/', data=data)
index 5f9f70e..8517e65 100755 (executable)
@@ -8,6 +8,7 @@ This job is triggered by Gerrit RefUpdate event.
 import os
 import sys
 import json
+import base64
 from xml.sax.saxutils import escape
 
 from gitbuildsys.errors import ObsError
@@ -19,6 +20,8 @@ from common.gerrit import is_ref_deleted
 from common.buildservice import BuildService
 from common.backenddb import BackendDB
 from common.prerelease import get_prerelease_project_name, prerelease_enabled
+from common.iris_rest_client import IrisRestClient
+
 
 class LocalError(Exception):
     """Local error exception."""
@@ -116,6 +119,22 @@ def main(build_type):
     git_branch = git_tag.split('/')[1]
     if git_branch == 'trunk':
         git_branch = 'master'
+
+    if os.getenv("IRIS_PUB_ENABLED", "0") != "0":
+        rest = IrisRestClient(
+            os.getenv("IRIS_SERVER"),
+            os.getenv("IRIS_USERNAME"),
+            base64.b64decode(os.getenv('IRIS_PASSWORDX','')))
+        rest.publish_event({
+                "event": "submitted",
+                "branch": git_branch,
+                "commit_id": gerrit_newrev,
+                "gitpath": gerrit_project,
+                "submitter": gerrit_account_name,
+                "submitter_email": gerrit_account_email,
+                "tag": git_tag,
+                })
+
     # get list of target projects from git-obs-mapping
     obs_target_prjs = git_obs_map(os.getenv("GERRIT_PROJECT"), git_branch)
     build = BuildService(obs_api, obs_user, obs_passwd)