feat(tvix): Implement all remaining RPC calls
Implement all remaining RPC calls on the RpcSstore client, remove a few stub methods we had added that weren't actually present in the old RemoteStore implementation, and add one more RPC call for getBuildLog that is present in the store API, but that we hadn't added as a stub *or* to the proto. Fixes: #29 Change-Id: Id827f51a393ece4bc7bbecaf38aee9eb4b329770 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1692 Reviewed-by: kanepyork <rikingcoding@gmail.com> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									747dc65154
								
							
						
					
					
						commit
						e440f60b6c
					
				
					 8 changed files with 159 additions and 50 deletions
				
			
		
							
								
								
									
										38
									
								
								third_party/nix/src/libstore/store-api.cc
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								third_party/nix/src/libstore/store-api.cc
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -77,6 +77,44 @@ nix::proto::BuildStatus BuildResult::status_to_proto() {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::optional<BuildResult> BuildResult::FromProto(
 | 
			
		||||
    const nix::proto::BuildDerivationResponse& resp) {
 | 
			
		||||
  BuildResult result;
 | 
			
		||||
  switch (resp.status()) {
 | 
			
		||||
    case proto::BuildStatus::Built:
 | 
			
		||||
      result.status = BuildResult::Status::Built;
 | 
			
		||||
    case proto::BuildStatus::Substituted:
 | 
			
		||||
      result.status = BuildResult::Status::Substituted;
 | 
			
		||||
    case proto::BuildStatus::AlreadyValid:
 | 
			
		||||
      result.status = BuildResult::Status::AlreadyValid;
 | 
			
		||||
    case proto::BuildStatus::PermanentFailure:
 | 
			
		||||
      result.status = BuildResult::Status::PermanentFailure;
 | 
			
		||||
    case proto::BuildStatus::InputRejected:
 | 
			
		||||
      result.status = BuildResult::Status::InputRejected;
 | 
			
		||||
    case proto::BuildStatus::OutputRejected:
 | 
			
		||||
      result.status = BuildResult::Status::OutputRejected;
 | 
			
		||||
    case proto::BuildStatus::TransientFailure:
 | 
			
		||||
      result.status = BuildResult::Status::TransientFailure;
 | 
			
		||||
    case proto::BuildStatus::CachedFailure:
 | 
			
		||||
      result.status = BuildResult::Status::CachedFailure;
 | 
			
		||||
    case proto::BuildStatus::TimedOut:
 | 
			
		||||
      result.status = BuildResult::Status::TimedOut;
 | 
			
		||||
    case proto::BuildStatus::MiscFailure:
 | 
			
		||||
      result.status = BuildResult::Status::MiscFailure;
 | 
			
		||||
    case proto::BuildStatus::DependencyFailed:
 | 
			
		||||
      result.status = BuildResult::Status::DependencyFailed;
 | 
			
		||||
    case proto::BuildStatus::LogLimitExceeded:
 | 
			
		||||
      result.status = BuildResult::Status::LogLimitExceeded;
 | 
			
		||||
    case proto::BuildStatus::NotDeterministic:
 | 
			
		||||
      result.status = BuildResult::Status::NotDeterministic;
 | 
			
		||||
    default:
 | 
			
		||||
      return {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  result.errorMsg = resp.error_message();
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::optional<GCOptions::GCAction> GCActionFromProto(
 | 
			
		||||
    nix::proto::GCAction gc_action) {
 | 
			
		||||
  switch (gc_action) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue