This is an automated email from the ASF dual-hosted git repository. juergbi pushed a commit to branch juerg/buildbox-asset-remote in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 1c58181b5394246af3b40ae0a5a96ef60fd963f0 Author: Jürg Billeter <[email protected]> AuthorDate: Fri May 31 14:14:08 2024 +0200 _remotespec.py: Add `to_localcas_remote()` method --- src/buildstream/_cas/casremote.py | 13 +------------ src/buildstream/_remotespec.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/buildstream/_cas/casremote.py b/src/buildstream/_cas/casremote.py index f4fbe1223..a6cae7c2f 100644 --- a/src/buildstream/_cas/casremote.py +++ b/src/buildstream/_cas/casremote.py @@ -59,18 +59,7 @@ class CASRemote(BaseRemote): local_cas = self.cascache.get_local_cas() request = local_cas_pb2.GetInstanceNameForRemotesRequest() - cas_endpoint = request.content_addressable_storage - cas_endpoint.url = self.spec.url - if self.spec.instance_name: - cas_endpoint.instance_name = self.spec.instance_name - if self.spec.server_cert: - cas_endpoint.server_cert = self.spec.server_cert - if self.spec.client_key: - cas_endpoint.client_key = self.spec.client_key - if self.spec.client_cert: - cas_endpoint.client_cert = self.spec.client_cert - if self.spec.keepalive_time is not None: - cas_endpoint.keepalive_time.FromSeconds(self.spec.keepalive_time) + request.content_addressable_storage.CopyFrom(self.spec.to_localcas_remote()) try: response = local_cas.GetInstanceNameForRemotes(request) except grpc.RpcError as e: diff --git a/src/buildstream/_remotespec.py b/src/buildstream/_remotespec.py index 13da04dbb..48a6c0c9f 100644 --- a/src/buildstream/_remotespec.py +++ b/src/buildstream/_remotespec.py @@ -20,6 +20,7 @@ from grpc import ChannelCredentials, Channel from ._exceptions import LoadError, RemoteError from .exceptions import LoadErrorReason +from ._protos.build.buildgrid import local_cas_pb2 from .types import FastEnum from .node import MappingNode @@ -218,6 +219,25 @@ class RemoteSpec: return channel + # to_localcas_remote() + # + # Create a `LocalContentAddressableStorage.Remote` proto from the `RemoteSpec` object. + # + def to_localcas_remote(self) -> local_cas_pb2.Remote: + remote = local_cas_pb2.Remote() + remote.url = self.url + if self.instance_name: + remote.instance_name = self.instance_name + if self.server_cert: + remote.server_cert = self.server_cert + if self.client_key: + remote.client_key = self.client_key + if self.client_cert: + remote.client_cert = self.client_cert + if self.keepalive_time is not None: + remote.keepalive_time.FromSeconds(self.keepalive_time) + return remote + # new_from_node(): # # Creates a RemoteSpec() from a YAML loaded node.
