summaryrefslogtreecommitdiff
path: root/src/buildstream/_cas/cascache.py
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2019-07-02 10:13:41 +0100
committerJürg Billeter <j@bitron.ch>2019-08-20 08:09:52 +0200
commit5c68894dda00b3f1760b4f9b0c6bd4658aeb7ccb (patch)
tree08583f79c422497dd60793c3c4cce85821dfc9c8 /src/buildstream/_cas/cascache.py
parenta426729a23d686d19b59d5e5a67342d0a2eb785c (diff)
downloadbuildstream-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.py26
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