Fix a bug with encoding in Python 3 which was exposed by previous commit. In Python 3, binascii.hexlify returns bytes, but we want a str.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/ee54c26e Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/ee54c26e Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/ee54c26e Branch: refs/heads/0.13.x Commit: ee54c26e025ddd9ef5fc1c8661d8c1da641dc883 Parents: 506c0fc Author: Tomaz Muraus <[email protected]> Authored: Thu Aug 1 19:51:09 2013 +0200 Committer: Tomaz Muraus <[email protected]> Committed: Thu Aug 1 20:29:36 2013 +0200 ---------------------------------------------------------------------- libcloud/common/openstack.py | 2 +- libcloud/compute/base.py | 3 ++- libcloud/compute/deployment.py | 4 +++- libcloud/compute/drivers/ecp.py | 2 +- libcloud/storage/drivers/azure_blobs.py | 10 ++++++---- 5 files changed, 13 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/ee54c26e/libcloud/common/openstack.py ---------------------------------------------------------------------- diff --git a/libcloud/common/openstack.py b/libcloud/common/openstack.py index ba1425a..622a275 100644 --- a/libcloud/common/openstack.py +++ b/libcloud/common/openstack.py @@ -605,7 +605,7 @@ class OpenStackBaseConnection(ConnectionUserAndKey): self._tuple_from_url(url) def _add_cache_busting_to_params(self, params): - cache_busting_number = binascii.hexlify(os.urandom(8)) + cache_busting_number = binascii.hexlify(os.urandom(8)).decode('ascii') if isinstance(params, dict): params['cache-busting'] = cache_busting_number http://git-wip-us.apache.org/repos/asf/libcloud/blob/ee54c26e/libcloud/compute/base.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/base.py b/libcloud/compute/base.py index 545ca00..0a84dd2 100644 --- a/libcloud/compute/base.py +++ b/libcloud/compute/base.py @@ -507,7 +507,8 @@ class NodeDriver(BaseDriver): if 'password' in self.features['create_node']: value = os.urandom(16) - return NodeAuthPassword(binascii.hexlify(value), generated=True) + value = binascii.hexlify(value).decode('ascii') + return NodeAuthPassword(value, generated=True) if auth: raise LibcloudError( http://git-wip-us.apache.org/repos/asf/libcloud/blob/ee54c26e/libcloud/compute/deployment.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/deployment.py b/libcloud/compute/deployment.py index 103315c..d0925b5 100644 --- a/libcloud/compute/deployment.py +++ b/libcloud/compute/deployment.py @@ -142,7 +142,9 @@ class ScriptDeployment(Deployment): if self.name is None: # File is put under user's home directory # (~/libcloud_deployment_<random_string>.sh) - self.name = 'libcloud_deployment_%s.sh' % (binascii.hexlify(os.urandom(4))) + random_string = binascii.hexlify(os.urandom(4)) + random_string = random_string.decode('ascii') + self.name = 'libcloud_deployment_%s.sh' % (random_string) def run(self, node, client): """ http://git-wip-us.apache.org/repos/asf/libcloud/blob/ee54c26e/libcloud/compute/drivers/ecp.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ecp.py b/libcloud/compute/drivers/ecp.py index dff49c0..aa77440 100644 --- a/libcloud/compute/drivers/ecp.py +++ b/libcloud/compute/drivers/ecp.py @@ -102,7 +102,7 @@ class ECPConnection(ConnectionUserAndKey): #use a random boundary that does not appear in the fields boundary = '' while boundary in ''.join(fields): - boundary = u(binascii.hexlify(os.urandom(16))) + boundary = binascii.hexlify(os.urandom(16)).decode('utf-8') L = [] for i in fields: L.append('--' + boundary) http://git-wip-us.apache.org/repos/asf/libcloud/blob/ee54c26e/libcloud/storage/drivers/azure_blobs.py ---------------------------------------------------------------------- diff --git a/libcloud/storage/drivers/azure_blobs.py b/libcloud/storage/drivers/azure_blobs.py index 5512d70..06e4511 100644 --- a/libcloud/storage/drivers/azure_blobs.py +++ b/libcloud/storage/drivers/azure_blobs.py @@ -295,8 +295,9 @@ class AzureBlobsStorageDriver(StorageDriver): } if extra['md5_hash']: - extra['md5_hash'] = binascii.hexlify( - base64.b64decode(b(extra['md5_hash']))) + value = binascii.hexlify(base64.b64decode(b(extra['md5_hash']))) + value = value.decode('ascii') + extra['md5_hash'] = value meta_data = {} for meta in metadata.getchildren(): @@ -344,8 +345,9 @@ class AzureBlobsStorageDriver(StorageDriver): } if extra['md5_hash']: - extra['md5_hash'] = binascii.hexlify( - base64.b64decode(b(extra['md5_hash']))) + value = binascii.hexlify(base64.b64decode(b(extra['md5_hash']))) + value = value.decode('ascii') + extra['md5_hash'] = value meta_data = {} for key, value in response.headers.items():
