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):
     """