in src/kudu/common/wire_protocol.cc [136:183]
Status StatusFromPB(const AppStatusPB& pb) {
int posix_code = pb.has_posix_code() ? pb.posix_code() : -1;
switch (pb.code()) {
case AppStatusPB::OK:
return Status::OK();
case AppStatusPB::NOT_FOUND:
return Status::NotFound(pb.message(), "", posix_code);
case AppStatusPB::CORRUPTION:
return Status::Corruption(pb.message(), "", posix_code);
case AppStatusPB::NOT_SUPPORTED:
return Status::NotSupported(pb.message(), "", posix_code);
case AppStatusPB::INVALID_ARGUMENT:
return Status::InvalidArgument(pb.message(), "", posix_code);
case AppStatusPB::IO_ERROR:
return Status::IOError(pb.message(), "", posix_code);
case AppStatusPB::ALREADY_PRESENT:
return Status::AlreadyPresent(pb.message(), "", posix_code);
case AppStatusPB::RUNTIME_ERROR:
return Status::RuntimeError(pb.message(), "", posix_code);
case AppStatusPB::NETWORK_ERROR:
return Status::NetworkError(pb.message(), "", posix_code);
case AppStatusPB::ILLEGAL_STATE:
return Status::IllegalState(pb.message(), "", posix_code);
case AppStatusPB::NOT_AUTHORIZED:
return Status::NotAuthorized(pb.message(), "", posix_code);
case AppStatusPB::ABORTED:
return Status::Aborted(pb.message(), "", posix_code);
case AppStatusPB::REMOTE_ERROR:
return Status::RemoteError(pb.message(), "", posix_code);
case AppStatusPB::SERVICE_UNAVAILABLE:
return Status::ServiceUnavailable(pb.message(), "", posix_code);
case AppStatusPB::TIMED_OUT:
return Status::TimedOut(pb.message(), "", posix_code);
case AppStatusPB::UNINITIALIZED:
return Status::Uninitialized(pb.message(), "", posix_code);
case AppStatusPB::CONFIGURATION_ERROR:
return Status::ConfigurationError(pb.message(), "", posix_code);
case AppStatusPB::INCOMPLETE:
return Status::Incomplete(pb.message(), "", posix_code);
case AppStatusPB::END_OF_FILE:
return Status::EndOfFile(pb.message(), "", posix_code);
case AppStatusPB::UNKNOWN_ERROR:
default:
LOG(WARNING) << "Unknown error code in status: " << SecureShortDebugString(pb);
return Status::RuntimeError("(unknown error code)", pb.message(), posix_code);
}
}