Skip to content

Commit ae9038c

Browse files
authored
Fix gRPC health package clash (#270)
Fixes #267
1 parent b52e04e commit ae9038c

File tree

4 files changed

+78
-15
lines changed

4 files changed

+78
-15
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright 2015 The gRPC Authors
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
// The canonical version of this proto can be found at
16+
// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto
17+
18+
syntax = "proto3";
19+
20+
// We have to alter this to prevent gRPC health clash
21+
package temporal.grpc.health.v1;
22+
23+
option csharp_namespace = "Grpc.Health.V1";
24+
option go_package = "google.golang.org/grpc/health/grpc_health_v1";
25+
option java_multiple_files = true;
26+
option java_outer_classname = "HealthProto";
27+
option java_package = "io.grpc.health.v1";
28+
29+
message HealthCheckRequest {
30+
string service = 1;
31+
}
32+
33+
message HealthCheckResponse {
34+
enum ServingStatus {
35+
UNKNOWN = 0;
36+
SERVING = 1;
37+
NOT_SERVING = 2;
38+
SERVICE_UNKNOWN = 3; // Used only by the Watch method.
39+
}
40+
ServingStatus status = 1;
41+
}
42+
43+
service Health {
44+
// If the requested service is unknown, the call will fail with status
45+
// NOT_FOUND.
46+
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
47+
48+
// Performs a watch for the serving status of the requested service.
49+
// The server will immediately send back a message indicating the current
50+
// serving status. It will then subsequently send a new message whenever
51+
// the service's serving status changes.
52+
//
53+
// If the requested service is unknown when the call is received, the
54+
// server will send a message setting the serving status to
55+
// SERVICE_UNKNOWN but will *not* terminate the call. If at some
56+
// future point, the serving status of the service becomes known, the
57+
// server will send a new message with the service's serving status.
58+
//
59+
// If the call terminates with status UNIMPLEMENTED, then clients
60+
// should assume this method is not supported and should not retry the
61+
// call. If the call terminates with any other status (including OK),
62+
// clients should retry the call with appropriate exponential backoff.
63+
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
64+
}

scripts/gen_protos.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@
1212
proto_dir = base_dir / "temporalio" / "bridge" / "sdk-core" / "protos"
1313
api_proto_dir = proto_dir / "api_upstream"
1414
core_proto_dir = proto_dir / "local"
15-
health_proto_dir = proto_dir / "grpc"
1615
testsrv_proto_dir = proto_dir / "testsrv_upstream"
1716
test_proto_dir = base_dir / "tests"
1817
additional_proto_dir = base_dir / "scripts" / "_proto"
18+
health_proto_dir = additional_proto_dir / "grpc"
1919

2020
# Exclude testsrv dependencies protos
2121
proto_paths = [
2222
v
2323
for v in proto_dir.glob("**/*.proto")
2424
if not str(v).startswith(str(testsrv_proto_dir / "dependencies"))
25+
and not "health" in str(v)
2526
]
2627
proto_paths.extend(test_proto_dir.glob("**/*.proto"))
2728
proto_paths.extend(additional_proto_dir.glob("**/*.proto"))

temporalio/bridge/proto/health/v1/health_pb2.py

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

temporalio/bridge/proto/health/v1/health_pb2.pyi

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
"""
22
@generated by mypy-protobuf. Do not edit manually!
33
isort:skip_file
4-
The canonical version of this proto can be found at
5-
https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto
6-
"""
4+
We have to alter this to prevent gRPC health clash"""
75
import builtins
86
import google.protobuf.descriptor
97
import google.protobuf.internal.enum_type_wrapper

0 commit comments

Comments
 (0)