diff --git a/lib/ansible/modules/extras/notification/sendgrid.py b/lib/ansible/modules/extras/notification/sendgrid.py index e1ae7b7749f..2655b4248bb 100644 --- a/lib/ansible/modules/extras/notification/sendgrid.py +++ b/lib/ansible/modules/extras/notification/sendgrid.py @@ -85,9 +85,6 @@ EXAMPLES = ''' # sendgrid module support methods # import urllib -import urllib2 - -import base64 def post_sendgrid_api(module, username, password, from_address, to_addresses, subject, body): @@ -102,11 +99,11 @@ def post_sendgrid_api(module, username, password, from_address, to_addresses, recipient = recipient.encode('utf-8') to_addresses_api += '&to[]=%s' % recipient encoded_data += to_addresses_api - request = urllib2.Request(SENDGRID_URI) - request.add_header('User-Agent', AGENT) - request.add_header('Content-type', 'application/x-www-form-urlencoded') - request.add_header('Accept', 'application/json') - return urllib2.urlopen(request, encoded_data) + + headers = { 'User-Agent': AGENT, + 'Content-type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json'} + return fetch_url(module, SENDGRID_URI, data=encoded_data, headers=headers, method='POST') # ======================================= @@ -133,14 +130,16 @@ def main(): subject = module.params['subject'] body = module.params['body'] - try: - response = post_sendgrid_api(module, username, password, - from_address, to_addresses, subject, body) - except Exception: - module.fail_json(msg="unable to send email through SendGrid API") + response, info = post_sendgrid_api(module, username, password, + from_address, to_addresses, subject, body) + if info['status'] != 200: + module.fail_json(msg="unable to send email through SendGrid API: %s" % info['msg']) + module.exit_json(msg=subject, changed=False) # import module snippets from ansible.module_utils.basic import * -main() +from ansible.module_utils.urls import * +if __name__ == '__main__': + main()