about summary refs log tree commit diff
path: root/tvix/store/src/pathinfoservice/grpc.rs
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-11-13T10·10+0200
committerflokli <flokli@flokli.de>2023-11-15T06·43+0000
commitf57fd16d6efd1027b3b3b45ca3fdb03573119da6 (patch)
treeb3888666a7b5cdbb6c0a783c439c9f5f31e1f529 /tvix/store/src/pathinfoservice/grpc.rs
parent362117fbf56da6cef07bc661ce99e41e7d3cff64 (diff)
refactor(tvix/store/pathinfosvc): inline GRPCPathInfoSvc::from_url r/7017
Change-Id: Ib53b5525ae13c276e61b7f564673b7c6144ffc0e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10025
Tested-by: BuildkiteCI
Reviewed-by: Connor Brewster <cbrewster@hey.com>
Diffstat (limited to 'tvix/store/src/pathinfoservice/grpc.rs')
-rw-r--r--tvix/store/src/pathinfoservice/grpc.rs30
1 files changed, 7 insertions, 23 deletions
diff --git a/tvix/store/src/pathinfoservice/grpc.rs b/tvix/store/src/pathinfoservice/grpc.rs
index a33f75c1fd..2e58a464aa 100644
--- a/tvix/store/src/pathinfoservice/grpc.rs
+++ b/tvix/store/src/pathinfoservice/grpc.rs
@@ -2,11 +2,9 @@ use super::PathInfoService;
 use crate::proto::{self, ListPathInfoRequest, PathInfo};
 use async_stream::try_stream;
 use futures::Stream;
-use std::{pin::Pin, sync::Arc};
+use std::pin::Pin;
 use tonic::{async_trait, transport::Channel, Code};
-use tvix_castore::{
-    blobservice::BlobService, directoryservice::DirectoryService, proto as castorepb, Error,
-};
+use tvix_castore::{proto as castorepb, Error};
 
 /// Connects to a (remote) tvix-store PathInfoService over gRPC.
 #[derive(Clone)]
@@ -24,23 +22,6 @@ impl GRPCPathInfoService {
     ) -> Self {
         Self { grpc_client }
     }
-
-    /// Constructs a [GRPCPathInfoService] from the passed [url::Url]:
-    /// - scheme has to match `grpc+*://`.
-    ///   That's normally grpc+unix for unix sockets, and grpc+http(s) for the HTTP counterparts.
-    /// - In the case of unix sockets, there must be a path, but may not be a host.
-    /// - In the case of non-unix sockets, there must be a host, but no path.
-    /// The blob_service and directory_service arguments are ignored, because the gRPC service already provides answers to these questions.
-    pub fn from_url(
-        url: &url::Url,
-        _blob_service: Arc<dyn BlobService>,
-        _directory_service: Arc<dyn DirectoryService>,
-    ) -> Result<Self, tvix_castore::Error> {
-        let channel = tvix_castore::channel::from_url(url)?;
-        Ok(Self::from_client(
-            proto::path_info_service_client::PathInfoServiceClient::new(channel),
-        ))
-    }
 }
 
 #[async_trait]
@@ -198,8 +179,11 @@ mod tests {
         let grpc_client = {
             let url = url::Url::parse(&format!("grpc+unix://{}", socket_path.display()))
                 .expect("must parse");
-            GRPCPathInfoService::from_url(&url, gen_blob_service(), gen_directory_service())
-                .expect("must succeed")
+            let client = PathInfoServiceClient::new(
+                tvix_castore::channel::from_url(&url).expect("must succeed"),
+            );
+
+            GRPCPathInfoService::from_client(client)
         };
 
         let path_info = grpc_client