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 2012/02/04 06:29:00 UTC

svn commit: r1240455 - in /libcloud/trunk: CHANGES libcloud/common/base.py

Author: tomaz
Date: Sat Feb  4 05:29:00 2012
New Revision: 1240455

URL: http://svn.apache.org/viewvc?rev=1240455&view=rev
Log:
Fix debug mode so it works with Python 3.

Modified:
    libcloud/trunk/CHANGES
    libcloud/trunk/libcloud/common/base.py

Modified: libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1240455&r1=1240454&r2=1240455&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Sat Feb  4 05:29:00 2012
@@ -13,6 +13,9 @@ Changes with Apache Libcloud in developm
        "Accept-Encoding" "gzip,deflate" header with all the requests.
        [Tomaz Muraus]
 
+     - Fix debug module (LIBCLOUD_DEBUG env variable) so it works with Python 3
+       [Tomaz Muraus]
+
   *) Compute:
 
      - Added support for retrieving OpenNebula v3.2 instance types, OpenNebula

Modified: libcloud/trunk/libcloud/common/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/common/base.py?rev=1240455&r1=1240454&r2=1240455&view=diff
==============================================================================
--- libcloud/trunk/libcloud/common/base.py (original)
+++ libcloud/trunk/libcloud/common/base.py Sat Feb  4 05:29:00 2012
@@ -33,6 +33,7 @@ from libcloud.utils.py3 import httplib
 from libcloud.utils.py3 import urlparse
 from libcloud.utils.py3 import urlencode
 from libcloud.utils.py3 import StringIO
+from libcloud.utils.py3 import u
 from libcloud.utils.py3 import b
 
 from libcloud.utils.misc import lowercase_keys
@@ -240,8 +241,14 @@ class LoggingConnection():
             def __init__(self, s):
                 self.s = s
 
-            def makefile(self, mode, foo):
-                return StringIO(self.s)
+            def makefile(self, *args, **kwargs):
+                if PY3:
+                    from io import BytesIO
+                    cls = BytesIO
+                else:
+                    cls = StringIO
+
+                return cls(b(self.s))
         rr = r
         original_data = body
         headers = lowercase_keys(dict(r.getheaders()))
@@ -253,13 +260,14 @@ class LoggingConnection():
         elif encoding in ['gzip', 'x-gzip']:
             body = decompress_data('gzip', body)
 
+
         if r.chunked:
             ht += "%x\r\n" % (len(body))
-            ht += body
+            ht += u(body)
             ht += "\r\n0\r\n"
         else:
-            ht += body
-        rr = httplib.HTTPResponse(fakesock(ht),
+            ht += u(body)
+        rr = httplib.HTTPResponse(sock=fakesock(ht),
                                   method=r._method,
                                   debuglevel=r.debuglevel)
         rr.begin()