diff options
author | Jürg Billeter <j@bitron.ch> | 2019-03-12 14:18:09 +0000 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-03-25 10:24:41 +0100 |
commit | 64886a5978bc4ba6f3b63e1a01bfcb1bf6d9ffb1 (patch) | |
tree | e85f3e28e8d58ae171b472301978f6e33107acb2 | |
parent | c568ade8449008fe7254d10d4bb239a59ace6fcb (diff) | |
download | buildstream-64886a5978bc4ba6f3b63e1a01bfcb1bf6d9ffb1.tar.gz |
_casbaseddirectory.py: Catch FileNotFoundError in _populate_index()
This is in preparation for partial CAS support.
-rw-r--r-- | buildstream/storage/_casbaseddirectory.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/buildstream/storage/_casbaseddirectory.py b/buildstream/storage/_casbaseddirectory.py index 8369bd0cc..0fea1924f 100644 --- a/buildstream/storage/_casbaseddirectory.py +++ b/buildstream/storage/_casbaseddirectory.py @@ -124,9 +124,12 @@ class CasBasedDirectory(Directory): self._populate_index(digest) def _populate_index(self, digest): - pb2_directory = remote_execution_pb2.Directory() - with open(self.cas_cache.objpath(digest), 'rb') as f: - pb2_directory.ParseFromString(f.read()) + try: + pb2_directory = remote_execution_pb2.Directory() + with open(self.cas_cache.objpath(digest), 'rb') as f: + pb2_directory.ParseFromString(f.read()) + except FileNotFoundError as e: + raise VirtualDirectoryError("Directory not found in local cache: {}".format(e)) from e for entry in pb2_directory.directories: self.index[entry.name] = IndexEntry(entry.name, _FileType.DIRECTORY, |