feat(tvix/store/pathinfosvc): provide listing

This provides an additional method in the PathInfoService trait, as
well as an RPC method on the gRPC layer to list all PathInfo objects in
a PathInfoService.

Change-Id: I7378f6bbd334bd6ac4e9be92505bd099a1c2b19a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9216
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-09-03 17:09:45 +03:00 committed by clbot
parent e41b5ae3f0
commit da9d706e0a
9 changed files with 310 additions and 41 deletions

View file

@ -41,6 +41,10 @@ service PathInfoService {
// It can also be used to calculate arbitrary NAR hashes of output paths,
// in case a legacy Nix Binary Cache frontend is provided.
rpc CalculateNAR(Node) returns (CalculateNARResponse);
// Return a stream of PathInfo messages matching the criteria specified in
// ListPathInfoRequest.
rpc List(ListPathInfoRequest) returns (stream PathInfo);
}
// The parameters that can be used to lookup a (single) PathInfo object.
@ -55,6 +59,10 @@ message GetPathInfoRequest {
};
}
// The parameters that can be used to lookup (multiple) PathInfo objects.
// Currently no filtering is possible, all objects are returned.
message ListPathInfoRequest { }
// CalculateNARResponse is the response returned by the CalculateNAR request.
//
// It contains the size of the NAR representation (in bytes), and the sha56