From 294845ccbf7ed29c7845620df3af36e1b000829e Mon Sep 17 00:00:00 2001 From: Lingchaox Xin Date: Mon, 17 Jun 2013 14:44:33 +0800 Subject: [PATCH] Pylint for job_obsevent_dispatcher.py Use pylint disable-msg=E1101 since sys.setdefaultencoding is special and gets removed from the namespace. In dict, `in` is not just pythonic but also in performance than `has_key`, e.g.: $ python -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d' 10000000 loops, best of 3: 0.0492 usec per loop $ python -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)' 10000000 loops, best of 3: 0.0937 usec per loop In addition, has_key() is deprecated in favor of key in d: http://docs.python.org/2/library/stdtypes.html#dict.has_key Change-Id: Ic8b087d99ff8557c0c7f6a786478c037be03f0cf Signed-off-by: Lingchaox Xin --- job_obsevent_dispatcher.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/job_obsevent_dispatcher.py b/job_obsevent_dispatcher.py index 27c09ad..0dd4a59 100755 --- a/job_obsevent_dispatcher.py +++ b/job_obsevent_dispatcher.py @@ -1,11 +1,15 @@ #!/usr/bin/env python +"""This job is used to dispatch obs events.""" + import os # set default char-set endcoding to utf-8 import sys reload(sys) +# pylint: disable-msg=E1101 sys.setdefaultencoding('utf-8') +# pylint: enable-msg=E1101 try: import json @@ -15,27 +19,26 @@ except ImportError: from common.buildtrigger import trigger_next def main(): + """The main body""" + event_dict = json.loads(os.getenv('OBS_EVENT_STRING')) buildcheck_job = os.getenv('BUILDCHECK_JOB_NAME') or 'buildcheck-post' requests_job = os.getenv('REQUESTS_JOB_NAME') or 'requests' repomaker_job = os.getenv('REPOMAKER_JOB_NAME') or 'repomaker' - if event_dict and event_dict.has_key('fields'): - if event_dict['fields'].has_key('obsEvent'): - event_type = event_dict['fields']['obsEvent']['type'] - if 'OBS_SRCSRV_REQUEST' in event_type: - trigger_next(requests_job, event_dict['fields']['obsEvent']) - elif 'OBS_REPO_PUBLISH' in event_type: - event_prj = event_dict['fields']['obsEvent']['project'] - if event_type == 'OBS_REPO_PUBLISHED': - trigger_next(repomaker_job, event_dict['fields']['obsEvent']) - elif event_type == 'OBS_REPO_PUBLISH_STATE': - if 'buildcheck' in event_prj: - trigger_next(buildcheck_job, event_dict['fields']['obsEvent']) - #elif 'OBS_BUILD' 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']) + if 'fields' in event_dict and 'obsEvent' in event_dict['fields']: + event_fields = event_dict['fields'] + event_type = event_fields['obsEvent']['type'] + + if 'OBS_SRCSRV_REQUEST' in event_type: + trigger_next(requests_job, event_fields['obsEvent']) + elif 'OBS_REPO_PUBLISH' in event_type: + event_prj = event_fields['obsEvent']['project'] + if event_type == 'OBS_REPO_PUBLISHED': + trigger_next(repomaker_job, event_fields['obsEvent']) + elif event_type == 'OBS_REPO_PUBLISH_STATE': + if 'buildcheck' in event_prj: + trigger_next(buildcheck_job, event_fields['obsEvent']) if __name__ == '__main__': main() -- 2.7.4