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_admin | |
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_admin')
4 files changed, 142 insertions, 0 deletions
diff --git a/contrib/libs/grpc/src/python/grpcio_admin/README.rst b/contrib/libs/grpc/src/python/grpcio_admin/README.rst new file mode 100644 index 0000000000..d9959840eb --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_admin/README.rst @@ -0,0 +1,23 @@ +gRPC Python Admin Interface Package +=================================== + +Debugging gRPC library can be a complex task. There are many configurations and +internal states, which will affect the behavior of the library. This Python +package will be the collection of admin services that are exposing debug +information. Currently, it includes: + +* Channel tracing metrics (grpcio-channelz) +* Client Status Discovery Service (grpcio-csds) + +Here is a snippet to create an admin server on "localhost:50051": + + server = grpc.server(ThreadPoolExecutor()) + port = server.add_insecure_port('localhost:50051') + grpc_admin.add_admin_servicers(self._server) + server.start() + +Welcome to explore the admin services 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_admin/grpc_admin/__init__.py b/contrib/libs/grpc/src/python/grpcio_admin/grpc_admin/__init__.py new file mode 100644 index 0000000000..95e70858b3 --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_admin/grpc_admin/__init__.py @@ -0,0 +1,42 @@ +# 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. +"""gRPC Python's Admin interface.""" + +from grpc_channelz.v1 import channelz +import grpc_csds + + +def add_admin_servicers(server): + """Register admin servicers to a server. + + gRPC provides some predefined admin services to make debugging easier by + exposing gRPC's internal states. Each existing admin service is packaged as + a separate library, and the documentation of the predefined admin services + is usually scattered. It can be time consuming to get the dependency + management, module initialization, and library import right for each one of + them. + + This API provides a convenient way to create a gRPC server to expose admin + services. With this, any new admin services that you may add in the future + are automatically available via the admin interface just by upgrading your + gRPC version. + + Args: + server: A gRPC server to which all admin services will be added. + """ + channelz.add_channelz_servicer(server) + grpc_csds.add_csds_servicer(server) + + +__all__ = ['add_admin_servicers'] diff --git a/contrib/libs/grpc/src/python/grpcio_admin/grpc_version.py b/contrib/libs/grpc/src/python/grpcio_admin/grpc_version.py new file mode 100644 index 0000000000..c48475b87e --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_admin/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_admin/grpc_version.py.template`!!! + +VERSION = '1.43.2' diff --git a/contrib/libs/grpc/src/python/grpcio_admin/setup.py b/contrib/libs/grpc/src/python/grpcio_admin/setup.py new file mode 100644 index 0000000000..2d966cdc0a --- /dev/null +++ b/contrib/libs/grpc/src/python/grpcio_admin/setup.py @@ -0,0 +1,60 @@ +# 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 admin interface 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 = ( + 'grpcio-channelz>={version}'.format(version=grpc_version.VERSION), + 'grpcio-csds>={version}'.format(version=grpc_version.VERSION), +) +SETUP_REQUIRES = INSTALL_REQUIRES + +setuptools.setup(name='grpcio-admin', + version=grpc_version.VERSION, + license='Apache License 2.0', + description='a collection of admin services', + 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) |