-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(vpnd): add grpc health and reflection (#299)
- Loading branch information
Showing
9 changed files
with
140 additions
and
31 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,14 @@ | ||
// Copyright 2024 - Nym Technologies SA <[email protected]> | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
use std::{env, path::PathBuf}; | ||
|
||
fn main() -> Result<(), Box<dyn std::error::Error>> { | ||
tonic_build::compile_protos("../../proto/nym/vpn.proto")?; | ||
tonic_build::compile_protos("../../proto/nym/health.proto")?; | ||
// needed for reflection | ||
let descriptor_path = PathBuf::from(env::var("OUT_DIR").unwrap()).join("vpn_descriptor.bin"); | ||
|
||
tonic_build::configure() | ||
.file_descriptor_set_path(descriptor_path) | ||
.compile(&["../../proto/nym/vpn.proto"], &["../../proto/nym/"])?; | ||
Ok(()) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
tonic::include_proto!("nym.vpn"); | ||
tonic::include_proto!("nym.health"); | ||
|
||
pub const FILE_DESCRIPTOR_SET: &[u8] = tonic::include_file_descriptor_set!("vpn_descriptor"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
// Copyright 2015 The gRPC Authors | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
// The canonical version of this proto can be found at | ||
// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto | ||
|
||
syntax = "proto3"; | ||
|
||
package grpc.health.v1; | ||
|
||
option csharp_namespace = "Grpc.Health.V1"; | ||
option go_package = "google.golang.org/grpc/health/grpc_health_v1"; | ||
option java_multiple_files = true; | ||
option java_outer_classname = "HealthProto"; | ||
option java_package = "io.grpc.health.v1"; | ||
|
||
message HealthCheckRequest { | ||
string service = 1; | ||
} | ||
|
||
message HealthCheckResponse { | ||
enum ServingStatus { | ||
UNKNOWN = 0; | ||
SERVING = 1; | ||
NOT_SERVING = 2; | ||
SERVICE_UNKNOWN = 3; // Used only by the Watch method. | ||
} | ||
ServingStatus status = 1; | ||
} | ||
|
||
// Health is gRPC's mechanism for checking whether a server is able to handle | ||
// RPCs. Its semantics are documented in | ||
// https://github.com/grpc/grpc/blob/master/doc/health-checking.md. | ||
service Health { | ||
// Check gets the health of the specified service. If the requested service | ||
// is unknown, the call will fail with status NOT_FOUND. If the caller does | ||
// not specify a service name, the server should respond with its overall | ||
// health status. | ||
// | ||
// Clients should set a deadline when calling Check, and can declare the | ||
// server unhealthy if they do not receive a timely response. | ||
// | ||
// Check implementations should be idempotent and side effect free. | ||
rpc Check(HealthCheckRequest) returns (HealthCheckResponse); | ||
|
||
// Performs a watch for the serving status of the requested service. | ||
// The server will immediately send back a message indicating the current | ||
// serving status. It will then subsequently send a new message whenever | ||
// the service's serving status changes. | ||
// | ||
// If the requested service is unknown when the call is received, the | ||
// server will send a message setting the serving status to | ||
// SERVICE_UNKNOWN but will *not* terminate the call. If at some | ||
// future point, the serving status of the service becomes known, the | ||
// server will send a new message with the service's serving status. | ||
// | ||
// If the call terminates with status UNIMPLEMENTED, then clients | ||
// should assume this method is not supported and should not retry the | ||
// call. If the call terminates with any other status (including OK), | ||
// clients should retry the call with appropriate exponential backoff. | ||
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse); | ||
} |
This file was deleted.
Oops, something went wrong.