feat(3p/nix): Implement AddToStore proto handler
Implement the proto handler for AddToStore, which adds a nix path to the store. This is implemented by adding a new (probably soon-to-be-generalized) Source concretion that wraps a grpc ServerReader for the stream of data we're receiving from the client - this is less than ideal, as it's perpetuating the source/sink thing that's going on and storing entire nars in memory, but is at the very worst an incremental step towards a functioning nix that we can refactor in the future. Paired-With: Perry Lorier <isomer@tvl.fyi> Paired-With: Vincent Ambo <mail@tazj.in> Change-Id: I48db734e7460a47aee4a85dd5137b690980859e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1441 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
1fe4a47aa2
commit
05e44c121d
7 changed files with 141 additions and 13 deletions
9
third_party/nix/src/proto/worker.proto
vendored
9
third_party/nix/src/proto/worker.proto
vendored
|
|
@ -17,7 +17,7 @@ service WorkerService {
|
|||
// Query referrers for a given path.
|
||||
rpc QueryReferrers(StorePath) returns (StorePaths);
|
||||
|
||||
// Add a NAR (I think?) to the store. The first stream request
|
||||
// Add a path to the store. The first stream request
|
||||
// should be a message indicating metadata, the rest should be file
|
||||
// chunks.
|
||||
rpc AddToStore(stream AddToStoreRequest) returns (StorePath);
|
||||
|
|
@ -185,14 +185,9 @@ message AddToStoreRequest {
|
|||
string base_name = 4;
|
||||
}
|
||||
|
||||
message Chunk {
|
||||
bytes content = 1;
|
||||
bool final = 2;
|
||||
}
|
||||
|
||||
oneof add_oneof {
|
||||
Metadata meta = 1;
|
||||
Chunk chunk = 2;
|
||||
bytes data = 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue