requester: remove double URL encoding, use urllib.quote instead of quote_plus

Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/bbe01aae
Tree: 
http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/bbe01aae
Diff: 
http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/bbe01aae

Branch: refs/heads/master
Commit: bbe01aae2adf438272d865d28dfc122c1b5dc914
Parents: 2660143
Author: Rohit Yadav <rohit.ya...@shapeblue.com>
Authored: Fri Oct 31 01:26:20 2014 +0530
Committer: Rohit Yadav <rohit.ya...@shapeblue.com>
Committed: Fri Oct 31 01:26:20 2014 +0530

----------------------------------------------------------------------
 cloudmonkey/cloudmonkey.py |  4 ----
 cloudmonkey/requester.py   | 10 +++++-----
 2 files changed, 5 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/bbe01aae/cloudmonkey/cloudmonkey.py
----------------------------------------------------------------------
diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py
index 45e67c9..9950d0d 100644
--- a/cloudmonkey/cloudmonkey.py
+++ b/cloudmonkey/cloudmonkey.py
@@ -30,7 +30,6 @@ try:
     import sys
     import time
     import types
-    import urllib
 
     from cachemaker import loadcache, savecache, monkeycache, splitverbsubject
     from config import __version__, __description__, __projecturl__
@@ -370,9 +369,6 @@ class CloudMonkeyShell(cmd.Cmd, object):
         if 'asyncapis' in self.apicache:
             isasync = apiname in self.apicache['asyncapis']
 
-        for key in args_dict.keys():
-            args_dict[key] = urllib.quote(args_dict[key])
-
         result = self.make_request(apiname, args_dict, isasync)
 
         if not result:

http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/bbe01aae/cloudmonkey/requester.py
----------------------------------------------------------------------
diff --git a/cloudmonkey/requester.py b/cloudmonkey/requester.py
index 08876c9..c935488 100644
--- a/cloudmonkey/requester.py
+++ b/cloudmonkey/requester.py
@@ -178,14 +178,14 @@ def make_request(command, args, logger, url,
     request = zip(args.keys(), args.values())
     request.sort(key=lambda x: x[0].lower())
 
-    request_url = "&".join(["=".join([r[0], urllib.quote_plus(str(r[1]))])
+    request_url = "&".join(["=".join([r[0], urllib.quote(unicode(r[1]))])
                            for r in request])
     hashStr = "&".join(["=".join([r[0].lower(),
-                       str.lower(urllib.quote_plus(str(r[1]))).replace("+",
-                       "%20")]) for r in request])
+                                  urllib.quote(unicode(r[1])).lower()])
+                                  for r in request])
 
-    sig = urllib.quote_plus(base64.encodestring(hmac.new(secretkey, hashStr,
-                            hashlib.sha1).digest()).strip())
+    sig = urllib.quote(base64.encodestring(hmac.new(secretkey, hashStr,
+                       hashlib.sha1).digest()).strip())
     request_url += "&signature=%s" % sig
     request_url = "%s?%s" % (url, request_url)
 

Reply via email to