diff options
author | bst-marge-bot <marge-bot@buildstream.build> | 2020-08-13 10:49:20 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2020-08-13 10:49:20 +0000 |
commit | 10e208d0c40ebacc43cc9da2ebaf73c10bbc37da (patch) | |
tree | cb0566c72640c292676ab8654d273666b088a88b /src/buildstream/_cas/casremote.py | |
parent | ccdac3517f7a241aa9d3b5637dea6640a63667fd (diff) | |
parent | aea06a75c6d6ac404729bc48c5cdfb6aca7ae7ac (diff) | |
download | buildstream-10e208d0c40ebacc43cc9da2ebaf73c10bbc37da.tar.gz |
Merge branch 'juerg/remote-asset' into 'master'
Use Remote Asset API for artifact and source caches
Closes #1273 and #1272
See merge request BuildStream/buildstream!1978
Diffstat (limited to 'src/buildstream/_cas/casremote.py')
-rw-r--r-- | src/buildstream/_cas/casremote.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/buildstream/_cas/casremote.py b/src/buildstream/_cas/casremote.py index 93f4e500c..656c08a36 100644 --- a/src/buildstream/_cas/casremote.py +++ b/src/buildstream/_cas/casremote.py @@ -15,6 +15,8 @@ # License along with this library. If not, see <http://www.gnu.org/licenses/>. # +import grpc + from .._protos.google.rpc import code_pb2 from .._protos.build.buildgrid import local_cas_pb2 @@ -54,17 +56,25 @@ class CASRemote(BaseRemote): # def _configure_protocols(self): local_cas = self.cascache.get_local_cas() - request = local_cas_pb2.GetInstanceNameForRemoteRequest() - request.url = self.spec.url + request = local_cas_pb2.GetInstanceNameForRemotesRequest() + cas_endpoint = request.content_addressable_storage + cas_endpoint.url = self.spec.url if self.spec.instance_name: - request.instance_name = self.spec.instance_name + cas_endpoint.instance_name = self.spec.instance_name if self.server_cert: - request.server_cert = self.server_cert + cas_endpoint.server_cert = self.server_cert if self.client_key: - request.client_key = self.client_key + cas_endpoint.client_key = self.client_key if self.client_cert: - request.client_cert = self.client_cert - response = local_cas.GetInstanceNameForRemote(request) + cas_endpoint.client_cert = self.client_cert + try: + response = local_cas.GetInstanceNameForRemotes(request) + except grpc.RpcError as e: + if e.code() == grpc.StatusCode.UNIMPLEMENTED: + raise CASRemoteError( + "Unsupported buildbox-casd version: GetInstanceNameForRemotes unimplemented" + ) from e + raise self.local_cas_instance_name = response.instance_name # push_message(): |