|
2 | 2 |
|
3 | 3 | import json |
4 | 4 | import logging |
5 | | -import urllib2 |
| 5 | +import sys |
| 6 | +if sys.version_info.major == 3: |
| 7 | + from urllib.request import urlopen, Request, HTTPError, URLError |
| 8 | + from urllib.parse import urlencode |
| 9 | +else: |
| 10 | + from urllib2 import urlopen, Request, HTTPError, URLError |
6 | 11 |
|
7 | 12 | logger = logging.getLogger() |
8 | 13 | logger.setLevel(logging.INFO) |
@@ -52,20 +57,24 @@ def wrapper_func(event, context): |
52 | 57 | logger.info("Responding to '%s' request with: %s" % ( |
53 | 58 | event['RequestType'], serialized)) |
54 | 59 |
|
55 | | - req = urllib2.Request( |
56 | | - event['ResponseURL'], data=serialized, |
57 | | - headers={'Content-Length': len(serialized), |
| 60 | + if sys.version_info.major ==3: |
| 61 | + req_data = serialized.encode('utf-8') |
| 62 | + else: |
| 63 | + req_data=serialized |
| 64 | + req = Request( |
| 65 | + event['ResponseURL'], data=req_data, |
| 66 | + headers={'Content-Length': len(req_data), |
58 | 67 | 'Content-Type': ''} |
59 | 68 | ) |
60 | 69 | req.get_method = lambda: 'PUT' |
61 | 70 |
|
62 | 71 | try: |
63 | | - urllib2.urlopen(req) |
| 72 | + urlopen(req) |
64 | 73 | logger.debug("Request to CFN API succeeded, nothing to do here") |
65 | | - except urllib2.HTTPError as e: |
| 74 | + except HTTPError as e: |
66 | 75 | logger.error("Callback to CFN API failed with status %d" % e.code) |
67 | 76 | logger.error("Response: %s" % e.reason) |
68 | | - except urllib2.URLError as e: |
| 77 | + except URLError as e: |
69 | 78 | logger.error("Failed to reach the server - %s" % e.reason) |
70 | 79 |
|
71 | 80 | return wrapper_func |
|
0 commit comments