Fixed KeyError crash in mailer.py
authorEd Bartosh <eduard.bartosh@intel.com>
Fri, 4 Oct 2013 09:38:01 +0000 (12:38 +0300)
committerGerrit Code Review <gerrit2@otctools.jf.intel.com>
Wed, 9 Oct 2013 06:23:47 +0000 (23:23 -0700)
Looks like event, which comes from obs plugin doesn't have
'origintype' field.

====Notify the tag owner====================================
Traceback (most recent call last):
  File "/srv/jenkins/jenkins-scripts/job_request.py", line 315, in <module>
    sys.exit(main())
  File "/srv/jenkins/jenkins-scripts/job_request.py", line 282, in main
    notify_submiter(event_fields, data)
  File "/srv/jenkins/jenkins-scripts/job_request.py", line 261, in notify_submiter
    os.getenv('EMAIL_TEMPLATES_DIR'))
  File "/srv/jenkins/jenkins-scripts/requests/mailer.py", line 238, in mailer
    if not tri['cond'] or tri['cond'](_bs, request):
  File "/srv/jenkins/jenkins-scripts/requests/mailer.py", line 58, in <lambda>
    'cond':  lambda bs, req: req['origintype'] == 'change_devel',
KeyError: 'origintype'

Change-Id: I28f3866c3b37b7782576c9e613c8904050053526

requests/mailer.py

index fbce72e..9140ef4 100644 (file)
@@ -55,7 +55,7 @@ MAIL_TRIGGERS = {
              },
              {
                 'temp':  'obs_request_changedevel',
-                'cond':  lambda bs, req: req['origintype'] == 'change_devel',
+                'cond':  lambda bs, req: req.get('origintype') == 'change_devel',
                 'sub':   '${reqid}: Change devel of ${targetproject}/${targetpackage} to ${sourceproject}/${sourcepackage}',
                 'to':    ['mailinglist'],
                 'cc':    [],
@@ -91,7 +91,7 @@ MAIL_TRIGGERS = {
             (
              {
                 'temp':  'obs_request_changedevel_accept',
-                'cond':  lambda bs, req: req['state'] == 'accepted' and req['origintype'] == 'change_devel',
+                'cond':  lambda bs, req: req['state'] == 'accepted' and req.get('origintype') == 'change_devel',
                 'sub':   '${reqid} accepted: ${sourceproject}/${sourcepackage} is devel of ${targetproject}/${targetpackage}',
                 'to':    ['mailinglist'],
                 'cc':    [],
@@ -126,7 +126,7 @@ MAIL_TRIGGERS = {
                 'tgtprj': 'deleteproject',
              },
              {
-                'cond':  lambda bs, req: req['state'] == 'declined' and req['origintype'] == 'change_devel',
+                'cond':  lambda bs, req: req['state'] == 'declined' and req.get('origintype') == 'change_devel',
                 'temp':  'obs_request_changedevel_decline',
                 'sub':   '${reqid} declined: ${sourceproject}/${sourcepackage} as devel of ${targetproject}/${targetpackage}',
                 'to':    ['GIT_AUTHOR_EMAIL'],
@@ -170,7 +170,7 @@ MAIL_TRIGGERS = {
                 'tgtprj': 'deleteproject',
              },
              {
-                'cond':  lambda bs, req: req['state'] == 'revoked' and req['origintype'] == 'change_devel',
+                'cond':  lambda bs, req: req['state'] == 'revoked' and req.req('origintype') == 'change_devel',
                 'temp':  'obs_request_changedevel_revoke',
                 'sub':   '${reqid} revoked: Change devel of ${targetproject}/${targetpackage}',
                 'to':    ['GIT_AUTHOR_EMAIL'],