diff options
author | Florian Klink <flokli@flokli.de> | 2023-05-14T15·10+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-05-16T10·39+0000 |
commit | e815b680c0d7fdd99c0bdb4b198e3f4c591997b8 (patch) | |
tree | 3e3a262242c94422f84647f503f237771ab4eefd /tvix/store/src/proto | |
parent | 71c29d0f4c6cbf4697bfaac84bcebd43a77a4b78 (diff) |
refactor(tvix/store/pathinfosvc): drop ByWhat, use digest directly r/6146
We currently only support querying by the output hash digest. This makes the interface a bit simpler. Change-Id: I80b285373f1923e85cb0e404c4b15d51a7f259ef Reviewed-on: https://cl.tvl.fyi/c/depot/+/8570 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/store/src/proto')
-rw-r--r-- | tvix/store/src/proto/grpc_pathinfoservice_wrapper.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/tvix/store/src/proto/grpc_pathinfoservice_wrapper.rs b/tvix/store/src/proto/grpc_pathinfoservice_wrapper.rs index 21a65185de74..8050ce10cc54 100644 --- a/tvix/store/src/proto/grpc_pathinfoservice_wrapper.rs +++ b/tvix/store/src/proto/grpc_pathinfoservice_wrapper.rs @@ -31,14 +31,19 @@ impl< ) -> Result<Response<proto::PathInfo>> { match request.into_inner().by_what { None => Err(Status::unimplemented("by_what needs to be specified")), - Some(by_what) => match self.path_info_service.get(by_what) { - Ok(None) => Err(Status::not_found("PathInfo not found")), - Ok(Some(path_info)) => Ok(Response::new(path_info)), - Err(e) => { - warn!("failed to retrieve PathInfo: {}", e); - Err(e.into()) + Some(proto::get_path_info_request::ByWhat::ByOutputHash(digest)) => { + let digest: [u8; 20] = digest + .try_into() + .map_err(|_e| Status::invalid_argument("invalid digest length"))?; + match self.path_info_service.get(digest) { + Ok(None) => Err(Status::not_found("PathInfo not found")), + Ok(Some(path_info)) => Ok(Response::new(path_info)), + Err(e) => { + warn!("failed to retrieve PathInfo: {}", e); + Err(e.into()) + } } - }, + } } } |