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.

Reply via email to