feat(3p/nix/nix-daemon): Implement Worker::AddSignatures handler

I got the message proto wrong on this one as well - it needs both a path
and a signatures.

Change-Id: I9a489b1285bda61c15b2a3b47d9cfc3b50e387da
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1270
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
Griffin Smith 2020-07-18 14:22:01 -04:00 committed by glittershark
parent a79df261b4
commit ecf288e70a
2 changed files with 20 additions and 1 deletions

View file

@ -227,6 +227,20 @@ class WorkerServiceImpl final : public WorkerService::Service {
return Status::OK;
}
Status AddSignatures(grpc::ServerContext* context,
const nix::proto::AddSignaturesRequest* request,
google::protobuf::Empty* response) override {
auto path = request->path().path();
store_->assertStorePath(path);
StringSet sigs;
sigs.insert(request->sigs().sigs().begin(), request->sigs().sigs().end());
store_->addSignatures(path, sigs);
return Status::OK;
}
Status QueryMissing(grpc::ServerContext* context, const StorePaths* request,
nix::proto::QueryMissingResponse* response) override {
std::set<Path> targets;

View file

@ -92,7 +92,7 @@ service WorkerService {
// Add signatures to the specified store path. The signatures are not
// verified.
rpc AddSignatures(Signatures) returns (google.protobuf.Empty);
rpc AddSignatures(AddSignaturesRequest) returns (google.protobuf.Empty);
// TODO: What does this do?
rpc NarFromPath(StorePath) returns (StorePath);
@ -314,6 +314,11 @@ message BuildDerivationResponse {
string error_message = 2;
}
message AddSignaturesRequest {
StorePath path = 1;
Signatures sigs = 2;
}
message AddToStoreNarRequest {
oneof add_oneoff {
PathInfo path_info = 1;