Skip to content

Commit

Permalink
Merge pull request #276 from cbergmiller/http_proxy_support
Browse files Browse the repository at this point in the history
Http proxy support
  • Loading branch information
corps committed Aug 22, 2018
2 parents 18b40e6 + 73e9b78 commit 10fc074
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 7 deletions.
21 changes: 16 additions & 5 deletions rollbar/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,9 @@ def _get_pylons_request():
'capture_username': False,
'capture_ip': True,
'log_all_rate_limited_items': True,
'http_proxy': None,
'http_proxy_user': None,
'http_proxy_password': None,
}

_CURRENT_LAMBDA_CONTEXT = None
Expand Down Expand Up @@ -1370,10 +1373,13 @@ def _post_api(path, payload_str, access_token=None):

url = urljoin(SETTINGS['endpoint'], path)
resp = transport.post(url,
data=payload_str,
headers=headers,
timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT),
verify=SETTINGS.get('verify_https', True))
data=payload_str,
headers=headers,
timeout=SETTINGS.get('timeout', DEFAULT_TIMEOUT),
verify=SETTINGS.get('verify_https', True),
proxy=SETTINGS.get('http_proxy'),
proxy_user=SETTINGS.get('http_proxy_user'),
proxy_password=SETTINGS.get('http_proxy_password'))

return _parse_response(path, SETTINGS['access_token'], payload_str, resp)

Expand All @@ -1382,7 +1388,12 @@ def _get_api(path, access_token=None, endpoint=None, **params):
access_token = access_token or SETTINGS['access_token']
url = urljoin(endpoint or SETTINGS['endpoint'], path)
params['access_token'] = access_token
resp = transport.get(url, params=params, verify=SETTINGS.get('verify_https', True))
resp = transport.get(url,
params=params,
verify=SETTINGS.get('verify_https', True),
proxy=SETTINGS.get('http_proxy'),
proxy_user=SETTINGS.get('http_proxy_user'),
proxy_password=SETTINGS.get('http_proxy_password'))
return _parse_response(path, access_token, params, resp, endpoint=endpoint)


Expand Down
22 changes: 20 additions & 2 deletions rollbar/lib/transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,30 @@ def _session():
return _local.session


def _get_proxy_cfg(kw):
proxy = kw.pop('proxy', None)
proxy_user = kw.pop('proxy_user', None)
proxy_password = kw.pop('proxy_password', None)
if proxy and proxy_user and proxy_password:
return {
'http': 'http://{}:{}@{}'.format(proxy_user, proxy_password, proxy),
'https': 'http://{}:{}@{}'.format(proxy_user, proxy_password, proxy),
}
elif proxy:
return {
'http': 'http://{}'.format(proxy),
'https': 'http://{}'.format(proxy),
}


def post(*args, **kw):
return _session().post(*args, **kw)
proxies = _get_proxy_cfg(kw)
return _session().post(*args, proxies=proxies, **kw)


def get(*args, **kw):
return _session().get(*args, **kw)
proxies = _get_proxy_cfg(kw)
return _session().get(*args, proxies=proxies, **kw)


__all__ = ['post', 'get']

0 comments on commit 10fc074

Please sign in to comment.