diff options
author | Raoul Hidalgo Charman <raoul.hidalgocharman@codethink.co.uk> | 2018-11-29 15:45:33 +0000 |
---|---|---|
committer | Raoul Hidalgo Charman <raoul.hidalgocharman@codethink.co.uk> | 2018-12-05 15:32:22 +0000 |
commit | 9ef1a8a261061eb7d44ca2ae91cb84cd24f0c11e (patch) | |
tree | 63af2af209bdf8d9c249a3be70ebb13bd74af229 | |
parent | eb1ed4108b75ed919f471e448fa6088b1503a328 (diff) | |
download | buildstream-9ef1a8a261061eb7d44ca2ae91cb84cd24f0c11e.tar.gz |
utils.py: Add message digest function
Get cascache.py to use this
-rw-r--r-- | buildstream/_artifactcache/cascache.py | 5 | ||||
-rw-r--r-- | buildstream/utils.py | 17 |
2 files changed, 18 insertions, 4 deletions
diff --git a/buildstream/_artifactcache/cascache.py b/buildstream/_artifactcache/cascache.py index 2ae36d22a..9ca757d4d 100644 --- a/buildstream/_artifactcache/cascache.py +++ b/buildstream/_artifactcache/cascache.py @@ -427,10 +427,7 @@ class CASCache(): def push_message(self, remote, message): message_buffer = message.SerializeToString() - message_sha = hashlib.sha256(message_buffer) - message_digest = remote_execution_pb2.Digest() - message_digest.hash = message_sha.hexdigest() - message_digest.size_bytes = len(message_buffer) + message_digest = utils._message_digest(message_buffer) remote.init() diff --git a/buildstream/utils.py b/buildstream/utils.py index 94c990357..2fe9ab7dc 100644 --- a/buildstream/utils.py +++ b/buildstream/utils.py @@ -41,6 +41,7 @@ import psutil from . import _signals from ._exceptions import BstError, ErrorDomain +from ._protos.build.bazel.remote.execution.v2 import remote_execution_pb2 # The magic number for timestamps: 2011-11-11 11:11:11 _magic_timestamp = calendar.timegm([2011, 11, 11, 11, 11, 11]) @@ -1242,3 +1243,19 @@ def _deduplicate(iterable, key=None): def _get_link_mtime(path): path_stat = os.lstat(path) return path_stat.st_mtime + + +# _message_digest() +# +# Args: +# message_buffer (str): String to create digest of +# +# Returns: +# (remote_execution_pb2.Digest): Content digest +# +def _message_digest(message_buffer): + sha = hashlib.sha256(message_buffer) + digest = remote_execution_pb2.Digest() + digest.hash = sha.hexdigest() + digest.size_bytes = len(message_buffer) + return digest |