Skip to content

Commit 1a88944

Browse files
committed
fix terrible params bug in get
also add config sanitization add more debugging
1 parent c765114 commit 1a88944

2 files changed

Lines changed: 24 additions & 10 deletions

File tree

cloudflare_v4/__init__.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import json
66
import requests
77
import urllib
8+
from . import utils
89

910
BASE_URL = 'https://api.cloudflare.com/client/v4'
1011

@@ -34,17 +35,18 @@ def call(self, method, main_endpoint, endpoint=None, params=None, data=None):
3435
if (method is None) or (main_endpoint is None):
3536
raise CloudFlareInternalError('You must specify a method and endpoint') # should never happen
3637
else:
37-
self.logger.debug("headers being sent: %s" % str(headers))
38+
self.logger.debug("headers being sent: %s" %
39+
str(utils.sanitize_secrets(headers)))
3840
if method == 'GET':
39-
if data:
40-
params_to_send = data
41-
else:
42-
params_to_send = params
43-
if params_to_send.has_key('content'):
44-
params_to_send['content'] = urllib.quote(params_to_send['content'])
45-
self.logger.debug("params being sent: %s", params_to_send)
46-
response = requests.get(url, headers=headers,
47-
params=params_to_send)
41+
try:
42+
if params.keys():
43+
response = requests.get(url, headers=headers,
44+
params=params)
45+
except AttributeError as ae:
46+
if data:
47+
response = requests.get(url, headers=headers, params=data)
48+
else:
49+
response = requests.get(url, headers=headers)
4850
elif method == 'POST':
4951
response = requests.post(url, headers=headers, json=data)
5052
elif method == 'PUT':
@@ -58,6 +60,8 @@ def call(self, method, main_endpoint, endpoint=None, params=None, data=None):
5860
pass
5961
else:
6062
raise CloudFlareAPIError('method not supported') # should never happen
63+
self.logger.debug("request url: %s", response.url)
64+
6165
data = response.text
6266
self.logger.debug("data received: %s" % data)
6367
try:

cloudflare_v4/utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def sanitize_secrets(secrets):
2+
redacted_phrase = 'REDACTED'
3+
4+
secrets_copy = secrets.copy()
5+
if 'password' in secrets_copy:
6+
secrets_copy['password'] = redacted_phrase
7+
elif 'X-Auth-Key' in secrets_copy:
8+
secrets_copy['X-Auth-Key'] = redacted_phrase
9+
10+
return secrets_copy

0 commit comments

Comments
 (0)