summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-04-15 09:39:19 +0200
committerJürg Billeter <j@bitron.ch>2020-04-20 14:27:16 +0200
commited2e2028830714702f1c6c3559b51b2601655806 (patch)
tree328436a06eb17b801de7d71682607a23bfde1eba
parent3ed42009e85d1e340d1d77933f2c142d7f7e7588 (diff)
downloadbuildstream-ed2e2028830714702f1c6c3559b51b2601655806.tar.gz
_cas/cascache.py: Add contains_files() method
Like `contains_file()` but checks multiple files in a single request.
-rw-r--r--src/buildstream/_cas/cascache.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/buildstream/_cas/cascache.py b/src/buildstream/_cas/cascache.py
index 61a1a8f50..9fbae67a4 100644
--- a/src/buildstream/_cas/cascache.py
+++ b/src/buildstream/_cas/cascache.py
@@ -165,24 +165,36 @@ class CASCache:
self._casd_process_manager.release_resources(messenger)
self._casd_process_manager = None
- # contains_file():
+ # contains_files():
#
- # Check whether a digest corresponds to a file which exists in CAS
+ # Check whether file digests exist in the local CAS cache
#
# Args:
# digest (Digest): The file digest to check
#
- # Returns: True if the file is in the cache, False otherwise
+ # Returns: True if the files are in the cache, False otherwise
#
- def contains_file(self, digest):
+ def contains_files(self, digests):
cas = self.get_cas()
request = remote_execution_pb2.FindMissingBlobsRequest()
- request.blob_digests.append(digest)
+ request.blob_digests.extend(digests)
response = cas.FindMissingBlobs(request)
return len(response.missing_blob_digests) == 0
+ # contains_file():
+ #
+ # Check whether a digest corresponds to a file which exists in CAS
+ #
+ # Args:
+ # digest (List[Digest]): The file digests to check
+ #
+ # Returns: True if the file is in the cache, False otherwise
+ #
+ def contains_file(self, digest):
+ return self.contains_files([digest])
+
# contains_directory():
#
# Check whether the specified directory and subdirectories are in the cache,