summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-03-27 16:54:57 +0100
committerJürg Billeter <j@bitron.ch>2020-04-19 07:07:32 +0200
commit32bdd80bfd54400ab39140ffa90d945399fdc52f (patch)
tree35dfb3f4cdab1432fe62de13c6cba02b24fe5fd4
parente3f127f37317eda84d324fdd31a57c9ca612e9fb (diff)
downloadbuildstream-32bdd80bfd54400ab39140ffa90d945399fdc52f.tar.gz
_artifactcache.py: Handle BlobNotFound error in pull()
-rw-r--r--src/buildstream/_artifactcache.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/buildstream/_artifactcache.py b/src/buildstream/_artifactcache.py
index 4290e92cb..9b800acaa 100644
--- a/src/buildstream/_artifactcache.py
+++ b/src/buildstream/_artifactcache.py
@@ -22,6 +22,7 @@ import os
import grpc
from ._basecache import BaseCache
+from ._cas.casremote import BlobNotFound
from ._exceptions import ArtifactError, CASError, CacheError, CASRemoteError, RemoteError
from ._protos.buildstream.v2 import buildstream_pb2, buildstream_pb2_grpc, artifact_pb2, artifact_pb2_grpc
@@ -310,6 +311,10 @@ class ArtifactCache(BaseCache):
return True
element.info("Remote ({}) does not have artifact {} cached".format(remote, display_key))
+ except BlobNotFound as e:
+ # Not all blobs are available on this remote
+ element.info("Remote cas ({}) does not have blob {} cached".format(remote, e.blob))
+ continue
except CASError as e:
element.warn("Could not pull from remote {}: {}".format(remote, e))
errors.append(e)