From: Alfredo Deza Date: Wed, 17 Dec 2014 22:11:22 +0000 (-0500) Subject: add an query encoding loop for make_request X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=49d047fdc6f96c5e006f20cb2f0351835cda83b4;p=radosgw-agent.git add an query encoding loop for make_request Signed-off-by: Alfredo Deza --- diff --git a/radosgw_agent/request.py b/radosgw_agent/request.py index 6c38a66..27d10ac 100644 --- a/radosgw_agent/request.py +++ b/radosgw_agent/request.py @@ -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,