diff options
author | heretic <heretic@yandex-team.ru> | 2022-03-25 12:34:53 +0300 |
---|---|---|
committer | heretic <heretic@yandex-team.ru> | 2022-03-25 12:34:53 +0300 |
commit | a41f3739eed6fceb6f62056a7620d220958a47e7 (patch) | |
tree | 278103258b510cb4a96761ea79d6ccd397ca05a0 /contrib/libs/grpc/src/python/grpcio_csds | |
parent | 73d3613a82e5c217fcbe0ab8bbf8120c1ed1af55 (diff) | |
download | ydb-a41f3739eed6fceb6f62056a7620d220958a47e7.tar.gz |
Update grpc to 1.43.2 DTCC-864
ref:50a492c335cda70f458797cf945e49fe739c2715
Diffstat (limited to 'contrib/libs/grpc/src/python/grpcio_csds')
4 files changed, 149 insertions, 0 deletions
diff --git a/contrib/libs/grpc/src/python/grpcio_csds/README.rst b/contrib/libs/grpc/src/python/grpcio_csds/README.rst new file mode 100644 index 0000000000..f8803f253d --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_csds/README.rst @@ -0,0 +1,10 @@ +gRPC Python Client Status Discovery Service package +=================================================== + +CSDS is part of the Envoy xDS protocol: +https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/status/v3/csds.proto. +It allows the gRPC application to programmatically expose the received traffic +configuration (xDS resources). Welcome to explore with CLI tool "grpcdebug": +https://github.com/grpc-ecosystem/grpcdebug. + +For any issues or suggestions, please send to https://github.com/grpc/grpc/issues. diff --git a/contrib/libs/grpc/src/python/grpcio_csds/grpc_csds/__init__.py b/contrib/libs/grpc/src/python/grpcio_csds/grpc_csds/__init__.py new file mode 100644 index 0000000000..aa83465c61 --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_csds/grpc_csds/__init__.py @@ -0,0 +1,61 @@ +# Copyright 2021 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. +"""Channelz debug service implementation in gRPC Python.""" + +from google.protobuf import json_format +from grpc._cython import cygrpc + +try: + from envoy.service.status.v3 import csds_pb2 + from envoy.service.status.v3 import csds_pb2_grpc +except ImportError: + from src.proto.grpc.testing.xds.v3 import csds_pb2 + from src.proto.grpc.testing.xds.v3 import csds_pb2_grpc + + +class ClientStatusDiscoveryServiceServicer( + csds_pb2_grpc.ClientStatusDiscoveryServiceServicer): + """CSDS Servicer works for both the sync API and asyncio API.""" + + @staticmethod + def FetchClientStatus(request, unused_context): + client_config = csds_pb2.ClientConfig.FromString( + cygrpc.dump_xds_configs()) + response = csds_pb2.ClientStatusResponse() + response.config.append(client_config) + return response + + @staticmethod + def StreamClientStatus(request_iterator, context): + for request in request_iterator: + yield ClientStatusDiscoveryServiceServicer.FetchClientStatus( + request, context) + + +def add_csds_servicer(server): + """Register CSDS servicer to a server. + + CSDS is part of xDS protocol used to expose in-effective traffic + configuration (or xDS resources). It focuses on simplify the debugging of + unexpected routing behaviors, which could be due to a misconfiguration, + unhealthy backends or issues in the control or data plane. + + Args: + server: A gRPC server to which the CSDS service will be added. + """ + csds_pb2_grpc.add_ClientStatusDiscoveryServiceServicer_to_server( + ClientStatusDiscoveryServiceServicer(), server) + + +__all__ = ['ClientStatusDiscoveryServiceServicer', 'add_csds_servicer'] diff --git a/contrib/libs/grpc/src/python/grpcio_csds/grpc_version.py b/contrib/libs/grpc/src/python/grpcio_csds/grpc_version.py new file mode 100644 index 0000000000..88b38f3a6e --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_csds/grpc_version.py @@ -0,0 +1,17 @@ +# Copyright 2021 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. + +# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_csds/grpc_version.py.template`!!! + +VERSION = '1.43.2' diff --git a/contrib/libs/grpc/src/python/grpcio_csds/setup.py b/contrib/libs/grpc/src/python/grpcio_csds/setup.py new file mode 100644 index 0000000000..c89c6b927b --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_csds/setup.py @@ -0,0 +1,61 @@ +# Copyright 2021 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. +"""Setup module for CSDS in gRPC Python.""" + +import os +import sys + +import setuptools + +_PACKAGE_PATH = os.path.realpath(os.path.dirname(__file__)) +_README_PATH = os.path.join(_PACKAGE_PATH, 'README.rst') + +# Ensure we're in the proper directory whether or not we're being used by pip. +os.chdir(os.path.dirname(os.path.abspath(__file__))) + +# Break import-style to ensure we can actually find our local modules. +import grpc_version + +CLASSIFIERS = [ + 'Development Status :: 5 - Production/Stable', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'License :: OSI Approved :: Apache Software License', +] + +PACKAGE_DIRECTORIES = { + '': '.', +} + +INSTALL_REQUIRES = ( + 'protobuf>=3.6.0', + 'xds-protos>=0.0.7', + 'grpcio>={version}'.format(version=grpc_version.VERSION), +) +SETUP_REQUIRES = INSTALL_REQUIRES + +setuptools.setup(name='grpcio-csds', + version=grpc_version.VERSION, + license='Apache License 2.0', + description='xDS configuration dump library', + long_description=open(_README_PATH, 'r').read(), + author='The gRPC Authors', + author_email='grpc-io@googlegroups.com', + classifiers=CLASSIFIERS, + url='https://grpc.io', + package_dir=PACKAGE_DIRECTORIES, + packages=setuptools.find_packages('.'), + python_requires='>=3.6', + install_requires=INSTALL_REQUIRES, + setup_requires=SETUP_REQUIRES) |