Commit b15410cc authored by finnball's avatar finnball
Browse files

If blob not found, correctly handles exception.

parent 60c2aca9
Loading
Loading
Loading
Loading
+25 −12
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ Forwwards storage requests to a remote storage.
import io
import logging

import grpc

from buildgrid.utils import gen_fetch_blob, gen_write_request_blob
from buildgrid._protos.google.bytestream import bytestream_pb2_grpc
from buildgrid._protos.build.bazel.remote.execution.v2 import remote_execution_pb2, remote_execution_pb2_grpc
@@ -45,8 +47,10 @@ class RemoteStorage(StorageABC):
        return False

    def get_blob(self, digest):
        try:
            fetched_data = io.BytesIO()
            length = 0

            for data in gen_fetch_blob(self._stub_bs, digest, self._instance_name):
                length += fetched_data.write(data)

@@ -58,6 +62,15 @@ class RemoteStorage(StorageABC):
            else:
                return None

        except grpc.RpcError as e:
            if e.code() == grpc.StatusCode.NOT_FOUND:
                pass
            else:
                self.logger.error(e.details())
                raise

        return None

    def begin_write(self, digest):
        return io.BytesIO(digest.SerializeToString())