diff options
Diffstat (limited to 'src/buildstream/_elementsourcescache.py')
-rw-r--r-- | src/buildstream/_elementsourcescache.py | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/buildstream/_elementsourcescache.py b/src/buildstream/_elementsourcescache.py index 84e7633e5..194f3fd4a 100644 --- a/src/buildstream/_elementsourcescache.py +++ b/src/buildstream/_elementsourcescache.py @@ -295,18 +295,11 @@ class ElementSourcesCache(AssetCache): # blobs not existing on the server. # def _pull_source_storage(self, key, source_digest, remote): - def __pull_digest(digest): - self.cas._fetch_directory(remote, digest) - required_blobs = self.cas.required_blobs_for_directory(digest) - missing_blobs = self.cas.local_missing_blobs(required_blobs) - if missing_blobs: - self.cas.fetch_blobs(remote, missing_blobs) - try: # Fetch and parse source proto self.cas.fetch_blobs(remote, [source_digest]) source = source_pb2.Source() - with open(self.cas.objpath(source_digest), "rb") as f: + with self.cas.open(source_digest, "rb") as f: source.ParseFromString(f.read()) # Write the source proto to cache @@ -314,7 +307,7 @@ class ElementSourcesCache(AssetCache): with utils.save_file_atomic(source_path, mode="wb") as f: f.write(source.SerializeToString()) - __pull_digest(source.files) + self.cas._fetch_directory(remote, source.files) except grpc.RpcError as e: if e.code() != grpc.StatusCode.NOT_FOUND: raise SourceCacheError("Failed to pull source with status {}: {}".format(e.code().name, e.details())) |