]> git-server-git.apps.pok.os.sepia.ceph.com Git - radosgw-agent.git/commitdiff
add an query encoding loop for make_request
authorAlfredo Deza <alfredo.deza@inktank.com>
Wed, 17 Dec 2014 22:11:22 +0000 (17:11 -0500)
committerJosh Durgin <jdurgin@redhat.com>
Thu, 18 Dec 2014 17:05:12 +0000 (09:05 -0800)
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
radosgw_agent/request.py

index 6c38a6694df94112af7809fbfa46215a4856fd6c..27d10ace4d7fbd324923509be8f51b6b6b9232df 100644 (file)
@@ -1,6 +1,7 @@
 import boto
 import logging
 from boto.connection import AWSAuthConnection
+from urllib import urlencode
 
 log = logging.getLogger(__name__)
 
@@ -62,6 +63,20 @@ def make_request(conn, method, basepath='', resource='', headers=None,
         params=params,
     )
 
+    if params:
+        # we basically need to do this ourselves now. BOTO doesn't do it for us
+        # in make_request
+        result = []
+        for k, vs in params.items():
+            if isinstance(vs, basestring) or not hasattr(vs, '__iter__'):
+                vs = [vs]
+            for v in vs:
+                if v is not None:
+                    result.append(
+                        (k.encode('utf-8') if isinstance(k, str) else k,
+                         v.encode('utf-8') if isinstance(v, str) else v))
+        md.path = '%s?%s' % (md.path, urlencode(result, doseq=True))
+
     return AWSAuthConnection.make_request(
         md.conn, md.method, md.path,
         headers=md.headers,