diff options
author | Jürg Billeter <j@bitron.ch> | 2019-07-02 10:13:41 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-08-20 08:09:52 +0200 |
commit | 5c68894dda00b3f1760b4f9b0c6bd4658aeb7ccb (patch) | |
tree | 08583f79c422497dd60793c3c4cce85821dfc9c8 /src/buildstream/_cas/cascache.py | |
parent | a426729a23d686d19b59d5e5a67342d0a2eb785c (diff) | |
download | buildstream-5c68894dda00b3f1760b4f9b0c6bd4658aeb7ccb.tar.gz |
casremote.py: Use FetchMissingBlobs in _fetch_blob()
Diffstat (limited to 'src/buildstream/_cas/cascache.py')
-rw-r--r-- | src/buildstream/_cas/cascache.py | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/buildstream/_cas/cascache.py b/src/buildstream/_cas/cascache.py index b8d651a0c..5ebf54601 100644 --- a/src/buildstream/_cas/cascache.py +++ b/src/buildstream/_cas/cascache.py @@ -820,11 +820,7 @@ class CASCache(): # already in local repository return objpath - with self._temporary_object() as f: - remote._fetch_blob(digest, f) - - added_digest = self.add_object(path=f.name, link_directly=True) - assert added_digest.hash == digest.hash + remote._fetch_blob(digest) return objpath @@ -915,20 +911,18 @@ class CASCache(): self._fetch_directory_batch(remote, batch, fetch_queue, fetch_next_queue) def _fetch_tree(self, remote, digest): - # download but do not store the Tree object - with utils._tempnamedfile(dir=self.tmpdir) as out: - remote._fetch_blob(digest, out) + objpath = self._ensure_blob(remote, digest) - tree = remote_execution_pb2.Tree() + tree = remote_execution_pb2.Tree() - with open(out.name, 'rb') as f: - tree.ParseFromString(f.read()) + with open(objpath, 'rb') as f: + tree.ParseFromString(f.read()) - tree.children.extend([tree.root]) - for directory in tree.children: - dirbuffer = directory.SerializeToString() - dirdigest = self.add_object(buffer=dirbuffer) - assert dirdigest.size_bytes == len(dirbuffer) + tree.children.extend([tree.root]) + for directory in tree.children: + dirbuffer = directory.SerializeToString() + dirdigest = self.add_object(buffer=dirbuffer) + assert dirdigest.size_bytes == len(dirbuffer) return dirdigest |