rename triggerbuild to buildtrigger, fix bugs
authorHasan Wan <hasan.wan@intel.com>
Fri, 2 Nov 2012 08:25:52 +0000 (16:25 +0800)
committerLin Yang <lin.a.yang@intel.com>
Mon, 19 Nov 2012 07:46:26 +0000 (15:46 +0800)
Change-Id: I8cb140ddb42ab7a85f663a151d3ce1c64865c6a8
Signed-off-by: Hasan Wan <hasan.wan@intel.com>
common/buildtrigger.py [new file with mode: 0644]
common/triggerbuild.py [deleted file]
job_obsevent_dispatcher.py
job_request.py

diff --git a/common/buildtrigger.py b/common/buildtrigger.py
new file mode 100644 (file)
index 0000000..50f5851
--- /dev/null
@@ -0,0 +1,19 @@
+import base64
+try:
+    import json
+except ImportError:
+    import simplejson as json
+
+def trigger_next(job_name, data):
+    print "====LOG:TRIGGER_NEXT:%s ========================================" %job_name.upper()
+    with open("%s.env" %job_name, 'w') as fh:
+        fh.write('TRIGGER_INFO=%s\n' % base64.b64encode(json.dumps(data)))
+    for key in data.keys():
+        print "%s='%s'" %(key, data[key])
+    print "====LOG:TRIGGER_NEXT:========================================end=="
+def trigger_info(TRIGGER_INFO):
+    print "====LOG:TRIGGER_INFO:========================================"
+    content_dict = json.loads(base64.b64decode(TRIGGER_INFO))
+    print json.dumps(content_dict, indent = 4)
+    print "====LOG:TRIGGER_INFO:========================================end=="
+    return content_dict
diff --git a/common/triggerbuild.py b/common/triggerbuild.py
deleted file mode 100644 (file)
index 08b5c68..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-import base64
-try:
-    import json
-except ImportError:
-    import simplejson as json
-
-def write_to(filename, data):
-    with open(filename, 'w') as fh:
-        for key in data.keys():
-            fh.write('CONTENT=%s\n' % base64.b64encode(json.dumps(data)))
-    print 'write to %s to trigger downstream job' % filename
-
-def read_from(content):
-    content_dict = json.loads(base64.b64decode(content))
-    print json.dumps(content_dict, indent = 4)
-    return content_dict
index 0d077a6..d6d618b 100755 (executable)
@@ -5,7 +5,7 @@ try:
 except ImportError:
     import simplejson as json
 
-from common.triggerbuild import write_to
+from common.buildtrigger import trigger_next
 from common.envparas import export
 
 PARAM_LIST = ['AMQP_HOST',
@@ -30,13 +30,13 @@ def main():
         if event_dict['fields'].has_key('obsEvent'):
             event_type = event_dict['fields']['obsEvent']['type']
             if 'OBS_SRCSRV_REQUEST' in event_type:
-                write_to('%s.env' % requests_job, event_dict['fields']['obsEvent'])
+                trigger_next(requests_job, event_dict['fields']['obsEvent'])
             elif 'OBS_REPO_PUBLISHED' in event_type:
                 event_prj = event_dict['fields']['obsEvent']['project']
                 if 'buildcheck' in event_prj:
-                    write_to('%s.env' % buildcheck_job, event_dict['fields']['obsEvent'])
+                    trigger_next(buildcheck_job, event_dict['fields']['obsEvent'])
                 else:
-                    write_to('%s.env' % repomaker_job, event_dict['fields']['obsEvent'])
+                    trigger_next(repomaker_job, event_dict['fields']['obsEvent'])
             #elif 'OBS_BUILD' in event_type:
             #    event_prj = event_dict['fields']['obsEvent']['project']
             #    if 'buildcheck' in event_prj:
index a1ee476..231ea9d 100755 (executable)
@@ -3,6 +3,7 @@ from common.envparas import export
 from common import git
 from common import buildservice
 from common.gerrit import Gerrit
+from common.buildtrigger import trigger_info, trigger_next
 from common.send_mail import prepare_mail
 from requests.mailer import mailer
 
@@ -12,7 +13,7 @@ import os
 import datetime
 import codecs
 
-envparas = ['OBS_EVENT_STRING',
+envparas = ['TRIGGER_INFO',
             'OBS_OSCRC_PATH',
             'OBS_API_URL',
             'SR_ENABLE_USER',
@@ -214,11 +215,10 @@ def notify_submiter(event_fields, data):
     if status:
         prepare_mail("%s.env" %(BUILD_TAG), status['subject'], status['body'], NOREPLY_EMAIL_SENDER, status['To'], status['Cc'])
 
-event = json.loads(' '.join(OBS_EVENT_STRING.split()))
-event_fields = event['fields']['obsEvent']
+event_fields = trigger_info(TRIGGER_INFO)
 
 if not event_fields:
-    print 'Invalid OBS event: %s' %(OBS_EVENT_STRING)
+    print 'Invalid OBS event'
     sys.exit(-1)
 
 data = OBS_Git_data(event_fields)
@@ -232,7 +232,12 @@ gitprj = git.Git('%s/%s' %(GIT_CACHE_DIR, data['git_project']))
 if event_fields['type'] == 'OBS_SRCSRV_REQUEST_STATECHANGE':
     if event_fields['state'] == 'declined':
         request_rejected(data, gerrit, gitprj)
+    trigger_next('reviewrepo_cleanup', data)
+
 elif event_fields['type'] == 'OBS_SRCSRV_REQUEST_CREATE':
     request_created(data, gerrit, gitprj)
+    trigger_next('pre_release_image', data)
+
 elif event_fields['type'] == 'OBS_SRCSRV_REQUEST_ACCEPTED':
     request_accepted(data, gerrit, gitprj)
+    trigger_next('reviewrepo_cleanup', data)