diff options
author | Jürg Billeter <j@bitron.ch> | 2020-10-28 08:16:07 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-12-09 14:51:06 +0000 |
commit | 0b5155e908388f018060b3b721f22ecf8a9666b9 (patch) | |
tree | 0c5ed45112b0f503f8ac9e2cc53333de1b22ca42 /src/buildstream/_cas | |
parent | b480a2a5064330133cdd2ec7e14961d63a40c113 (diff) | |
download | buildstream-0b5155e908388f018060b3b721f22ecf8a9666b9.tar.gz |
cascache.py: Also fetch file blobs in _fetch_directory()
This eliminates code duplication in `ArtifactCache`, `SourceCache` and
`ElementSourcesCache`.
Diffstat (limited to 'src/buildstream/_cas')
-rw-r--r-- | src/buildstream/_cas/cascache.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/buildstream/_cas/cascache.py b/src/buildstream/_cas/cascache.py index 42e2244c5..d41d6ad71 100644 --- a/src/buildstream/_cas/cascache.py +++ b/src/buildstream/_cas/cascache.py @@ -509,8 +509,7 @@ class CASCache: # # Fetches remote directory and adds it to content addressable store. # - # This recursively fetches directory objects but doesn't fetch any - # files. + # This recursively fetches directory objects and files. # # Args: # remote (Remote): The remote to use. @@ -536,6 +535,9 @@ class CASCache: "Failed to fetch directory tree {}: {}: {}".format(dir_digest.hash, e.code().name, e.details()) ) from e + required_blobs = self.required_blobs_for_directory(dir_digest) + self.fetch_blobs(remote, required_blobs) + def _fetch_tree(self, remote, digest): objpath = self._ensure_blob(remote, digest) |