From 2067982c3d9654103ccebb0c2043c63047bb28f1 Mon Sep 17 00:00:00 2001 From: Adam Gandelman Date: Thu, 5 Feb 2015 13:41:32 +0000 Subject: [PATCH] Fix broken object hashing This fixes two issues around checksum accounting for objects. It properly calls the correct hexdigest() functions when calculating hashes locally. Also, it uses the correct swift headers that allow these to do be stored on in the object's metadata. Change-Id: I55ea5aff0a4712e7b9f13e912008c3c98576414a --- shade/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shade/__init__.py b/shade/__init__.py index fcb61e2a0..765e18bd2 100644 --- a/shade/__init__.py +++ b/shade/__init__.py @@ -36,8 +36,8 @@ import troveclient.client as trove_client from shade import meta __version__ = pbr.version.VersionInfo('shade').version_string() -OBJECT_MD5_KEY = 'x-shade-md5' -OBJECT_SHA256_KEY = 'x-shade-sha256' +OBJECT_MD5_KEY = 'x-object-meta-x-shade-md5' +OBJECT_SHA256_KEY = 'x-object-meta-x-shade-sha256' IMAGE_MD5_KEY = 'org.openstack.shade.md5' IMAGE_SHA256_KEY = 'org.openstack.shade.sha256' @@ -853,7 +853,7 @@ class OpenStackCloud(object): md5.update(chunk) sha256.update(chunk) self._file_hash_cache[filename] = dict( - md5=md5.digest(), sha256=sha256.digest) + md5=md5.hexdigest(), sha256=sha256.hexdigest()) return (self._file_hash_cache[filename]['md5'], self._file_hash_cache[filename]['sha256'])