From 9b31843cecc096bcbdd282d3801a608203613288 Mon Sep 17 00:00:00 2001
From: Ricard Vilalta <ricard.vilalta@cttc.es>
Date: Wed, 16 Jun 2021 00:43:20 -0400
Subject: [PATCH] HEalth

---
 proto/health.proto           |  24 +++++
 proto/src/health_pb2.py      | 175 +++++++++++++++++++++++++++++++++++
 proto/src/health_pb2_grpc.py |  63 +++++++++++++
 proto/uml/grpc.health.v1.png | Bin 0 -> 14477 bytes
 4 files changed, 262 insertions(+)
 create mode 100644 proto/health.proto
 create mode 100644 proto/src/health_pb2.py
 create mode 100644 proto/src/health_pb2_grpc.py
 create mode 100644 proto/uml/grpc.health.v1.png

diff --git a/proto/health.proto b/proto/health.proto
new file mode 100644
index 000000000..378db950b
--- /dev/null
+++ b/proto/health.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+
+package 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;
+}
+
+service Health {
+  rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
+
+  rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
+}
+
diff --git a/proto/src/health_pb2.py b/proto/src/health_pb2.py
new file mode 100644
index 000000000..3cd84818d
--- /dev/null
+++ b/proto/src/health_pb2.py
@@ -0,0 +1,175 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: health.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='health.proto',
+  package='grpc.health.v1',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x0chealth.proto\x12\x0egrpc.health.v1\"%\n\x12HealthCheckRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\"\xa9\x01\n\x13HealthCheckResponse\x12\x41\n\x06status\x18\x01 \x01(\x0e\x32\x31.grpc.health.v1.HealthCheckResponse.ServingStatus\"O\n\rServingStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07SERVING\x10\x01\x12\x0f\n\x0bNOT_SERVING\x10\x02\x12\x13\n\x0fSERVICE_UNKNOWN\x10\x03\x32\xae\x01\n\x06Health\x12P\n\x05\x43heck\x12\".grpc.health.v1.HealthCheckRequest\x1a#.grpc.health.v1.HealthCheckResponse\x12R\n\x05Watch\x12\".grpc.health.v1.HealthCheckRequest\x1a#.grpc.health.v1.HealthCheckResponse0\x01\x62\x06proto3')
+)
+
+
+
+_HEALTHCHECKRESPONSE_SERVINGSTATUS = _descriptor.EnumDescriptor(
+  name='ServingStatus',
+  full_name='grpc.health.v1.HealthCheckResponse.ServingStatus',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SERVING', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOT_SERVING', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SERVICE_UNKNOWN', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=162,
+  serialized_end=241,
+)
+_sym_db.RegisterEnumDescriptor(_HEALTHCHECKRESPONSE_SERVINGSTATUS)
+
+
+_HEALTHCHECKREQUEST = _descriptor.Descriptor(
+  name='HealthCheckRequest',
+  full_name='grpc.health.v1.HealthCheckRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='service', full_name='grpc.health.v1.HealthCheckRequest.service', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=32,
+  serialized_end=69,
+)
+
+
+_HEALTHCHECKRESPONSE = _descriptor.Descriptor(
+  name='HealthCheckResponse',
+  full_name='grpc.health.v1.HealthCheckResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='status', full_name='grpc.health.v1.HealthCheckResponse.status', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _HEALTHCHECKRESPONSE_SERVINGSTATUS,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=72,
+  serialized_end=241,
+)
+
+_HEALTHCHECKRESPONSE.fields_by_name['status'].enum_type = _HEALTHCHECKRESPONSE_SERVINGSTATUS
+_HEALTHCHECKRESPONSE_SERVINGSTATUS.containing_type = _HEALTHCHECKRESPONSE
+DESCRIPTOR.message_types_by_name['HealthCheckRequest'] = _HEALTHCHECKREQUEST
+DESCRIPTOR.message_types_by_name['HealthCheckResponse'] = _HEALTHCHECKRESPONSE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+HealthCheckRequest = _reflection.GeneratedProtocolMessageType('HealthCheckRequest', (_message.Message,), {
+  'DESCRIPTOR' : _HEALTHCHECKREQUEST,
+  '__module__' : 'health_pb2'
+  # @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckRequest)
+  })
+_sym_db.RegisterMessage(HealthCheckRequest)
+
+HealthCheckResponse = _reflection.GeneratedProtocolMessageType('HealthCheckResponse', (_message.Message,), {
+  'DESCRIPTOR' : _HEALTHCHECKRESPONSE,
+  '__module__' : 'health_pb2'
+  # @@protoc_insertion_point(class_scope:grpc.health.v1.HealthCheckResponse)
+  })
+_sym_db.RegisterMessage(HealthCheckResponse)
+
+
+
+_HEALTH = _descriptor.ServiceDescriptor(
+  name='Health',
+  full_name='grpc.health.v1.Health',
+  file=DESCRIPTOR,
+  index=0,
+  serialized_options=None,
+  serialized_start=244,
+  serialized_end=418,
+  methods=[
+  _descriptor.MethodDescriptor(
+    name='Check',
+    full_name='grpc.health.v1.Health.Check',
+    index=0,
+    containing_service=None,
+    input_type=_HEALTHCHECKREQUEST,
+    output_type=_HEALTHCHECKRESPONSE,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='Watch',
+    full_name='grpc.health.v1.Health.Watch',
+    index=1,
+    containing_service=None,
+    input_type=_HEALTHCHECKREQUEST,
+    output_type=_HEALTHCHECKRESPONSE,
+    serialized_options=None,
+  ),
+])
+_sym_db.RegisterServiceDescriptor(_HEALTH)
+
+DESCRIPTOR.services_by_name['Health'] = _HEALTH
+
+# @@protoc_insertion_point(module_scope)
diff --git a/proto/src/health_pb2_grpc.py b/proto/src/health_pb2_grpc.py
new file mode 100644
index 000000000..7f299d050
--- /dev/null
+++ b/proto/src/health_pb2_grpc.py
@@ -0,0 +1,63 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+import grpc
+
+import health_pb2 as health__pb2
+
+
+class HealthStub(object):
+  # missing associated documentation comment in .proto file
+  pass
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.Check = channel.unary_unary(
+        '/grpc.health.v1.Health/Check',
+        request_serializer=health__pb2.HealthCheckRequest.SerializeToString,
+        response_deserializer=health__pb2.HealthCheckResponse.FromString,
+        )
+    self.Watch = channel.unary_stream(
+        '/grpc.health.v1.Health/Watch',
+        request_serializer=health__pb2.HealthCheckRequest.SerializeToString,
+        response_deserializer=health__pb2.HealthCheckResponse.FromString,
+        )
+
+
+class HealthServicer(object):
+  # missing associated documentation comment in .proto file
+  pass
+
+  def Check(self, request, context):
+    # missing associated documentation comment in .proto file
+    pass
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def Watch(self, request, context):
+    # missing associated documentation comment in .proto file
+    pass
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_HealthServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'Check': grpc.unary_unary_rpc_method_handler(
+          servicer.Check,
+          request_deserializer=health__pb2.HealthCheckRequest.FromString,
+          response_serializer=health__pb2.HealthCheckResponse.SerializeToString,
+      ),
+      'Watch': grpc.unary_stream_rpc_method_handler(
+          servicer.Watch,
+          request_deserializer=health__pb2.HealthCheckRequest.FromString,
+          response_serializer=health__pb2.HealthCheckResponse.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'grpc.health.v1.Health', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
diff --git a/proto/uml/grpc.health.v1.png b/proto/uml/grpc.health.v1.png
new file mode 100644
index 0000000000000000000000000000000000000000..8172e76574a5500a0236f6fce3ef8095279bac79
GIT binary patch
literal 14477
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
V%D%@8zAwBaC#3{0di3ng{{mhOMKb^Z

literal 0
HcmV?d00001

-- 
GitLab