You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2017/09/19 19:01:00 UTC
[5/7] libcloud git commit: Move functionality for normalizing header
values to a utility method.
Move functionality for normalizing header values to a utility method.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/1c33d584
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/1c33d584
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/1c33d584
Branch: refs/heads/trunk
Commit: 1c33d584f622c2f97560461f8bad304f83c3e346
Parents: cf88425
Author: Tomaz Muraus <to...@tomaz.me>
Authored: Tue Sep 19 17:39:01 2017 +0200
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Tue Sep 19 21:00:18 2017 +0200
----------------------------------------------------------------------
libcloud/http.py | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c33d584/libcloud/http.py
----------------------------------------------------------------------
diff --git a/libcloud/http.py b/libcloud/http.py
index 8f41124..567a2a2 100644
--- a/libcloud/http.py
+++ b/libcloud/http.py
@@ -201,10 +201,8 @@ class LibcloudConnection(LibcloudBaseConnection):
def request(self, method, url, body=None, headers=None, raw=False,
stream=False):
url = urlparse.urljoin(self.host, url)
- # all headers should be strings
- for header, value in headers.items():
- if isinstance(headers[header], int):
- headers[header] = str(value)
+ headers = self._normalize_headers(headers=headers)
+
self.response = self.session.request(
method=method.lower(),
url=url,
@@ -217,10 +215,8 @@ class LibcloudConnection(LibcloudBaseConnection):
def prepared_request(self, method, url, body=None,
headers=None, raw=False, stream=False):
- # all headers should be strings
- for header, value in headers.items():
- if isinstance(headers[header], int):
- headers[header] = str(value)
+ headers = self._normalize_headers(headers=headers)
+
req = requests.Request(method, ''.join([self.host, url]),
data=body, headers=headers)
@@ -262,6 +258,16 @@ class LibcloudConnection(LibcloudBaseConnection):
# return connection back to pool
self.response.close()
+ def _normalize_headers(self, headers):
+ headers = headers or {}
+
+ # all headers should be strings
+ for key, value in headers.items():
+ if isinstance(value, (int, float)):
+ headers[key] = str(value)
+
+ return headers
+
class HttpLibResponseProxy(object):
"""