diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2e486658 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,75 @@ +name: build package + +on: + pull_request: + branches: + - main + push: + tags: + - '*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: | + pip install tox + - name: Run linters + run: | + tox -e genproto + tox -e build || true + + test: + runs-on: ubuntu-latest + needs: build + strategy: + matrix: + pyversion: + - '3.8' + - '3.10' + - '3.12' + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5.4.0 + with: + python-version: ${{ matrix.pyversion }} + - run: | + pip install tox + - name: Run unittests + run: | + tox -e genproto + tox -e unittests + + lint: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: | + pip install tox + - name: Run linters + run: | + tox -e genproto + tox -e lint || true + + doc: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: | + pip install tox + - name: Run linters + run: | + tox -e genproto + tox -e doc diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..fddcf25e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,95 @@ +name: build + +on: + push: + tags: + - '*' + +jobs: + publish: + runs-on: public-ledgerhq-shared-small + permissions: + id-token: write + contents: read + attestations: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: | + pip install tox + tox -e genproto + tox -e build + # initiate jfrog login and install jf + - name: Login to JFrog Ledger + uses: LedgerHQ/actions-security/actions/jfrog-login@actions/jfrog-login-1 + # upload package to jfrog + - name: upload package + run: jf rt u --build-name=python-etcd3-release --build-number=1 --module=etcd3 'dist/*.tar.gz' enclave-pypi-prod-green + # attest that the delivered package is authenticated as a CI build + - name: Attest + id: attest + uses: LedgerHQ/actions-security/actions/attest@actions/attest-1 + with: + subject-path: 'dist/*.tar.gz' + push-to-registry: false + - uses: LedgerHQ/actions/gemfury/publish@main + env: + PUSH_TOKEN: ${{ secrets.PYPI_PUSH_TOKEN }} + - uses: actions/upload-artifact@v4 + with: + name: dist-${{ github.run_id }} + path: | + dist + retention-days: 2 + + validate: + runs-on: public-ledgerhq-shared-small + permissions: + id-token: write + contents: read + needs: + - publish + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + name: dist-${{ github.run_id }} + path: dist + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + - run: | + pip install build twine wheel-filename blob + # in order to allow test pip install after publish, get back pkg version + - name: get back local build version + id: get_pkg_version + run: | + from wheel_filename import parse_wheel_filename + import glob + import os + from random import choices + from string import ascii_letters + + whl = str(glob.glob('dist/*.whl')[0]); + pwf = parse_wheel_filename('dist/' + whl); + with open(os.environ["GITHUB_OUTPUT"], "a") as gh_output: + delimiter = "".join(choices(ascii_letters, k=16)) + gh_output.writelines([ + f"pkg_version<<{delimiter}\n", + f"{pwf.version}\n", + delimiter + "\n", + ]) + shell: python + - name: Login to JFrog Ledger + uses: LedgerHQ/actions-security/actions/jfrog-login@actions/jfrog-login-1 + # configure jfrog repo and test pip install from it for the delivered package + - name: set jfrog Repo URL + run: jf pipc --global --repo-resolve=enclave-pypi-virtual-green + - name: test install from jfrog + run: | + jf pip install etcd3==${{ steps.get_pkg_version.outputs.pkg_version }} + pip show etcd3 + shell: bash diff --git a/MANIFEST.in b/MANIFEST.in index 2395ef98..09407434 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -5,11 +5,7 @@ include CONTRIBUTING.rst include HISTORY.rst include LICENSE include README.rst -include requirements/base.txt -include requirements/test.txt recursive-include tests * -recursive-exclude * __pycache__ -recursive-exclude * *.py[co] recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif diff --git a/README.rst b/README.rst index 945a3dd8..437e9ea1 100644 --- a/README.rst +++ b/README.rst @@ -30,7 +30,29 @@ If you're interested in using this library, please get involved. * Free software: Apache Software License 2.0 * Documentation: https://python-etcd3.readthedocs.io. -Basic usage: + +Building python package +----------------------- + +The package build is made using the ToX orchestrator. +It is required to generate python files before building the package as they are +not kept in gconf. +You only need the ToX orchestrator to produce the package: + +``` +pip install tox +``` + +A typical build sequence is the folling: + +``` +tox -e genproto +tox -e build +``` + + +Basic usage +----------- .. code-block:: python diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 6533884f..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,177 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/etcd3.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/etcd3.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/etcd3" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/etcd3" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/_static/.placeholder b/docs/_static/.placeholder new file mode 100644 index 00000000..e69de29b diff --git a/etcd3/etcdrpc/auth_pb2.py b/etcd3/etcdrpc/auth_pb2.py deleted file mode 100644 index b8abc39e..00000000 --- a/etcd3/etcdrpc/auth_pb2.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: auth.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -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_pool.Default().AddSerializedFile(b'\n\nauth.proto\x12\x06\x61uthpb\"5\n\x04User\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\x10\n\x08password\x18\x02 \x01(\x0c\x12\r\n\x05roles\x18\x03 \x03(\t\"\x83\x01\n\nPermission\x12)\n\x08permType\x18\x01 \x01(\x0e\x32\x17.authpb.Permission.Type\x12\x0b\n\x03key\x18\x02 \x01(\x0c\x12\x11\n\trange_end\x18\x03 \x01(\x0c\"*\n\x04Type\x12\x08\n\x04READ\x10\x00\x12\t\n\x05WRITE\x10\x01\x12\r\n\tREADWRITE\x10\x02\"?\n\x04Role\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12)\n\rkeyPermission\x18\x02 \x03(\x0b\x32\x12.authpb.PermissionB\x15\n\x11io.etcd.jetcd.apiP\x01\x62\x06proto3') - - - -_USER = DESCRIPTOR.message_types_by_name['User'] -_PERMISSION = DESCRIPTOR.message_types_by_name['Permission'] -_ROLE = DESCRIPTOR.message_types_by_name['Role'] -_PERMISSION_TYPE = _PERMISSION.enum_types_by_name['Type'] -User = _reflection.GeneratedProtocolMessageType('User', (_message.Message,), { - 'DESCRIPTOR' : _USER, - '__module__' : 'auth_pb2' - # @@protoc_insertion_point(class_scope:authpb.User) - }) -_sym_db.RegisterMessage(User) - -Permission = _reflection.GeneratedProtocolMessageType('Permission', (_message.Message,), { - 'DESCRIPTOR' : _PERMISSION, - '__module__' : 'auth_pb2' - # @@protoc_insertion_point(class_scope:authpb.Permission) - }) -_sym_db.RegisterMessage(Permission) - -Role = _reflection.GeneratedProtocolMessageType('Role', (_message.Message,), { - 'DESCRIPTOR' : _ROLE, - '__module__' : 'auth_pb2' - # @@protoc_insertion_point(class_scope:authpb.Role) - }) -_sym_db.RegisterMessage(Role) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\021io.etcd.jetcd.apiP\001' - _USER._serialized_start=22 - _USER._serialized_end=75 - _PERMISSION._serialized_start=78 - _PERMISSION._serialized_end=209 - _PERMISSION_TYPE._serialized_start=167 - _PERMISSION_TYPE._serialized_end=209 - _ROLE._serialized_start=211 - _ROLE._serialized_end=274 -# @@protoc_insertion_point(module_scope) diff --git a/etcd3/etcdrpc/kv_pb2.py b/etcd3/etcdrpc/kv_pb2.py deleted file mode 100644 index ea354832..00000000 --- a/etcd3/etcdrpc/kv_pb2.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: kv.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -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_pool.Default().AddSerializedFile(b'\n\x08kv.proto\x12\x06mvccpb\"u\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x17\n\x0f\x63reate_revision\x18\x02 \x01(\x03\x12\x14\n\x0cmod_revision\x18\x03 \x01(\x03\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c\x12\r\n\x05lease\x18\x06 \x01(\x03\"\x91\x01\n\x05\x45vent\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.mvccpb.Event.EventType\x12\x1c\n\x02kv\x18\x02 \x01(\x0b\x32\x10.mvccpb.KeyValue\x12!\n\x07prev_kv\x18\x03 \x01(\x0b\x32\x10.mvccpb.KeyValue\" \n\tEventType\x12\x07\n\x03PUT\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x42\x15\n\x11io.etcd.jetcd.apiP\x01\x62\x06proto3') - - - -_KEYVALUE = DESCRIPTOR.message_types_by_name['KeyValue'] -_EVENT = DESCRIPTOR.message_types_by_name['Event'] -_EVENT_EVENTTYPE = _EVENT.enum_types_by_name['EventType'] -KeyValue = _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), { - 'DESCRIPTOR' : _KEYVALUE, - '__module__' : 'kv_pb2' - # @@protoc_insertion_point(class_scope:mvccpb.KeyValue) - }) -_sym_db.RegisterMessage(KeyValue) - -Event = _reflection.GeneratedProtocolMessageType('Event', (_message.Message,), { - 'DESCRIPTOR' : _EVENT, - '__module__' : 'kv_pb2' - # @@protoc_insertion_point(class_scope:mvccpb.Event) - }) -_sym_db.RegisterMessage(Event) - -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\021io.etcd.jetcd.apiP\001' - _KEYVALUE._serialized_start=20 - _KEYVALUE._serialized_end=137 - _EVENT._serialized_start=140 - _EVENT._serialized_end=285 - _EVENT_EVENTTYPE._serialized_start=253 - _EVENT_EVENTTYPE._serialized_end=285 -# @@protoc_insertion_point(module_scope) diff --git a/etcd3/etcdrpc/rpc_pb2.py b/etcd3/etcdrpc/rpc_pb2.py deleted file mode 100644 index 7eb99440..00000000 --- a/etcd3/etcdrpc/rpc_pb2.py +++ /dev/null @@ -1,900 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: rpc.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -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() - - -from etcd3.etcdrpc import kv_pb2 as kv__pb2 -from etcd3.etcdrpc import auth_pb2 as auth__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\trpc.proto\x12\x0c\x65tcdserverpb\x1a\x08kv.proto\x1a\nauth.proto\"\\\n\x0eResponseHeader\x12\x12\n\ncluster_id\x18\x01 \x01(\x04\x12\x11\n\tmember_id\x18\x02 \x01(\x04\x12\x10\n\x08revision\x18\x03 \x01(\x03\x12\x11\n\traft_term\x18\x04 \x01(\x04\"\xe4\x03\n\x0cRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x11\n\trange_end\x18\x02 \x01(\x0c\x12\r\n\x05limit\x18\x03 \x01(\x03\x12\x10\n\x08revision\x18\x04 \x01(\x03\x12\x38\n\nsort_order\x18\x05 \x01(\x0e\x32$.etcdserverpb.RangeRequest.SortOrder\x12:\n\x0bsort_target\x18\x06 \x01(\x0e\x32%.etcdserverpb.RangeRequest.SortTarget\x12\x14\n\x0cserializable\x18\x07 \x01(\x08\x12\x11\n\tkeys_only\x18\x08 \x01(\x08\x12\x12\n\ncount_only\x18\t \x01(\x08\x12\x18\n\x10min_mod_revision\x18\n \x01(\x03\x12\x18\n\x10max_mod_revision\x18\x0b \x01(\x03\x12\x1b\n\x13min_create_revision\x18\x0c \x01(\x03\x12\x1b\n\x13max_create_revision\x18\r \x01(\x03\".\n\tSortOrder\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06\x41SCEND\x10\x01\x12\x0b\n\x07\x44\x45SCEND\x10\x02\"B\n\nSortTarget\x12\x07\n\x03KEY\x10\x00\x12\x0b\n\x07VERSION\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\x07\n\x03MOD\x10\x03\x12\t\n\x05VALUE\x10\x04\"y\n\rRangeResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x1d\n\x03kvs\x18\x02 \x03(\x0b\x32\x10.mvccpb.KeyValue\x12\x0c\n\x04more\x18\x03 \x01(\x08\x12\r\n\x05\x63ount\x18\x04 \x01(\x03\"t\n\nPutRequest\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\r\n\x05lease\x18\x03 \x01(\x03\x12\x0f\n\x07prev_kv\x18\x04 \x01(\x08\x12\x14\n\x0cignore_value\x18\x05 \x01(\x08\x12\x14\n\x0cignore_lease\x18\x06 \x01(\x08\"^\n\x0bPutResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12!\n\x07prev_kv\x18\x02 \x01(\x0b\x32\x10.mvccpb.KeyValue\"E\n\x12\x44\x65leteRangeRequest\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x11\n\trange_end\x18\x02 \x01(\x0c\x12\x0f\n\x07prev_kv\x18\x03 \x01(\x08\"x\n\x13\x44\x65leteRangeResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x0f\n\x07\x64\x65leted\x18\x02 \x01(\x03\x12\"\n\x08prev_kvs\x18\x03 \x03(\x0b\x32\x10.mvccpb.KeyValue\"\xef\x01\n\tRequestOp\x12\x33\n\rrequest_range\x18\x01 \x01(\x0b\x32\x1a.etcdserverpb.RangeRequestH\x00\x12/\n\x0brequest_put\x18\x02 \x01(\x0b\x32\x18.etcdserverpb.PutRequestH\x00\x12@\n\x14request_delete_range\x18\x03 \x01(\x0b\x32 .etcdserverpb.DeleteRangeRequestH\x00\x12/\n\x0brequest_txn\x18\x04 \x01(\x0b\x32\x18.etcdserverpb.TxnRequestH\x00\x42\t\n\x07request\"\xf9\x01\n\nResponseOp\x12\x35\n\x0eresponse_range\x18\x01 \x01(\x0b\x32\x1b.etcdserverpb.RangeResponseH\x00\x12\x31\n\x0cresponse_put\x18\x02 \x01(\x0b\x32\x19.etcdserverpb.PutResponseH\x00\x12\x42\n\x15response_delete_range\x18\x03 \x01(\x0b\x32!.etcdserverpb.DeleteRangeResponseH\x00\x12\x31\n\x0cresponse_txn\x18\x04 \x01(\x0b\x32\x19.etcdserverpb.TxnResponseH\x00\x42\n\n\x08response\"\x96\x03\n\x07\x43ompare\x12\x33\n\x06result\x18\x01 \x01(\x0e\x32#.etcdserverpb.Compare.CompareResult\x12\x33\n\x06target\x18\x02 \x01(\x0e\x32#.etcdserverpb.Compare.CompareTarget\x12\x0b\n\x03key\x18\x03 \x01(\x0c\x12\x11\n\x07version\x18\x04 \x01(\x03H\x00\x12\x19\n\x0f\x63reate_revision\x18\x05 \x01(\x03H\x00\x12\x16\n\x0cmod_revision\x18\x06 \x01(\x03H\x00\x12\x0f\n\x05value\x18\x07 \x01(\x0cH\x00\x12\x0f\n\x05lease\x18\x08 \x01(\x03H\x00\x12\x11\n\trange_end\x18@ \x01(\x0c\"@\n\rCompareResult\x12\t\n\x05\x45QUAL\x10\x00\x12\x0b\n\x07GREATER\x10\x01\x12\x08\n\x04LESS\x10\x02\x12\r\n\tNOT_EQUAL\x10\x03\"G\n\rCompareTarget\x12\x0b\n\x07VERSION\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\x07\n\x03MOD\x10\x02\x12\t\n\x05VALUE\x10\x03\x12\t\n\x05LEASE\x10\x04\x42\x0e\n\x0ctarget_union\"\x88\x01\n\nTxnRequest\x12&\n\x07\x63ompare\x18\x01 \x03(\x0b\x32\x15.etcdserverpb.Compare\x12(\n\x07success\x18\x02 \x03(\x0b\x32\x17.etcdserverpb.RequestOp\x12(\n\x07\x66\x61ilure\x18\x03 \x03(\x0b\x32\x17.etcdserverpb.RequestOp\"{\n\x0bTxnResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x11\n\tsucceeded\x18\x02 \x01(\x08\x12+\n\tresponses\x18\x03 \x03(\x0b\x32\x18.etcdserverpb.ResponseOp\"7\n\x11\x43ompactionRequest\x12\x10\n\x08revision\x18\x01 \x01(\x03\x12\x10\n\x08physical\x18\x02 \x01(\x08\"B\n\x12\x43ompactionResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"\r\n\x0bHashRequest\"J\n\x0cHashResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x0c\n\x04hash\x18\x02 \x01(\r\"!\n\rHashKVRequest\x12\x10\n\x08revision\x18\x01 \x01(\x03\"f\n\x0eHashKVResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x0c\n\x04hash\x18\x02 \x01(\r\x12\x18\n\x10\x63ompact_revision\x18\x03 \x01(\x03\"\x11\n\x0fSnapshotRequest\"g\n\x10SnapshotResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x17\n\x0fremaining_bytes\x18\x02 \x01(\x04\x12\x0c\n\x04\x62lob\x18\x03 \x01(\x0c\"\xd7\x01\n\x0cWatchRequest\x12:\n\x0e\x63reate_request\x18\x01 \x01(\x0b\x32 .etcdserverpb.WatchCreateRequestH\x00\x12:\n\x0e\x63\x61ncel_request\x18\x02 \x01(\x0b\x32 .etcdserverpb.WatchCancelRequestH\x00\x12>\n\x10progress_request\x18\x03 \x01(\x0b\x32\".etcdserverpb.WatchProgressRequestH\x00\x42\x0f\n\rrequest_union\"\xdb\x01\n\x12WatchCreateRequest\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x11\n\trange_end\x18\x02 \x01(\x0c\x12\x16\n\x0estart_revision\x18\x03 \x01(\x03\x12\x17\n\x0fprogress_notify\x18\x04 \x01(\x08\x12<\n\x07\x66ilters\x18\x05 \x03(\x0e\x32+.etcdserverpb.WatchCreateRequest.FilterType\x12\x0f\n\x07prev_kv\x18\x06 \x01(\x08\"%\n\nFilterType\x12\t\n\x05NOPUT\x10\x00\x12\x0c\n\x08NODELETE\x10\x01\"&\n\x12WatchCancelRequest\x12\x10\n\x08watch_id\x18\x01 \x01(\x03\"\x16\n\x14WatchProgressRequest\"\xc2\x01\n\rWatchResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x10\n\x08watch_id\x18\x02 \x01(\x03\x12\x0f\n\x07\x63reated\x18\x03 \x01(\x08\x12\x10\n\x08\x63\x61nceled\x18\x04 \x01(\x08\x12\x18\n\x10\x63ompact_revision\x18\x05 \x01(\x03\x12\x15\n\rcancel_reason\x18\x06 \x01(\t\x12\x1d\n\x06\x65vents\x18\x0b \x03(\x0b\x32\r.mvccpb.Event\",\n\x11LeaseGrantRequest\x12\x0b\n\x03TTL\x18\x01 \x01(\x03\x12\n\n\x02ID\x18\x02 \x01(\x03\"j\n\x12LeaseGrantResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\n\n\x02ID\x18\x02 \x01(\x03\x12\x0b\n\x03TTL\x18\x03 \x01(\x03\x12\r\n\x05\x65rror\x18\x04 \x01(\t\" \n\x12LeaseRevokeRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\"C\n\x13LeaseRevokeResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"#\n\x15LeaseKeepAliveRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\"_\n\x16LeaseKeepAliveResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\n\n\x02ID\x18\x02 \x01(\x03\x12\x0b\n\x03TTL\x18\x03 \x01(\x03\"2\n\x16LeaseTimeToLiveRequest\x12\n\n\x02ID\x18\x01 \x01(\x03\x12\x0c\n\x04keys\x18\x02 \x01(\x08\"\x82\x01\n\x17LeaseTimeToLiveResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\n\n\x02ID\x18\x02 \x01(\x03\x12\x0b\n\x03TTL\x18\x03 \x01(\x03\x12\x12\n\ngrantedTTL\x18\x04 \x01(\x03\x12\x0c\n\x04keys\x18\x05 \x03(\x0c\"H\n\x06Member\x12\n\n\x02ID\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08peerURLs\x18\x03 \x03(\t\x12\x12\n\nclientURLs\x18\x04 \x03(\t\"$\n\x10MemberAddRequest\x12\x10\n\x08peerURLs\x18\x01 \x03(\t\"\x8e\x01\n\x11MemberAddResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12$\n\x06member\x18\x02 \x01(\x0b\x32\x14.etcdserverpb.Member\x12%\n\x07members\x18\x03 \x03(\x0b\x32\x14.etcdserverpb.Member\"!\n\x13MemberRemoveRequest\x12\n\n\x02ID\x18\x01 \x01(\x04\"k\n\x14MemberRemoveResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12%\n\x07members\x18\x02 \x03(\x0b\x32\x14.etcdserverpb.Member\"3\n\x13MemberUpdateRequest\x12\n\n\x02ID\x18\x01 \x01(\x04\x12\x10\n\x08peerURLs\x18\x02 \x03(\t\"k\n\x14MemberUpdateResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12%\n\x07members\x18\x02 \x03(\x0b\x32\x14.etcdserverpb.Member\"\x13\n\x11MemberListRequest\"i\n\x12MemberListResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12%\n\x07members\x18\x02 \x03(\x0b\x32\x14.etcdserverpb.Member\"\x13\n\x11\x44\x65\x66ragmentRequest\"B\n\x12\x44\x65\x66ragmentResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"%\n\x11MoveLeaderRequest\x12\x10\n\x08targetID\x18\x01 \x01(\x04\"B\n\x12MoveLeaderResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"\xb6\x01\n\x0c\x41larmRequest\x12\x36\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32&.etcdserverpb.AlarmRequest.AlarmAction\x12\x10\n\x08memberID\x18\x02 \x01(\x04\x12&\n\x05\x61larm\x18\x03 \x01(\x0e\x32\x17.etcdserverpb.AlarmType\"4\n\x0b\x41larmAction\x12\x07\n\x03GET\x10\x00\x12\x0c\n\x08\x41\x43TIVATE\x10\x01\x12\x0e\n\nDEACTIVATE\x10\x02\"G\n\x0b\x41larmMember\x12\x10\n\x08memberID\x18\x01 \x01(\x04\x12&\n\x05\x61larm\x18\x02 \x01(\x0e\x32\x17.etcdserverpb.AlarmType\"h\n\rAlarmResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12)\n\x06\x61larms\x18\x02 \x03(\x0b\x32\x19.etcdserverpb.AlarmMember\"\x0f\n\rStatusRequest\"\x94\x01\n\x0eStatusResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0e\n\x06\x64\x62Size\x18\x03 \x01(\x03\x12\x0e\n\x06leader\x18\x04 \x01(\x04\x12\x11\n\traftIndex\x18\x05 \x01(\x04\x12\x10\n\x08raftTerm\x18\x06 \x01(\x04\"\x13\n\x11\x41uthEnableRequest\"\x14\n\x12\x41uthDisableRequest\"5\n\x13\x41uthenticateRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"4\n\x12\x41uthUserAddRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"\"\n\x12\x41uthUserGetRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"%\n\x15\x41uthUserDeleteRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"?\n\x1d\x41uthUserChangePasswordRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\"6\n\x18\x41uthUserGrantRoleRequest\x12\x0c\n\x04user\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\"7\n\x19\x41uthUserRevokeRoleRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04role\x18\x02 \x01(\t\"\"\n\x12\x41uthRoleAddRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\"\n\x12\x41uthRoleGetRequest\x12\x0c\n\x04role\x18\x01 \x01(\t\"\x15\n\x13\x41uthUserListRequest\"\x15\n\x13\x41uthRoleListRequest\"%\n\x15\x41uthRoleDeleteRequest\x12\x0c\n\x04role\x18\x01 \x01(\t\"P\n\x1e\x41uthRoleGrantPermissionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12 \n\x04perm\x18\x02 \x01(\x0b\x32\x12.authpb.Permission\"O\n\x1f\x41uthRoleRevokePermissionRequest\x12\x0c\n\x04role\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x11\n\trange_end\x18\x03 \x01(\t\"B\n\x12\x41uthEnableResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"C\n\x13\x41uthDisableResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"S\n\x14\x41uthenticateResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\r\n\x05token\x18\x02 \x01(\t\"C\n\x13\x41uthUserAddResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"R\n\x13\x41uthUserGetResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\r\n\x05roles\x18\x02 \x03(\t\"F\n\x16\x41uthUserDeleteResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"N\n\x1e\x41uthUserChangePasswordResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"I\n\x19\x41uthUserGrantRoleResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"J\n\x1a\x41uthUserRevokeRoleResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"C\n\x13\x41uthRoleAddResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"e\n\x13\x41uthRoleGetResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12 \n\x04perm\x18\x02 \x03(\x0b\x32\x12.authpb.Permission\"S\n\x14\x41uthRoleListResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\r\n\x05roles\x18\x02 \x03(\t\"S\n\x14\x41uthUserListResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\x12\r\n\x05users\x18\x02 \x03(\t\"F\n\x16\x41uthRoleDeleteResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"O\n\x1f\x41uthRoleGrantPermissionResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader\"P\n AuthRoleRevokePermissionResponse\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.etcdserverpb.ResponseHeader*\"\n\tAlarmType\x12\x08\n\x04NONE\x10\x00\x12\x0b\n\x07NOSPACE\x10\x01\x32\xea\x02\n\x02KV\x12\x42\n\x05Range\x12\x1a.etcdserverpb.RangeRequest\x1a\x1b.etcdserverpb.RangeResponse\"\x00\x12<\n\x03Put\x12\x18.etcdserverpb.PutRequest\x1a\x19.etcdserverpb.PutResponse\"\x00\x12T\n\x0b\x44\x65leteRange\x12 .etcdserverpb.DeleteRangeRequest\x1a!.etcdserverpb.DeleteRangeResponse\"\x00\x12<\n\x03Txn\x12\x18.etcdserverpb.TxnRequest\x1a\x19.etcdserverpb.TxnResponse\"\x00\x12N\n\x07\x43ompact\x12\x1f.etcdserverpb.CompactionRequest\x1a .etcdserverpb.CompactionResponse\"\x00\x32\x9e\x01\n\x05Watch\x12M\n\x08Progress\x12\".etcdserverpb.WatchProgressRequest\x1a\x1b.etcdserverpb.WatchResponse\"\x00\x12\x46\n\x05Watch\x12\x1a.etcdserverpb.WatchRequest\x1a\x1b.etcdserverpb.WatchResponse\"\x00(\x01\x30\x01\x32\xf5\x02\n\x05Lease\x12Q\n\nLeaseGrant\x12\x1f.etcdserverpb.LeaseGrantRequest\x1a .etcdserverpb.LeaseGrantResponse\"\x00\x12T\n\x0bLeaseRevoke\x12 .etcdserverpb.LeaseRevokeRequest\x1a!.etcdserverpb.LeaseRevokeResponse\"\x00\x12\x61\n\x0eLeaseKeepAlive\x12#.etcdserverpb.LeaseKeepAliveRequest\x1a$.etcdserverpb.LeaseKeepAliveResponse\"\x00(\x01\x30\x01\x12`\n\x0fLeaseTimeToLive\x12$.etcdserverpb.LeaseTimeToLiveRequest\x1a%.etcdserverpb.LeaseTimeToLiveResponse\"\x00\x32\xde\x02\n\x07\x43luster\x12N\n\tMemberAdd\x12\x1e.etcdserverpb.MemberAddRequest\x1a\x1f.etcdserverpb.MemberAddResponse\"\x00\x12W\n\x0cMemberRemove\x12!.etcdserverpb.MemberRemoveRequest\x1a\".etcdserverpb.MemberRemoveResponse\"\x00\x12W\n\x0cMemberUpdate\x12!.etcdserverpb.MemberUpdateRequest\x1a\".etcdserverpb.MemberUpdateResponse\"\x00\x12Q\n\nMemberList\x12\x1f.etcdserverpb.MemberListRequest\x1a .etcdserverpb.MemberListResponse\"\x00\x32\x95\x04\n\x0bMaintenance\x12\x42\n\x05\x41larm\x12\x1a.etcdserverpb.AlarmRequest\x1a\x1b.etcdserverpb.AlarmResponse\"\x00\x12\x45\n\x06Status\x12\x1b.etcdserverpb.StatusRequest\x1a\x1c.etcdserverpb.StatusResponse\"\x00\x12Q\n\nDefragment\x12\x1f.etcdserverpb.DefragmentRequest\x1a .etcdserverpb.DefragmentResponse\"\x00\x12?\n\x04Hash\x12\x19.etcdserverpb.HashRequest\x1a\x1a.etcdserverpb.HashResponse\"\x00\x12\x45\n\x06HashKV\x12\x1b.etcdserverpb.HashKVRequest\x1a\x1c.etcdserverpb.HashKVResponse\"\x00\x12M\n\x08Snapshot\x12\x1d.etcdserverpb.SnapshotRequest\x1a\x1e.etcdserverpb.SnapshotResponse\"\x00\x30\x01\x12Q\n\nMoveLeader\x12\x1f.etcdserverpb.MoveLeaderRequest\x1a .etcdserverpb.MoveLeaderResponse\"\x00\x32\xdd\x0b\n\x04\x41uth\x12Q\n\nAuthEnable\x12\x1f.etcdserverpb.AuthEnableRequest\x1a .etcdserverpb.AuthEnableResponse\"\x00\x12T\n\x0b\x41uthDisable\x12 .etcdserverpb.AuthDisableRequest\x1a!.etcdserverpb.AuthDisableResponse\"\x00\x12W\n\x0c\x41uthenticate\x12!.etcdserverpb.AuthenticateRequest\x1a\".etcdserverpb.AuthenticateResponse\"\x00\x12P\n\x07UserAdd\x12 .etcdserverpb.AuthUserAddRequest\x1a!.etcdserverpb.AuthUserAddResponse\"\x00\x12P\n\x07UserGet\x12 .etcdserverpb.AuthUserGetRequest\x1a!.etcdserverpb.AuthUserGetResponse\"\x00\x12S\n\x08UserList\x12!.etcdserverpb.AuthUserListRequest\x1a\".etcdserverpb.AuthUserListResponse\"\x00\x12Y\n\nUserDelete\x12#.etcdserverpb.AuthUserDeleteRequest\x1a$.etcdserverpb.AuthUserDeleteResponse\"\x00\x12q\n\x12UserChangePassword\x12+.etcdserverpb.AuthUserChangePasswordRequest\x1a,.etcdserverpb.AuthUserChangePasswordResponse\"\x00\x12\x62\n\rUserGrantRole\x12&.etcdserverpb.AuthUserGrantRoleRequest\x1a\'.etcdserverpb.AuthUserGrantRoleResponse\"\x00\x12\x65\n\x0eUserRevokeRole\x12\'.etcdserverpb.AuthUserRevokeRoleRequest\x1a(.etcdserverpb.AuthUserRevokeRoleResponse\"\x00\x12P\n\x07RoleAdd\x12 .etcdserverpb.AuthRoleAddRequest\x1a!.etcdserverpb.AuthRoleAddResponse\"\x00\x12P\n\x07RoleGet\x12 .etcdserverpb.AuthRoleGetRequest\x1a!.etcdserverpb.AuthRoleGetResponse\"\x00\x12S\n\x08RoleList\x12!.etcdserverpb.AuthRoleListRequest\x1a\".etcdserverpb.AuthRoleListResponse\"\x00\x12Y\n\nRoleDelete\x12#.etcdserverpb.AuthRoleDeleteRequest\x1a$.etcdserverpb.AuthRoleDeleteResponse\"\x00\x12t\n\x13RoleGrantPermission\x12,.etcdserverpb.AuthRoleGrantPermissionRequest\x1a-.etcdserverpb.AuthRoleGrantPermissionResponse\"\x00\x12w\n\x14RoleRevokePermission\x12-.etcdserverpb.AuthRoleRevokePermissionRequest\x1a..etcdserverpb.AuthRoleRevokePermissionResponse\"\x00\x42)\n\x11io.etcd.jetcd.apiB\nJetcdProtoP\x01\xa2\x02\x05Jetcdb\x06proto3') - -_ALARMTYPE = DESCRIPTOR.enum_types_by_name['AlarmType'] -AlarmType = enum_type_wrapper.EnumTypeWrapper(_ALARMTYPE) -NONE = 0 -NOSPACE = 1 - - -_RESPONSEHEADER = DESCRIPTOR.message_types_by_name['ResponseHeader'] -_RANGEREQUEST = DESCRIPTOR.message_types_by_name['RangeRequest'] -_RANGERESPONSE = DESCRIPTOR.message_types_by_name['RangeResponse'] -_PUTREQUEST = DESCRIPTOR.message_types_by_name['PutRequest'] -_PUTRESPONSE = DESCRIPTOR.message_types_by_name['PutResponse'] -_DELETERANGEREQUEST = DESCRIPTOR.message_types_by_name['DeleteRangeRequest'] -_DELETERANGERESPONSE = DESCRIPTOR.message_types_by_name['DeleteRangeResponse'] -_REQUESTOP = DESCRIPTOR.message_types_by_name['RequestOp'] -_RESPONSEOP = DESCRIPTOR.message_types_by_name['ResponseOp'] -_COMPARE = DESCRIPTOR.message_types_by_name['Compare'] -_TXNREQUEST = DESCRIPTOR.message_types_by_name['TxnRequest'] -_TXNRESPONSE = DESCRIPTOR.message_types_by_name['TxnResponse'] -_COMPACTIONREQUEST = DESCRIPTOR.message_types_by_name['CompactionRequest'] -_COMPACTIONRESPONSE = DESCRIPTOR.message_types_by_name['CompactionResponse'] -_HASHREQUEST = DESCRIPTOR.message_types_by_name['HashRequest'] -_HASHRESPONSE = DESCRIPTOR.message_types_by_name['HashResponse'] -_HASHKVREQUEST = DESCRIPTOR.message_types_by_name['HashKVRequest'] -_HASHKVRESPONSE = DESCRIPTOR.message_types_by_name['HashKVResponse'] -_SNAPSHOTREQUEST = DESCRIPTOR.message_types_by_name['SnapshotRequest'] -_SNAPSHOTRESPONSE = DESCRIPTOR.message_types_by_name['SnapshotResponse'] -_WATCHREQUEST = DESCRIPTOR.message_types_by_name['WatchRequest'] -_WATCHCREATEREQUEST = DESCRIPTOR.message_types_by_name['WatchCreateRequest'] -_WATCHCANCELREQUEST = DESCRIPTOR.message_types_by_name['WatchCancelRequest'] -_WATCHPROGRESSREQUEST = DESCRIPTOR.message_types_by_name['WatchProgressRequest'] -_WATCHRESPONSE = DESCRIPTOR.message_types_by_name['WatchResponse'] -_LEASEGRANTREQUEST = DESCRIPTOR.message_types_by_name['LeaseGrantRequest'] -_LEASEGRANTRESPONSE = DESCRIPTOR.message_types_by_name['LeaseGrantResponse'] -_LEASEREVOKEREQUEST = DESCRIPTOR.message_types_by_name['LeaseRevokeRequest'] -_LEASEREVOKERESPONSE = DESCRIPTOR.message_types_by_name['LeaseRevokeResponse'] -_LEASEKEEPALIVEREQUEST = DESCRIPTOR.message_types_by_name['LeaseKeepAliveRequest'] -_LEASEKEEPALIVERESPONSE = DESCRIPTOR.message_types_by_name['LeaseKeepAliveResponse'] -_LEASETIMETOLIVEREQUEST = DESCRIPTOR.message_types_by_name['LeaseTimeToLiveRequest'] -_LEASETIMETOLIVERESPONSE = DESCRIPTOR.message_types_by_name['LeaseTimeToLiveResponse'] -_MEMBER = DESCRIPTOR.message_types_by_name['Member'] -_MEMBERADDREQUEST = DESCRIPTOR.message_types_by_name['MemberAddRequest'] -_MEMBERADDRESPONSE = DESCRIPTOR.message_types_by_name['MemberAddResponse'] -_MEMBERREMOVEREQUEST = DESCRIPTOR.message_types_by_name['MemberRemoveRequest'] -_MEMBERREMOVERESPONSE = DESCRIPTOR.message_types_by_name['MemberRemoveResponse'] -_MEMBERUPDATEREQUEST = DESCRIPTOR.message_types_by_name['MemberUpdateRequest'] -_MEMBERUPDATERESPONSE = DESCRIPTOR.message_types_by_name['MemberUpdateResponse'] -_MEMBERLISTREQUEST = DESCRIPTOR.message_types_by_name['MemberListRequest'] -_MEMBERLISTRESPONSE = DESCRIPTOR.message_types_by_name['MemberListResponse'] -_DEFRAGMENTREQUEST = DESCRIPTOR.message_types_by_name['DefragmentRequest'] -_DEFRAGMENTRESPONSE = DESCRIPTOR.message_types_by_name['DefragmentResponse'] -_MOVELEADERREQUEST = DESCRIPTOR.message_types_by_name['MoveLeaderRequest'] -_MOVELEADERRESPONSE = DESCRIPTOR.message_types_by_name['MoveLeaderResponse'] -_ALARMREQUEST = DESCRIPTOR.message_types_by_name['AlarmRequest'] -_ALARMMEMBER = DESCRIPTOR.message_types_by_name['AlarmMember'] -_ALARMRESPONSE = DESCRIPTOR.message_types_by_name['AlarmResponse'] -_STATUSREQUEST = DESCRIPTOR.message_types_by_name['StatusRequest'] -_STATUSRESPONSE = DESCRIPTOR.message_types_by_name['StatusResponse'] -_AUTHENABLEREQUEST = DESCRIPTOR.message_types_by_name['AuthEnableRequest'] -_AUTHDISABLEREQUEST = DESCRIPTOR.message_types_by_name['AuthDisableRequest'] -_AUTHENTICATEREQUEST = DESCRIPTOR.message_types_by_name['AuthenticateRequest'] -_AUTHUSERADDREQUEST = DESCRIPTOR.message_types_by_name['AuthUserAddRequest'] -_AUTHUSERGETREQUEST = DESCRIPTOR.message_types_by_name['AuthUserGetRequest'] -_AUTHUSERDELETEREQUEST = DESCRIPTOR.message_types_by_name['AuthUserDeleteRequest'] -_AUTHUSERCHANGEPASSWORDREQUEST = DESCRIPTOR.message_types_by_name['AuthUserChangePasswordRequest'] -_AUTHUSERGRANTROLEREQUEST = DESCRIPTOR.message_types_by_name['AuthUserGrantRoleRequest'] -_AUTHUSERREVOKEROLEREQUEST = DESCRIPTOR.message_types_by_name['AuthUserRevokeRoleRequest'] -_AUTHROLEADDREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleAddRequest'] -_AUTHROLEGETREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleGetRequest'] -_AUTHUSERLISTREQUEST = DESCRIPTOR.message_types_by_name['AuthUserListRequest'] -_AUTHROLELISTREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleListRequest'] -_AUTHROLEDELETEREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleDeleteRequest'] -_AUTHROLEGRANTPERMISSIONREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleGrantPermissionRequest'] -_AUTHROLEREVOKEPERMISSIONREQUEST = DESCRIPTOR.message_types_by_name['AuthRoleRevokePermissionRequest'] -_AUTHENABLERESPONSE = DESCRIPTOR.message_types_by_name['AuthEnableResponse'] -_AUTHDISABLERESPONSE = DESCRIPTOR.message_types_by_name['AuthDisableResponse'] -_AUTHENTICATERESPONSE = DESCRIPTOR.message_types_by_name['AuthenticateResponse'] -_AUTHUSERADDRESPONSE = DESCRIPTOR.message_types_by_name['AuthUserAddResponse'] -_AUTHUSERGETRESPONSE = DESCRIPTOR.message_types_by_name['AuthUserGetResponse'] -_AUTHUSERDELETERESPONSE = DESCRIPTOR.message_types_by_name['AuthUserDeleteResponse'] -_AUTHUSERCHANGEPASSWORDRESPONSE = DESCRIPTOR.message_types_by_name['AuthUserChangePasswordResponse'] -_AUTHUSERGRANTROLERESPONSE = DESCRIPTOR.message_types_by_name['AuthUserGrantRoleResponse'] -_AUTHUSERREVOKEROLERESPONSE = DESCRIPTOR.message_types_by_name['AuthUserRevokeRoleResponse'] -_AUTHROLEADDRESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleAddResponse'] -_AUTHROLEGETRESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleGetResponse'] -_AUTHROLELISTRESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleListResponse'] -_AUTHUSERLISTRESPONSE = DESCRIPTOR.message_types_by_name['AuthUserListResponse'] -_AUTHROLEDELETERESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleDeleteResponse'] -_AUTHROLEGRANTPERMISSIONRESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleGrantPermissionResponse'] -_AUTHROLEREVOKEPERMISSIONRESPONSE = DESCRIPTOR.message_types_by_name['AuthRoleRevokePermissionResponse'] -_RANGEREQUEST_SORTORDER = _RANGEREQUEST.enum_types_by_name['SortOrder'] -_RANGEREQUEST_SORTTARGET = _RANGEREQUEST.enum_types_by_name['SortTarget'] -_COMPARE_COMPARERESULT = _COMPARE.enum_types_by_name['CompareResult'] -_COMPARE_COMPARETARGET = _COMPARE.enum_types_by_name['CompareTarget'] -_WATCHCREATEREQUEST_FILTERTYPE = _WATCHCREATEREQUEST.enum_types_by_name['FilterType'] -_ALARMREQUEST_ALARMACTION = _ALARMREQUEST.enum_types_by_name['AlarmAction'] -ResponseHeader = _reflection.GeneratedProtocolMessageType('ResponseHeader', (_message.Message,), { - 'DESCRIPTOR' : _RESPONSEHEADER, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.ResponseHeader) - }) -_sym_db.RegisterMessage(ResponseHeader) - -RangeRequest = _reflection.GeneratedProtocolMessageType('RangeRequest', (_message.Message,), { - 'DESCRIPTOR' : _RANGEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.RangeRequest) - }) -_sym_db.RegisterMessage(RangeRequest) - -RangeResponse = _reflection.GeneratedProtocolMessageType('RangeResponse', (_message.Message,), { - 'DESCRIPTOR' : _RANGERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.RangeResponse) - }) -_sym_db.RegisterMessage(RangeResponse) - -PutRequest = _reflection.GeneratedProtocolMessageType('PutRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.PutRequest) - }) -_sym_db.RegisterMessage(PutRequest) - -PutResponse = _reflection.GeneratedProtocolMessageType('PutResponse', (_message.Message,), { - 'DESCRIPTOR' : _PUTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.PutResponse) - }) -_sym_db.RegisterMessage(PutResponse) - -DeleteRangeRequest = _reflection.GeneratedProtocolMessageType('DeleteRangeRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETERANGEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.DeleteRangeRequest) - }) -_sym_db.RegisterMessage(DeleteRangeRequest) - -DeleteRangeResponse = _reflection.GeneratedProtocolMessageType('DeleteRangeResponse', (_message.Message,), { - 'DESCRIPTOR' : _DELETERANGERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.DeleteRangeResponse) - }) -_sym_db.RegisterMessage(DeleteRangeResponse) - -RequestOp = _reflection.GeneratedProtocolMessageType('RequestOp', (_message.Message,), { - 'DESCRIPTOR' : _REQUESTOP, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.RequestOp) - }) -_sym_db.RegisterMessage(RequestOp) - -ResponseOp = _reflection.GeneratedProtocolMessageType('ResponseOp', (_message.Message,), { - 'DESCRIPTOR' : _RESPONSEOP, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.ResponseOp) - }) -_sym_db.RegisterMessage(ResponseOp) - -Compare = _reflection.GeneratedProtocolMessageType('Compare', (_message.Message,), { - 'DESCRIPTOR' : _COMPARE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.Compare) - }) -_sym_db.RegisterMessage(Compare) - -TxnRequest = _reflection.GeneratedProtocolMessageType('TxnRequest', (_message.Message,), { - 'DESCRIPTOR' : _TXNREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.TxnRequest) - }) -_sym_db.RegisterMessage(TxnRequest) - -TxnResponse = _reflection.GeneratedProtocolMessageType('TxnResponse', (_message.Message,), { - 'DESCRIPTOR' : _TXNRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.TxnResponse) - }) -_sym_db.RegisterMessage(TxnResponse) - -CompactionRequest = _reflection.GeneratedProtocolMessageType('CompactionRequest', (_message.Message,), { - 'DESCRIPTOR' : _COMPACTIONREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.CompactionRequest) - }) -_sym_db.RegisterMessage(CompactionRequest) - -CompactionResponse = _reflection.GeneratedProtocolMessageType('CompactionResponse', (_message.Message,), { - 'DESCRIPTOR' : _COMPACTIONRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.CompactionResponse) - }) -_sym_db.RegisterMessage(CompactionResponse) - -HashRequest = _reflection.GeneratedProtocolMessageType('HashRequest', (_message.Message,), { - 'DESCRIPTOR' : _HASHREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.HashRequest) - }) -_sym_db.RegisterMessage(HashRequest) - -HashResponse = _reflection.GeneratedProtocolMessageType('HashResponse', (_message.Message,), { - 'DESCRIPTOR' : _HASHRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.HashResponse) - }) -_sym_db.RegisterMessage(HashResponse) - -HashKVRequest = _reflection.GeneratedProtocolMessageType('HashKVRequest', (_message.Message,), { - 'DESCRIPTOR' : _HASHKVREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.HashKVRequest) - }) -_sym_db.RegisterMessage(HashKVRequest) - -HashKVResponse = _reflection.GeneratedProtocolMessageType('HashKVResponse', (_message.Message,), { - 'DESCRIPTOR' : _HASHKVRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.HashKVResponse) - }) -_sym_db.RegisterMessage(HashKVResponse) - -SnapshotRequest = _reflection.GeneratedProtocolMessageType('SnapshotRequest', (_message.Message,), { - 'DESCRIPTOR' : _SNAPSHOTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.SnapshotRequest) - }) -_sym_db.RegisterMessage(SnapshotRequest) - -SnapshotResponse = _reflection.GeneratedProtocolMessageType('SnapshotResponse', (_message.Message,), { - 'DESCRIPTOR' : _SNAPSHOTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.SnapshotResponse) - }) -_sym_db.RegisterMessage(SnapshotResponse) - -WatchRequest = _reflection.GeneratedProtocolMessageType('WatchRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.WatchRequest) - }) -_sym_db.RegisterMessage(WatchRequest) - -WatchCreateRequest = _reflection.GeneratedProtocolMessageType('WatchCreateRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHCREATEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.WatchCreateRequest) - }) -_sym_db.RegisterMessage(WatchCreateRequest) - -WatchCancelRequest = _reflection.GeneratedProtocolMessageType('WatchCancelRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHCANCELREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.WatchCancelRequest) - }) -_sym_db.RegisterMessage(WatchCancelRequest) - -WatchProgressRequest = _reflection.GeneratedProtocolMessageType('WatchProgressRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHPROGRESSREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.WatchProgressRequest) - }) -_sym_db.RegisterMessage(WatchProgressRequest) - -WatchResponse = _reflection.GeneratedProtocolMessageType('WatchResponse', (_message.Message,), { - 'DESCRIPTOR' : _WATCHRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.WatchResponse) - }) -_sym_db.RegisterMessage(WatchResponse) - -LeaseGrantRequest = _reflection.GeneratedProtocolMessageType('LeaseGrantRequest', (_message.Message,), { - 'DESCRIPTOR' : _LEASEGRANTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseGrantRequest) - }) -_sym_db.RegisterMessage(LeaseGrantRequest) - -LeaseGrantResponse = _reflection.GeneratedProtocolMessageType('LeaseGrantResponse', (_message.Message,), { - 'DESCRIPTOR' : _LEASEGRANTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseGrantResponse) - }) -_sym_db.RegisterMessage(LeaseGrantResponse) - -LeaseRevokeRequest = _reflection.GeneratedProtocolMessageType('LeaseRevokeRequest', (_message.Message,), { - 'DESCRIPTOR' : _LEASEREVOKEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseRevokeRequest) - }) -_sym_db.RegisterMessage(LeaseRevokeRequest) - -LeaseRevokeResponse = _reflection.GeneratedProtocolMessageType('LeaseRevokeResponse', (_message.Message,), { - 'DESCRIPTOR' : _LEASEREVOKERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseRevokeResponse) - }) -_sym_db.RegisterMessage(LeaseRevokeResponse) - -LeaseKeepAliveRequest = _reflection.GeneratedProtocolMessageType('LeaseKeepAliveRequest', (_message.Message,), { - 'DESCRIPTOR' : _LEASEKEEPALIVEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseKeepAliveRequest) - }) -_sym_db.RegisterMessage(LeaseKeepAliveRequest) - -LeaseKeepAliveResponse = _reflection.GeneratedProtocolMessageType('LeaseKeepAliveResponse', (_message.Message,), { - 'DESCRIPTOR' : _LEASEKEEPALIVERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseKeepAliveResponse) - }) -_sym_db.RegisterMessage(LeaseKeepAliveResponse) - -LeaseTimeToLiveRequest = _reflection.GeneratedProtocolMessageType('LeaseTimeToLiveRequest', (_message.Message,), { - 'DESCRIPTOR' : _LEASETIMETOLIVEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseTimeToLiveRequest) - }) -_sym_db.RegisterMessage(LeaseTimeToLiveRequest) - -LeaseTimeToLiveResponse = _reflection.GeneratedProtocolMessageType('LeaseTimeToLiveResponse', (_message.Message,), { - 'DESCRIPTOR' : _LEASETIMETOLIVERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.LeaseTimeToLiveResponse) - }) -_sym_db.RegisterMessage(LeaseTimeToLiveResponse) - -Member = _reflection.GeneratedProtocolMessageType('Member', (_message.Message,), { - 'DESCRIPTOR' : _MEMBER, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.Member) - }) -_sym_db.RegisterMessage(Member) - -MemberAddRequest = _reflection.GeneratedProtocolMessageType('MemberAddRequest', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERADDREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberAddRequest) - }) -_sym_db.RegisterMessage(MemberAddRequest) - -MemberAddResponse = _reflection.GeneratedProtocolMessageType('MemberAddResponse', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERADDRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberAddResponse) - }) -_sym_db.RegisterMessage(MemberAddResponse) - -MemberRemoveRequest = _reflection.GeneratedProtocolMessageType('MemberRemoveRequest', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERREMOVEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberRemoveRequest) - }) -_sym_db.RegisterMessage(MemberRemoveRequest) - -MemberRemoveResponse = _reflection.GeneratedProtocolMessageType('MemberRemoveResponse', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERREMOVERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberRemoveResponse) - }) -_sym_db.RegisterMessage(MemberRemoveResponse) - -MemberUpdateRequest = _reflection.GeneratedProtocolMessageType('MemberUpdateRequest', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERUPDATEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberUpdateRequest) - }) -_sym_db.RegisterMessage(MemberUpdateRequest) - -MemberUpdateResponse = _reflection.GeneratedProtocolMessageType('MemberUpdateResponse', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERUPDATERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberUpdateResponse) - }) -_sym_db.RegisterMessage(MemberUpdateResponse) - -MemberListRequest = _reflection.GeneratedProtocolMessageType('MemberListRequest', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERLISTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberListRequest) - }) -_sym_db.RegisterMessage(MemberListRequest) - -MemberListResponse = _reflection.GeneratedProtocolMessageType('MemberListResponse', (_message.Message,), { - 'DESCRIPTOR' : _MEMBERLISTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MemberListResponse) - }) -_sym_db.RegisterMessage(MemberListResponse) - -DefragmentRequest = _reflection.GeneratedProtocolMessageType('DefragmentRequest', (_message.Message,), { - 'DESCRIPTOR' : _DEFRAGMENTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.DefragmentRequest) - }) -_sym_db.RegisterMessage(DefragmentRequest) - -DefragmentResponse = _reflection.GeneratedProtocolMessageType('DefragmentResponse', (_message.Message,), { - 'DESCRIPTOR' : _DEFRAGMENTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.DefragmentResponse) - }) -_sym_db.RegisterMessage(DefragmentResponse) - -MoveLeaderRequest = _reflection.GeneratedProtocolMessageType('MoveLeaderRequest', (_message.Message,), { - 'DESCRIPTOR' : _MOVELEADERREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MoveLeaderRequest) - }) -_sym_db.RegisterMessage(MoveLeaderRequest) - -MoveLeaderResponse = _reflection.GeneratedProtocolMessageType('MoveLeaderResponse', (_message.Message,), { - 'DESCRIPTOR' : _MOVELEADERRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.MoveLeaderResponse) - }) -_sym_db.RegisterMessage(MoveLeaderResponse) - -AlarmRequest = _reflection.GeneratedProtocolMessageType('AlarmRequest', (_message.Message,), { - 'DESCRIPTOR' : _ALARMREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AlarmRequest) - }) -_sym_db.RegisterMessage(AlarmRequest) - -AlarmMember = _reflection.GeneratedProtocolMessageType('AlarmMember', (_message.Message,), { - 'DESCRIPTOR' : _ALARMMEMBER, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AlarmMember) - }) -_sym_db.RegisterMessage(AlarmMember) - -AlarmResponse = _reflection.GeneratedProtocolMessageType('AlarmResponse', (_message.Message,), { - 'DESCRIPTOR' : _ALARMRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AlarmResponse) - }) -_sym_db.RegisterMessage(AlarmResponse) - -StatusRequest = _reflection.GeneratedProtocolMessageType('StatusRequest', (_message.Message,), { - 'DESCRIPTOR' : _STATUSREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.StatusRequest) - }) -_sym_db.RegisterMessage(StatusRequest) - -StatusResponse = _reflection.GeneratedProtocolMessageType('StatusResponse', (_message.Message,), { - 'DESCRIPTOR' : _STATUSRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.StatusResponse) - }) -_sym_db.RegisterMessage(StatusResponse) - -AuthEnableRequest = _reflection.GeneratedProtocolMessageType('AuthEnableRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENABLEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthEnableRequest) - }) -_sym_db.RegisterMessage(AuthEnableRequest) - -AuthDisableRequest = _reflection.GeneratedProtocolMessageType('AuthDisableRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHDISABLEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthDisableRequest) - }) -_sym_db.RegisterMessage(AuthDisableRequest) - -AuthenticateRequest = _reflection.GeneratedProtocolMessageType('AuthenticateRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENTICATEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthenticateRequest) - }) -_sym_db.RegisterMessage(AuthenticateRequest) - -AuthUserAddRequest = _reflection.GeneratedProtocolMessageType('AuthUserAddRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERADDREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserAddRequest) - }) -_sym_db.RegisterMessage(AuthUserAddRequest) - -AuthUserGetRequest = _reflection.GeneratedProtocolMessageType('AuthUserGetRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERGETREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserGetRequest) - }) -_sym_db.RegisterMessage(AuthUserGetRequest) - -AuthUserDeleteRequest = _reflection.GeneratedProtocolMessageType('AuthUserDeleteRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERDELETEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserDeleteRequest) - }) -_sym_db.RegisterMessage(AuthUserDeleteRequest) - -AuthUserChangePasswordRequest = _reflection.GeneratedProtocolMessageType('AuthUserChangePasswordRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERCHANGEPASSWORDREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserChangePasswordRequest) - }) -_sym_db.RegisterMessage(AuthUserChangePasswordRequest) - -AuthUserGrantRoleRequest = _reflection.GeneratedProtocolMessageType('AuthUserGrantRoleRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERGRANTROLEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserGrantRoleRequest) - }) -_sym_db.RegisterMessage(AuthUserGrantRoleRequest) - -AuthUserRevokeRoleRequest = _reflection.GeneratedProtocolMessageType('AuthUserRevokeRoleRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERREVOKEROLEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserRevokeRoleRequest) - }) -_sym_db.RegisterMessage(AuthUserRevokeRoleRequest) - -AuthRoleAddRequest = _reflection.GeneratedProtocolMessageType('AuthRoleAddRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEADDREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleAddRequest) - }) -_sym_db.RegisterMessage(AuthRoleAddRequest) - -AuthRoleGetRequest = _reflection.GeneratedProtocolMessageType('AuthRoleGetRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEGETREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleGetRequest) - }) -_sym_db.RegisterMessage(AuthRoleGetRequest) - -AuthUserListRequest = _reflection.GeneratedProtocolMessageType('AuthUserListRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERLISTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserListRequest) - }) -_sym_db.RegisterMessage(AuthUserListRequest) - -AuthRoleListRequest = _reflection.GeneratedProtocolMessageType('AuthRoleListRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLELISTREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleListRequest) - }) -_sym_db.RegisterMessage(AuthRoleListRequest) - -AuthRoleDeleteRequest = _reflection.GeneratedProtocolMessageType('AuthRoleDeleteRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEDELETEREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleDeleteRequest) - }) -_sym_db.RegisterMessage(AuthRoleDeleteRequest) - -AuthRoleGrantPermissionRequest = _reflection.GeneratedProtocolMessageType('AuthRoleGrantPermissionRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEGRANTPERMISSIONREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleGrantPermissionRequest) - }) -_sym_db.RegisterMessage(AuthRoleGrantPermissionRequest) - -AuthRoleRevokePermissionRequest = _reflection.GeneratedProtocolMessageType('AuthRoleRevokePermissionRequest', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEREVOKEPERMISSIONREQUEST, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleRevokePermissionRequest) - }) -_sym_db.RegisterMessage(AuthRoleRevokePermissionRequest) - -AuthEnableResponse = _reflection.GeneratedProtocolMessageType('AuthEnableResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENABLERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthEnableResponse) - }) -_sym_db.RegisterMessage(AuthEnableResponse) - -AuthDisableResponse = _reflection.GeneratedProtocolMessageType('AuthDisableResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHDISABLERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthDisableResponse) - }) -_sym_db.RegisterMessage(AuthDisableResponse) - -AuthenticateResponse = _reflection.GeneratedProtocolMessageType('AuthenticateResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENTICATERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthenticateResponse) - }) -_sym_db.RegisterMessage(AuthenticateResponse) - -AuthUserAddResponse = _reflection.GeneratedProtocolMessageType('AuthUserAddResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERADDRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserAddResponse) - }) -_sym_db.RegisterMessage(AuthUserAddResponse) - -AuthUserGetResponse = _reflection.GeneratedProtocolMessageType('AuthUserGetResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERGETRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserGetResponse) - }) -_sym_db.RegisterMessage(AuthUserGetResponse) - -AuthUserDeleteResponse = _reflection.GeneratedProtocolMessageType('AuthUserDeleteResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERDELETERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserDeleteResponse) - }) -_sym_db.RegisterMessage(AuthUserDeleteResponse) - -AuthUserChangePasswordResponse = _reflection.GeneratedProtocolMessageType('AuthUserChangePasswordResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERCHANGEPASSWORDRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserChangePasswordResponse) - }) -_sym_db.RegisterMessage(AuthUserChangePasswordResponse) - -AuthUserGrantRoleResponse = _reflection.GeneratedProtocolMessageType('AuthUserGrantRoleResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERGRANTROLERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserGrantRoleResponse) - }) -_sym_db.RegisterMessage(AuthUserGrantRoleResponse) - -AuthUserRevokeRoleResponse = _reflection.GeneratedProtocolMessageType('AuthUserRevokeRoleResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERREVOKEROLERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserRevokeRoleResponse) - }) -_sym_db.RegisterMessage(AuthUserRevokeRoleResponse) - -AuthRoleAddResponse = _reflection.GeneratedProtocolMessageType('AuthRoleAddResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEADDRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleAddResponse) - }) -_sym_db.RegisterMessage(AuthRoleAddResponse) - -AuthRoleGetResponse = _reflection.GeneratedProtocolMessageType('AuthRoleGetResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEGETRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleGetResponse) - }) -_sym_db.RegisterMessage(AuthRoleGetResponse) - -AuthRoleListResponse = _reflection.GeneratedProtocolMessageType('AuthRoleListResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLELISTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleListResponse) - }) -_sym_db.RegisterMessage(AuthRoleListResponse) - -AuthUserListResponse = _reflection.GeneratedProtocolMessageType('AuthUserListResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHUSERLISTRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthUserListResponse) - }) -_sym_db.RegisterMessage(AuthUserListResponse) - -AuthRoleDeleteResponse = _reflection.GeneratedProtocolMessageType('AuthRoleDeleteResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEDELETERESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleDeleteResponse) - }) -_sym_db.RegisterMessage(AuthRoleDeleteResponse) - -AuthRoleGrantPermissionResponse = _reflection.GeneratedProtocolMessageType('AuthRoleGrantPermissionResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEGRANTPERMISSIONRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleGrantPermissionResponse) - }) -_sym_db.RegisterMessage(AuthRoleGrantPermissionResponse) - -AuthRoleRevokePermissionResponse = _reflection.GeneratedProtocolMessageType('AuthRoleRevokePermissionResponse', (_message.Message,), { - 'DESCRIPTOR' : _AUTHROLEREVOKEPERMISSIONRESPONSE, - '__module__' : 'rpc_pb2' - # @@protoc_insertion_point(class_scope:etcdserverpb.AuthRoleRevokePermissionResponse) - }) -_sym_db.RegisterMessage(AuthRoleRevokePermissionResponse) - -_KV = DESCRIPTOR.services_by_name['KV'] -_WATCH = DESCRIPTOR.services_by_name['Watch'] -_LEASE = DESCRIPTOR.services_by_name['Lease'] -_CLUSTER = DESCRIPTOR.services_by_name['Cluster'] -_MAINTENANCE = DESCRIPTOR.services_by_name['Maintenance'] -_AUTH = DESCRIPTOR.services_by_name['Auth'] -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\021io.etcd.jetcd.apiB\nJetcdProtoP\001\242\002\005Jetcd' - _ALARMTYPE._serialized_start=7482 - _ALARMTYPE._serialized_end=7516 - _RESPONSEHEADER._serialized_start=49 - _RESPONSEHEADER._serialized_end=141 - _RANGEREQUEST._serialized_start=144 - _RANGEREQUEST._serialized_end=628 - _RANGEREQUEST_SORTORDER._serialized_start=514 - _RANGEREQUEST_SORTORDER._serialized_end=560 - _RANGEREQUEST_SORTTARGET._serialized_start=562 - _RANGEREQUEST_SORTTARGET._serialized_end=628 - _RANGERESPONSE._serialized_start=630 - _RANGERESPONSE._serialized_end=751 - _PUTREQUEST._serialized_start=753 - _PUTREQUEST._serialized_end=869 - _PUTRESPONSE._serialized_start=871 - _PUTRESPONSE._serialized_end=965 - _DELETERANGEREQUEST._serialized_start=967 - _DELETERANGEREQUEST._serialized_end=1036 - _DELETERANGERESPONSE._serialized_start=1038 - _DELETERANGERESPONSE._serialized_end=1158 - _REQUESTOP._serialized_start=1161 - _REQUESTOP._serialized_end=1400 - _RESPONSEOP._serialized_start=1403 - _RESPONSEOP._serialized_end=1652 - _COMPARE._serialized_start=1655 - _COMPARE._serialized_end=2061 - _COMPARE_COMPARERESULT._serialized_start=1908 - _COMPARE_COMPARERESULT._serialized_end=1972 - _COMPARE_COMPARETARGET._serialized_start=1974 - _COMPARE_COMPARETARGET._serialized_end=2045 - _TXNREQUEST._serialized_start=2064 - _TXNREQUEST._serialized_end=2200 - _TXNRESPONSE._serialized_start=2202 - _TXNRESPONSE._serialized_end=2325 - _COMPACTIONREQUEST._serialized_start=2327 - _COMPACTIONREQUEST._serialized_end=2382 - _COMPACTIONRESPONSE._serialized_start=2384 - _COMPACTIONRESPONSE._serialized_end=2450 - _HASHREQUEST._serialized_start=2452 - _HASHREQUEST._serialized_end=2465 - _HASHRESPONSE._serialized_start=2467 - _HASHRESPONSE._serialized_end=2541 - _HASHKVREQUEST._serialized_start=2543 - _HASHKVREQUEST._serialized_end=2576 - _HASHKVRESPONSE._serialized_start=2578 - _HASHKVRESPONSE._serialized_end=2680 - _SNAPSHOTREQUEST._serialized_start=2682 - _SNAPSHOTREQUEST._serialized_end=2699 - _SNAPSHOTRESPONSE._serialized_start=2701 - _SNAPSHOTRESPONSE._serialized_end=2804 - _WATCHREQUEST._serialized_start=2807 - _WATCHREQUEST._serialized_end=3022 - _WATCHCREATEREQUEST._serialized_start=3025 - _WATCHCREATEREQUEST._serialized_end=3244 - _WATCHCREATEREQUEST_FILTERTYPE._serialized_start=3207 - _WATCHCREATEREQUEST_FILTERTYPE._serialized_end=3244 - _WATCHCANCELREQUEST._serialized_start=3246 - _WATCHCANCELREQUEST._serialized_end=3284 - _WATCHPROGRESSREQUEST._serialized_start=3286 - _WATCHPROGRESSREQUEST._serialized_end=3308 - _WATCHRESPONSE._serialized_start=3311 - _WATCHRESPONSE._serialized_end=3505 - _LEASEGRANTREQUEST._serialized_start=3507 - _LEASEGRANTREQUEST._serialized_end=3551 - _LEASEGRANTRESPONSE._serialized_start=3553 - _LEASEGRANTRESPONSE._serialized_end=3659 - _LEASEREVOKEREQUEST._serialized_start=3661 - _LEASEREVOKEREQUEST._serialized_end=3693 - _LEASEREVOKERESPONSE._serialized_start=3695 - _LEASEREVOKERESPONSE._serialized_end=3762 - _LEASEKEEPALIVEREQUEST._serialized_start=3764 - _LEASEKEEPALIVEREQUEST._serialized_end=3799 - _LEASEKEEPALIVERESPONSE._serialized_start=3801 - _LEASEKEEPALIVERESPONSE._serialized_end=3896 - _LEASETIMETOLIVEREQUEST._serialized_start=3898 - _LEASETIMETOLIVEREQUEST._serialized_end=3948 - _LEASETIMETOLIVERESPONSE._serialized_start=3951 - _LEASETIMETOLIVERESPONSE._serialized_end=4081 - _MEMBER._serialized_start=4083 - _MEMBER._serialized_end=4155 - _MEMBERADDREQUEST._serialized_start=4157 - _MEMBERADDREQUEST._serialized_end=4193 - _MEMBERADDRESPONSE._serialized_start=4196 - _MEMBERADDRESPONSE._serialized_end=4338 - _MEMBERREMOVEREQUEST._serialized_start=4340 - _MEMBERREMOVEREQUEST._serialized_end=4373 - _MEMBERREMOVERESPONSE._serialized_start=4375 - _MEMBERREMOVERESPONSE._serialized_end=4482 - _MEMBERUPDATEREQUEST._serialized_start=4484 - _MEMBERUPDATEREQUEST._serialized_end=4535 - _MEMBERUPDATERESPONSE._serialized_start=4537 - _MEMBERUPDATERESPONSE._serialized_end=4644 - _MEMBERLISTREQUEST._serialized_start=4646 - _MEMBERLISTREQUEST._serialized_end=4665 - _MEMBERLISTRESPONSE._serialized_start=4667 - _MEMBERLISTRESPONSE._serialized_end=4772 - _DEFRAGMENTREQUEST._serialized_start=4774 - _DEFRAGMENTREQUEST._serialized_end=4793 - _DEFRAGMENTRESPONSE._serialized_start=4795 - _DEFRAGMENTRESPONSE._serialized_end=4861 - _MOVELEADERREQUEST._serialized_start=4863 - _MOVELEADERREQUEST._serialized_end=4900 - _MOVELEADERRESPONSE._serialized_start=4902 - _MOVELEADERRESPONSE._serialized_end=4968 - _ALARMREQUEST._serialized_start=4971 - _ALARMREQUEST._serialized_end=5153 - _ALARMREQUEST_ALARMACTION._serialized_start=5101 - _ALARMREQUEST_ALARMACTION._serialized_end=5153 - _ALARMMEMBER._serialized_start=5155 - _ALARMMEMBER._serialized_end=5226 - _ALARMRESPONSE._serialized_start=5228 - _ALARMRESPONSE._serialized_end=5332 - _STATUSREQUEST._serialized_start=5334 - _STATUSREQUEST._serialized_end=5349 - _STATUSRESPONSE._serialized_start=5352 - _STATUSRESPONSE._serialized_end=5500 - _AUTHENABLEREQUEST._serialized_start=5502 - _AUTHENABLEREQUEST._serialized_end=5521 - _AUTHDISABLEREQUEST._serialized_start=5523 - _AUTHDISABLEREQUEST._serialized_end=5543 - _AUTHENTICATEREQUEST._serialized_start=5545 - _AUTHENTICATEREQUEST._serialized_end=5598 - _AUTHUSERADDREQUEST._serialized_start=5600 - _AUTHUSERADDREQUEST._serialized_end=5652 - _AUTHUSERGETREQUEST._serialized_start=5654 - _AUTHUSERGETREQUEST._serialized_end=5688 - _AUTHUSERDELETEREQUEST._serialized_start=5690 - _AUTHUSERDELETEREQUEST._serialized_end=5727 - _AUTHUSERCHANGEPASSWORDREQUEST._serialized_start=5729 - _AUTHUSERCHANGEPASSWORDREQUEST._serialized_end=5792 - _AUTHUSERGRANTROLEREQUEST._serialized_start=5794 - _AUTHUSERGRANTROLEREQUEST._serialized_end=5848 - _AUTHUSERREVOKEROLEREQUEST._serialized_start=5850 - _AUTHUSERREVOKEROLEREQUEST._serialized_end=5905 - _AUTHROLEADDREQUEST._serialized_start=5907 - _AUTHROLEADDREQUEST._serialized_end=5941 - _AUTHROLEGETREQUEST._serialized_start=5943 - _AUTHROLEGETREQUEST._serialized_end=5977 - _AUTHUSERLISTREQUEST._serialized_start=5979 - _AUTHUSERLISTREQUEST._serialized_end=6000 - _AUTHROLELISTREQUEST._serialized_start=6002 - _AUTHROLELISTREQUEST._serialized_end=6023 - _AUTHROLEDELETEREQUEST._serialized_start=6025 - _AUTHROLEDELETEREQUEST._serialized_end=6062 - _AUTHROLEGRANTPERMISSIONREQUEST._serialized_start=6064 - _AUTHROLEGRANTPERMISSIONREQUEST._serialized_end=6144 - _AUTHROLEREVOKEPERMISSIONREQUEST._serialized_start=6146 - _AUTHROLEREVOKEPERMISSIONREQUEST._serialized_end=6225 - _AUTHENABLERESPONSE._serialized_start=6227 - _AUTHENABLERESPONSE._serialized_end=6293 - _AUTHDISABLERESPONSE._serialized_start=6295 - _AUTHDISABLERESPONSE._serialized_end=6362 - _AUTHENTICATERESPONSE._serialized_start=6364 - _AUTHENTICATERESPONSE._serialized_end=6447 - _AUTHUSERADDRESPONSE._serialized_start=6449 - _AUTHUSERADDRESPONSE._serialized_end=6516 - _AUTHUSERGETRESPONSE._serialized_start=6518 - _AUTHUSERGETRESPONSE._serialized_end=6600 - _AUTHUSERDELETERESPONSE._serialized_start=6602 - _AUTHUSERDELETERESPONSE._serialized_end=6672 - _AUTHUSERCHANGEPASSWORDRESPONSE._serialized_start=6674 - _AUTHUSERCHANGEPASSWORDRESPONSE._serialized_end=6752 - _AUTHUSERGRANTROLERESPONSE._serialized_start=6754 - _AUTHUSERGRANTROLERESPONSE._serialized_end=6827 - _AUTHUSERREVOKEROLERESPONSE._serialized_start=6829 - _AUTHUSERREVOKEROLERESPONSE._serialized_end=6903 - _AUTHROLEADDRESPONSE._serialized_start=6905 - _AUTHROLEADDRESPONSE._serialized_end=6972 - _AUTHROLEGETRESPONSE._serialized_start=6974 - _AUTHROLEGETRESPONSE._serialized_end=7075 - _AUTHROLELISTRESPONSE._serialized_start=7077 - _AUTHROLELISTRESPONSE._serialized_end=7160 - _AUTHUSERLISTRESPONSE._serialized_start=7162 - _AUTHUSERLISTRESPONSE._serialized_end=7245 - _AUTHROLEDELETERESPONSE._serialized_start=7247 - _AUTHROLEDELETERESPONSE._serialized_end=7317 - _AUTHROLEGRANTPERMISSIONRESPONSE._serialized_start=7319 - _AUTHROLEGRANTPERMISSIONRESPONSE._serialized_end=7398 - _AUTHROLEREVOKEPERMISSIONRESPONSE._serialized_start=7400 - _AUTHROLEREVOKEPERMISSIONRESPONSE._serialized_end=7480 - _KV._serialized_start=7519 - _KV._serialized_end=7881 - _WATCH._serialized_start=7884 - _WATCH._serialized_end=8042 - _LEASE._serialized_start=8045 - _LEASE._serialized_end=8418 - _CLUSTER._serialized_start=8421 - _CLUSTER._serialized_end=8771 - _MAINTENANCE._serialized_start=8774 - _MAINTENANCE._serialized_end=9307 - _AUTH._serialized_start=9310 - _AUTH._serialized_end=10811 -# @@protoc_insertion_point(module_scope) diff --git a/etcd3/etcdrpc/rpc_pb2_grpc.py b/etcd3/etcdrpc/rpc_pb2_grpc.py deleted file mode 100644 index 7921151d..00000000 --- a/etcd3/etcdrpc/rpc_pb2_grpc.py +++ /dev/null @@ -1,1487 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from etcd3.etcdrpc import rpc_pb2 as rpc__pb2 - - -class KVStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Range = channel.unary_unary( - '/etcdserverpb.KV/Range', - request_serializer=rpc__pb2.RangeRequest.SerializeToString, - response_deserializer=rpc__pb2.RangeResponse.FromString, - ) - self.Put = channel.unary_unary( - '/etcdserverpb.KV/Put', - request_serializer=rpc__pb2.PutRequest.SerializeToString, - response_deserializer=rpc__pb2.PutResponse.FromString, - ) - self.DeleteRange = channel.unary_unary( - '/etcdserverpb.KV/DeleteRange', - request_serializer=rpc__pb2.DeleteRangeRequest.SerializeToString, - response_deserializer=rpc__pb2.DeleteRangeResponse.FromString, - ) - self.Txn = channel.unary_unary( - '/etcdserverpb.KV/Txn', - request_serializer=rpc__pb2.TxnRequest.SerializeToString, - response_deserializer=rpc__pb2.TxnResponse.FromString, - ) - self.Compact = channel.unary_unary( - '/etcdserverpb.KV/Compact', - request_serializer=rpc__pb2.CompactionRequest.SerializeToString, - response_deserializer=rpc__pb2.CompactionResponse.FromString, - ) - - -class KVServicer(object): - """Missing associated documentation comment in .proto file.""" - - def Range(self, request, context): - """Range gets the keys in the range from the key-value store. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Put(self, request, context): - """Put puts the given key into the key-value store. - A put request increments the revision of the key-value store - and generates one event in the event history. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeleteRange(self, request, context): - """DeleteRange deletes the given range from the key-value store. - A delete request increments the revision of the key-value store - and generates a delete event in the event history for every deleted key. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Txn(self, request, context): - """Txn processes multiple requests in a single transaction. - A txn request increments the revision of the key-value store - and generates events with the same revision for every completed request. - It is not allowed to modify the same key several times within one txn. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Compact(self, request, context): - """Compact compacts the event history in the etcd key-value store. The key-value - store should be periodically compacted or the event history will continue to grow - indefinitely. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_KVServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Range': grpc.unary_unary_rpc_method_handler( - servicer.Range, - request_deserializer=rpc__pb2.RangeRequest.FromString, - response_serializer=rpc__pb2.RangeResponse.SerializeToString, - ), - 'Put': grpc.unary_unary_rpc_method_handler( - servicer.Put, - request_deserializer=rpc__pb2.PutRequest.FromString, - response_serializer=rpc__pb2.PutResponse.SerializeToString, - ), - 'DeleteRange': grpc.unary_unary_rpc_method_handler( - servicer.DeleteRange, - request_deserializer=rpc__pb2.DeleteRangeRequest.FromString, - response_serializer=rpc__pb2.DeleteRangeResponse.SerializeToString, - ), - 'Txn': grpc.unary_unary_rpc_method_handler( - servicer.Txn, - request_deserializer=rpc__pb2.TxnRequest.FromString, - response_serializer=rpc__pb2.TxnResponse.SerializeToString, - ), - 'Compact': grpc.unary_unary_rpc_method_handler( - servicer.Compact, - request_deserializer=rpc__pb2.CompactionRequest.FromString, - response_serializer=rpc__pb2.CompactionResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.KV', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class KV(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def Range(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.KV/Range', - rpc__pb2.RangeRequest.SerializeToString, - rpc__pb2.RangeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Put(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.KV/Put', - rpc__pb2.PutRequest.SerializeToString, - rpc__pb2.PutResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def DeleteRange(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.KV/DeleteRange', - rpc__pb2.DeleteRangeRequest.SerializeToString, - rpc__pb2.DeleteRangeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Txn(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.KV/Txn', - rpc__pb2.TxnRequest.SerializeToString, - rpc__pb2.TxnResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Compact(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.KV/Compact', - rpc__pb2.CompactionRequest.SerializeToString, - rpc__pb2.CompactionResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - -class WatchStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Progress = channel.unary_unary( - '/etcdserverpb.Watch/Progress', - request_serializer=rpc__pb2.WatchProgressRequest.SerializeToString, - response_deserializer=rpc__pb2.WatchResponse.FromString, - ) - self.Watch = channel.stream_stream( - '/etcdserverpb.Watch/Watch', - request_serializer=rpc__pb2.WatchRequest.SerializeToString, - response_deserializer=rpc__pb2.WatchResponse.FromString, - ) - - -class WatchServicer(object): - """Missing associated documentation comment in .proto file.""" - - def Progress(self, request, context): - """Progress requests that a watch stream progress status - be sent in the watch response stream as soon as possible. - For watch progress responses, the header.revision indicates progress. All future events - received in this stream are guaranteed to have a higher revision number than the - header.revision number. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Watch(self, request_iterator, context): - """Watch watches for events happening or that have happened. Both input and output - are streams; the input stream is for creating and canceling watchers and the output - stream sends events. One watch RPC can watch on multiple key ranges, streaming events - for several watches at once. The entire event history can be watched starting from the - last compaction revision. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_WatchServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Progress': grpc.unary_unary_rpc_method_handler( - servicer.Progress, - request_deserializer=rpc__pb2.WatchProgressRequest.FromString, - response_serializer=rpc__pb2.WatchResponse.SerializeToString, - ), - 'Watch': grpc.stream_stream_rpc_method_handler( - servicer.Watch, - request_deserializer=rpc__pb2.WatchRequest.FromString, - response_serializer=rpc__pb2.WatchResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.Watch', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Watch(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def Progress(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Watch/Progress', - rpc__pb2.WatchProgressRequest.SerializeToString, - rpc__pb2.WatchResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Watch(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream(request_iterator, target, '/etcdserverpb.Watch/Watch', - rpc__pb2.WatchRequest.SerializeToString, - rpc__pb2.WatchResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - -class LeaseStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.LeaseGrant = channel.unary_unary( - '/etcdserverpb.Lease/LeaseGrant', - request_serializer=rpc__pb2.LeaseGrantRequest.SerializeToString, - response_deserializer=rpc__pb2.LeaseGrantResponse.FromString, - ) - self.LeaseRevoke = channel.unary_unary( - '/etcdserverpb.Lease/LeaseRevoke', - request_serializer=rpc__pb2.LeaseRevokeRequest.SerializeToString, - response_deserializer=rpc__pb2.LeaseRevokeResponse.FromString, - ) - self.LeaseKeepAlive = channel.stream_stream( - '/etcdserverpb.Lease/LeaseKeepAlive', - request_serializer=rpc__pb2.LeaseKeepAliveRequest.SerializeToString, - response_deserializer=rpc__pb2.LeaseKeepAliveResponse.FromString, - ) - self.LeaseTimeToLive = channel.unary_unary( - '/etcdserverpb.Lease/LeaseTimeToLive', - request_serializer=rpc__pb2.LeaseTimeToLiveRequest.SerializeToString, - response_deserializer=rpc__pb2.LeaseTimeToLiveResponse.FromString, - ) - - -class LeaseServicer(object): - """Missing associated documentation comment in .proto file.""" - - def LeaseGrant(self, request, context): - """LeaseGrant creates a lease which expires if the server does not receive a keepAlive - within a given time to live period. All keys attached to the lease will be expired and - deleted if the lease expires. Each expired key generates a delete event in the event history. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def LeaseRevoke(self, request, context): - """LeaseRevoke revokes a lease. All keys attached to the lease will expire and be deleted. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def LeaseKeepAlive(self, request_iterator, context): - """LeaseKeepAlive keeps the lease alive by streaming keep alive requests from the client - to the server and streaming keep alive responses from the server to the client. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def LeaseTimeToLive(self, request, context): - """LeaseTimeToLive retrieves lease information. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_LeaseServicer_to_server(servicer, server): - rpc_method_handlers = { - 'LeaseGrant': grpc.unary_unary_rpc_method_handler( - servicer.LeaseGrant, - request_deserializer=rpc__pb2.LeaseGrantRequest.FromString, - response_serializer=rpc__pb2.LeaseGrantResponse.SerializeToString, - ), - 'LeaseRevoke': grpc.unary_unary_rpc_method_handler( - servicer.LeaseRevoke, - request_deserializer=rpc__pb2.LeaseRevokeRequest.FromString, - response_serializer=rpc__pb2.LeaseRevokeResponse.SerializeToString, - ), - 'LeaseKeepAlive': grpc.stream_stream_rpc_method_handler( - servicer.LeaseKeepAlive, - request_deserializer=rpc__pb2.LeaseKeepAliveRequest.FromString, - response_serializer=rpc__pb2.LeaseKeepAliveResponse.SerializeToString, - ), - 'LeaseTimeToLive': grpc.unary_unary_rpc_method_handler( - servicer.LeaseTimeToLive, - request_deserializer=rpc__pb2.LeaseTimeToLiveRequest.FromString, - response_serializer=rpc__pb2.LeaseTimeToLiveResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.Lease', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Lease(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def LeaseGrant(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Lease/LeaseGrant', - rpc__pb2.LeaseGrantRequest.SerializeToString, - rpc__pb2.LeaseGrantResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def LeaseRevoke(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Lease/LeaseRevoke', - rpc__pb2.LeaseRevokeRequest.SerializeToString, - rpc__pb2.LeaseRevokeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def LeaseKeepAlive(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream(request_iterator, target, '/etcdserverpb.Lease/LeaseKeepAlive', - rpc__pb2.LeaseKeepAliveRequest.SerializeToString, - rpc__pb2.LeaseKeepAliveResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def LeaseTimeToLive(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Lease/LeaseTimeToLive', - rpc__pb2.LeaseTimeToLiveRequest.SerializeToString, - rpc__pb2.LeaseTimeToLiveResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - -class ClusterStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.MemberAdd = channel.unary_unary( - '/etcdserverpb.Cluster/MemberAdd', - request_serializer=rpc__pb2.MemberAddRequest.SerializeToString, - response_deserializer=rpc__pb2.MemberAddResponse.FromString, - ) - self.MemberRemove = channel.unary_unary( - '/etcdserverpb.Cluster/MemberRemove', - request_serializer=rpc__pb2.MemberRemoveRequest.SerializeToString, - response_deserializer=rpc__pb2.MemberRemoveResponse.FromString, - ) - self.MemberUpdate = channel.unary_unary( - '/etcdserverpb.Cluster/MemberUpdate', - request_serializer=rpc__pb2.MemberUpdateRequest.SerializeToString, - response_deserializer=rpc__pb2.MemberUpdateResponse.FromString, - ) - self.MemberList = channel.unary_unary( - '/etcdserverpb.Cluster/MemberList', - request_serializer=rpc__pb2.MemberListRequest.SerializeToString, - response_deserializer=rpc__pb2.MemberListResponse.FromString, - ) - - -class ClusterServicer(object): - """Missing associated documentation comment in .proto file.""" - - def MemberAdd(self, request, context): - """MemberAdd adds a member into the cluster. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def MemberRemove(self, request, context): - """MemberRemove removes an existing member from the cluster. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def MemberUpdate(self, request, context): - """MemberUpdate updates the member configuration. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def MemberList(self, request, context): - """MemberList lists all the members in the cluster. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_ClusterServicer_to_server(servicer, server): - rpc_method_handlers = { - 'MemberAdd': grpc.unary_unary_rpc_method_handler( - servicer.MemberAdd, - request_deserializer=rpc__pb2.MemberAddRequest.FromString, - response_serializer=rpc__pb2.MemberAddResponse.SerializeToString, - ), - 'MemberRemove': grpc.unary_unary_rpc_method_handler( - servicer.MemberRemove, - request_deserializer=rpc__pb2.MemberRemoveRequest.FromString, - response_serializer=rpc__pb2.MemberRemoveResponse.SerializeToString, - ), - 'MemberUpdate': grpc.unary_unary_rpc_method_handler( - servicer.MemberUpdate, - request_deserializer=rpc__pb2.MemberUpdateRequest.FromString, - response_serializer=rpc__pb2.MemberUpdateResponse.SerializeToString, - ), - 'MemberList': grpc.unary_unary_rpc_method_handler( - servicer.MemberList, - request_deserializer=rpc__pb2.MemberListRequest.FromString, - response_serializer=rpc__pb2.MemberListResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.Cluster', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Cluster(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def MemberAdd(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Cluster/MemberAdd', - rpc__pb2.MemberAddRequest.SerializeToString, - rpc__pb2.MemberAddResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def MemberRemove(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Cluster/MemberRemove', - rpc__pb2.MemberRemoveRequest.SerializeToString, - rpc__pb2.MemberRemoveResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def MemberUpdate(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Cluster/MemberUpdate', - rpc__pb2.MemberUpdateRequest.SerializeToString, - rpc__pb2.MemberUpdateResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def MemberList(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Cluster/MemberList', - rpc__pb2.MemberListRequest.SerializeToString, - rpc__pb2.MemberListResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - -class MaintenanceStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Alarm = channel.unary_unary( - '/etcdserverpb.Maintenance/Alarm', - request_serializer=rpc__pb2.AlarmRequest.SerializeToString, - response_deserializer=rpc__pb2.AlarmResponse.FromString, - ) - self.Status = channel.unary_unary( - '/etcdserverpb.Maintenance/Status', - request_serializer=rpc__pb2.StatusRequest.SerializeToString, - response_deserializer=rpc__pb2.StatusResponse.FromString, - ) - self.Defragment = channel.unary_unary( - '/etcdserverpb.Maintenance/Defragment', - request_serializer=rpc__pb2.DefragmentRequest.SerializeToString, - response_deserializer=rpc__pb2.DefragmentResponse.FromString, - ) - self.Hash = channel.unary_unary( - '/etcdserverpb.Maintenance/Hash', - request_serializer=rpc__pb2.HashRequest.SerializeToString, - response_deserializer=rpc__pb2.HashResponse.FromString, - ) - self.HashKV = channel.unary_unary( - '/etcdserverpb.Maintenance/HashKV', - request_serializer=rpc__pb2.HashKVRequest.SerializeToString, - response_deserializer=rpc__pb2.HashKVResponse.FromString, - ) - self.Snapshot = channel.unary_stream( - '/etcdserverpb.Maintenance/Snapshot', - request_serializer=rpc__pb2.SnapshotRequest.SerializeToString, - response_deserializer=rpc__pb2.SnapshotResponse.FromString, - ) - self.MoveLeader = channel.unary_unary( - '/etcdserverpb.Maintenance/MoveLeader', - request_serializer=rpc__pb2.MoveLeaderRequest.SerializeToString, - response_deserializer=rpc__pb2.MoveLeaderResponse.FromString, - ) - - -class MaintenanceServicer(object): - """Missing associated documentation comment in .proto file.""" - - def Alarm(self, request, context): - """Alarm activates, deactivates, and queries alarms regarding cluster health. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Status(self, request, context): - """Status gets the status of the member. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Defragment(self, request, context): - """Defragment defragments a member's backend database to recover storage space. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Hash(self, request, context): - """Hash returns the hash of the local KV state for consistency checking purpose. - This is designed for testing; do not use this in production when there - are ongoing transactions. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def HashKV(self, request, context): - """HashKV computes the hash of all MVCC keys up to a given revision. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Snapshot(self, request, context): - """Snapshot sends a snapshot of the entire backend from a member over a stream to a client. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def MoveLeader(self, request, context): - """MoveLeader requests current leader node to transfer its leadership to transferee. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_MaintenanceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Alarm': grpc.unary_unary_rpc_method_handler( - servicer.Alarm, - request_deserializer=rpc__pb2.AlarmRequest.FromString, - response_serializer=rpc__pb2.AlarmResponse.SerializeToString, - ), - 'Status': grpc.unary_unary_rpc_method_handler( - servicer.Status, - request_deserializer=rpc__pb2.StatusRequest.FromString, - response_serializer=rpc__pb2.StatusResponse.SerializeToString, - ), - 'Defragment': grpc.unary_unary_rpc_method_handler( - servicer.Defragment, - request_deserializer=rpc__pb2.DefragmentRequest.FromString, - response_serializer=rpc__pb2.DefragmentResponse.SerializeToString, - ), - 'Hash': grpc.unary_unary_rpc_method_handler( - servicer.Hash, - request_deserializer=rpc__pb2.HashRequest.FromString, - response_serializer=rpc__pb2.HashResponse.SerializeToString, - ), - 'HashKV': grpc.unary_unary_rpc_method_handler( - servicer.HashKV, - request_deserializer=rpc__pb2.HashKVRequest.FromString, - response_serializer=rpc__pb2.HashKVResponse.SerializeToString, - ), - 'Snapshot': grpc.unary_stream_rpc_method_handler( - servicer.Snapshot, - request_deserializer=rpc__pb2.SnapshotRequest.FromString, - response_serializer=rpc__pb2.SnapshotResponse.SerializeToString, - ), - 'MoveLeader': grpc.unary_unary_rpc_method_handler( - servicer.MoveLeader, - request_deserializer=rpc__pb2.MoveLeaderRequest.FromString, - response_serializer=rpc__pb2.MoveLeaderResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.Maintenance', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Maintenance(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def Alarm(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/Alarm', - rpc__pb2.AlarmRequest.SerializeToString, - rpc__pb2.AlarmResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Status(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/Status', - rpc__pb2.StatusRequest.SerializeToString, - rpc__pb2.StatusResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Defragment(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/Defragment', - rpc__pb2.DefragmentRequest.SerializeToString, - rpc__pb2.DefragmentResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Hash(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/Hash', - rpc__pb2.HashRequest.SerializeToString, - rpc__pb2.HashResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def HashKV(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/HashKV', - rpc__pb2.HashKVRequest.SerializeToString, - rpc__pb2.HashKVResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Snapshot(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_stream(request, target, '/etcdserverpb.Maintenance/Snapshot', - rpc__pb2.SnapshotRequest.SerializeToString, - rpc__pb2.SnapshotResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def MoveLeader(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Maintenance/MoveLeader', - rpc__pb2.MoveLeaderRequest.SerializeToString, - rpc__pb2.MoveLeaderResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - -class AuthStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.AuthEnable = channel.unary_unary( - '/etcdserverpb.Auth/AuthEnable', - request_serializer=rpc__pb2.AuthEnableRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthEnableResponse.FromString, - ) - self.AuthDisable = channel.unary_unary( - '/etcdserverpb.Auth/AuthDisable', - request_serializer=rpc__pb2.AuthDisableRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthDisableResponse.FromString, - ) - self.Authenticate = channel.unary_unary( - '/etcdserverpb.Auth/Authenticate', - request_serializer=rpc__pb2.AuthenticateRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthenticateResponse.FromString, - ) - self.UserAdd = channel.unary_unary( - '/etcdserverpb.Auth/UserAdd', - request_serializer=rpc__pb2.AuthUserAddRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserAddResponse.FromString, - ) - self.UserGet = channel.unary_unary( - '/etcdserverpb.Auth/UserGet', - request_serializer=rpc__pb2.AuthUserGetRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserGetResponse.FromString, - ) - self.UserList = channel.unary_unary( - '/etcdserverpb.Auth/UserList', - request_serializer=rpc__pb2.AuthUserListRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserListResponse.FromString, - ) - self.UserDelete = channel.unary_unary( - '/etcdserverpb.Auth/UserDelete', - request_serializer=rpc__pb2.AuthUserDeleteRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserDeleteResponse.FromString, - ) - self.UserChangePassword = channel.unary_unary( - '/etcdserverpb.Auth/UserChangePassword', - request_serializer=rpc__pb2.AuthUserChangePasswordRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserChangePasswordResponse.FromString, - ) - self.UserGrantRole = channel.unary_unary( - '/etcdserverpb.Auth/UserGrantRole', - request_serializer=rpc__pb2.AuthUserGrantRoleRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserGrantRoleResponse.FromString, - ) - self.UserRevokeRole = channel.unary_unary( - '/etcdserverpb.Auth/UserRevokeRole', - request_serializer=rpc__pb2.AuthUserRevokeRoleRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthUserRevokeRoleResponse.FromString, - ) - self.RoleAdd = channel.unary_unary( - '/etcdserverpb.Auth/RoleAdd', - request_serializer=rpc__pb2.AuthRoleAddRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleAddResponse.FromString, - ) - self.RoleGet = channel.unary_unary( - '/etcdserverpb.Auth/RoleGet', - request_serializer=rpc__pb2.AuthRoleGetRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleGetResponse.FromString, - ) - self.RoleList = channel.unary_unary( - '/etcdserverpb.Auth/RoleList', - request_serializer=rpc__pb2.AuthRoleListRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleListResponse.FromString, - ) - self.RoleDelete = channel.unary_unary( - '/etcdserverpb.Auth/RoleDelete', - request_serializer=rpc__pb2.AuthRoleDeleteRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleDeleteResponse.FromString, - ) - self.RoleGrantPermission = channel.unary_unary( - '/etcdserverpb.Auth/RoleGrantPermission', - request_serializer=rpc__pb2.AuthRoleGrantPermissionRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleGrantPermissionResponse.FromString, - ) - self.RoleRevokePermission = channel.unary_unary( - '/etcdserverpb.Auth/RoleRevokePermission', - request_serializer=rpc__pb2.AuthRoleRevokePermissionRequest.SerializeToString, - response_deserializer=rpc__pb2.AuthRoleRevokePermissionResponse.FromString, - ) - - -class AuthServicer(object): - """Missing associated documentation comment in .proto file.""" - - def AuthEnable(self, request, context): - """AuthEnable enables authentication. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def AuthDisable(self, request, context): - """AuthDisable disables authentication. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Authenticate(self, request, context): - """Authenticate processes an authenticate request. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserAdd(self, request, context): - """UserAdd adds a new user. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserGet(self, request, context): - """UserGet gets detailed user information. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserList(self, request, context): - """UserList gets a list of all users. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserDelete(self, request, context): - """UserDelete deletes a specified user. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserChangePassword(self, request, context): - """UserChangePassword changes the password of a specified user. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserGrantRole(self, request, context): - """UserGrant grants a role to a specified user. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UserRevokeRole(self, request, context): - """UserRevokeRole revokes a role of specified user. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleAdd(self, request, context): - """RoleAdd adds a new role. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleGet(self, request, context): - """RoleGet gets detailed role information. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleList(self, request, context): - """RoleList gets lists of all roles. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleDelete(self, request, context): - """RoleDelete deletes a specified role. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleGrantPermission(self, request, context): - """RoleGrantPermission grants a permission of a specified key or range to a specified role. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RoleRevokePermission(self, request, context): - """RoleRevokePermission revokes a key or range permission of a specified role. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_AuthServicer_to_server(servicer, server): - rpc_method_handlers = { - 'AuthEnable': grpc.unary_unary_rpc_method_handler( - servicer.AuthEnable, - request_deserializer=rpc__pb2.AuthEnableRequest.FromString, - response_serializer=rpc__pb2.AuthEnableResponse.SerializeToString, - ), - 'AuthDisable': grpc.unary_unary_rpc_method_handler( - servicer.AuthDisable, - request_deserializer=rpc__pb2.AuthDisableRequest.FromString, - response_serializer=rpc__pb2.AuthDisableResponse.SerializeToString, - ), - 'Authenticate': grpc.unary_unary_rpc_method_handler( - servicer.Authenticate, - request_deserializer=rpc__pb2.AuthenticateRequest.FromString, - response_serializer=rpc__pb2.AuthenticateResponse.SerializeToString, - ), - 'UserAdd': grpc.unary_unary_rpc_method_handler( - servicer.UserAdd, - request_deserializer=rpc__pb2.AuthUserAddRequest.FromString, - response_serializer=rpc__pb2.AuthUserAddResponse.SerializeToString, - ), - 'UserGet': grpc.unary_unary_rpc_method_handler( - servicer.UserGet, - request_deserializer=rpc__pb2.AuthUserGetRequest.FromString, - response_serializer=rpc__pb2.AuthUserGetResponse.SerializeToString, - ), - 'UserList': grpc.unary_unary_rpc_method_handler( - servicer.UserList, - request_deserializer=rpc__pb2.AuthUserListRequest.FromString, - response_serializer=rpc__pb2.AuthUserListResponse.SerializeToString, - ), - 'UserDelete': grpc.unary_unary_rpc_method_handler( - servicer.UserDelete, - request_deserializer=rpc__pb2.AuthUserDeleteRequest.FromString, - response_serializer=rpc__pb2.AuthUserDeleteResponse.SerializeToString, - ), - 'UserChangePassword': grpc.unary_unary_rpc_method_handler( - servicer.UserChangePassword, - request_deserializer=rpc__pb2.AuthUserChangePasswordRequest.FromString, - response_serializer=rpc__pb2.AuthUserChangePasswordResponse.SerializeToString, - ), - 'UserGrantRole': grpc.unary_unary_rpc_method_handler( - servicer.UserGrantRole, - request_deserializer=rpc__pb2.AuthUserGrantRoleRequest.FromString, - response_serializer=rpc__pb2.AuthUserGrantRoleResponse.SerializeToString, - ), - 'UserRevokeRole': grpc.unary_unary_rpc_method_handler( - servicer.UserRevokeRole, - request_deserializer=rpc__pb2.AuthUserRevokeRoleRequest.FromString, - response_serializer=rpc__pb2.AuthUserRevokeRoleResponse.SerializeToString, - ), - 'RoleAdd': grpc.unary_unary_rpc_method_handler( - servicer.RoleAdd, - request_deserializer=rpc__pb2.AuthRoleAddRequest.FromString, - response_serializer=rpc__pb2.AuthRoleAddResponse.SerializeToString, - ), - 'RoleGet': grpc.unary_unary_rpc_method_handler( - servicer.RoleGet, - request_deserializer=rpc__pb2.AuthRoleGetRequest.FromString, - response_serializer=rpc__pb2.AuthRoleGetResponse.SerializeToString, - ), - 'RoleList': grpc.unary_unary_rpc_method_handler( - servicer.RoleList, - request_deserializer=rpc__pb2.AuthRoleListRequest.FromString, - response_serializer=rpc__pb2.AuthRoleListResponse.SerializeToString, - ), - 'RoleDelete': grpc.unary_unary_rpc_method_handler( - servicer.RoleDelete, - request_deserializer=rpc__pb2.AuthRoleDeleteRequest.FromString, - response_serializer=rpc__pb2.AuthRoleDeleteResponse.SerializeToString, - ), - 'RoleGrantPermission': grpc.unary_unary_rpc_method_handler( - servicer.RoleGrantPermission, - request_deserializer=rpc__pb2.AuthRoleGrantPermissionRequest.FromString, - response_serializer=rpc__pb2.AuthRoleGrantPermissionResponse.SerializeToString, - ), - 'RoleRevokePermission': grpc.unary_unary_rpc_method_handler( - servicer.RoleRevokePermission, - request_deserializer=rpc__pb2.AuthRoleRevokePermissionRequest.FromString, - response_serializer=rpc__pb2.AuthRoleRevokePermissionResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'etcdserverpb.Auth', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Auth(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def AuthEnable(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/AuthEnable', - rpc__pb2.AuthEnableRequest.SerializeToString, - rpc__pb2.AuthEnableResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def AuthDisable(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/AuthDisable', - rpc__pb2.AuthDisableRequest.SerializeToString, - rpc__pb2.AuthDisableResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def Authenticate(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/Authenticate', - rpc__pb2.AuthenticateRequest.SerializeToString, - rpc__pb2.AuthenticateResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserAdd(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserAdd', - rpc__pb2.AuthUserAddRequest.SerializeToString, - rpc__pb2.AuthUserAddResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserGet(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserGet', - rpc__pb2.AuthUserGetRequest.SerializeToString, - rpc__pb2.AuthUserGetResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserList(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserList', - rpc__pb2.AuthUserListRequest.SerializeToString, - rpc__pb2.AuthUserListResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserDelete(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserDelete', - rpc__pb2.AuthUserDeleteRequest.SerializeToString, - rpc__pb2.AuthUserDeleteResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserChangePassword(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserChangePassword', - rpc__pb2.AuthUserChangePasswordRequest.SerializeToString, - rpc__pb2.AuthUserChangePasswordResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserGrantRole(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserGrantRole', - rpc__pb2.AuthUserGrantRoleRequest.SerializeToString, - rpc__pb2.AuthUserGrantRoleResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def UserRevokeRole(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/UserRevokeRole', - rpc__pb2.AuthUserRevokeRoleRequest.SerializeToString, - rpc__pb2.AuthUserRevokeRoleResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleAdd(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleAdd', - rpc__pb2.AuthRoleAddRequest.SerializeToString, - rpc__pb2.AuthRoleAddResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleGet(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleGet', - rpc__pb2.AuthRoleGetRequest.SerializeToString, - rpc__pb2.AuthRoleGetResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleList(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleList', - rpc__pb2.AuthRoleListRequest.SerializeToString, - rpc__pb2.AuthRoleListResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleDelete(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleDelete', - rpc__pb2.AuthRoleDeleteRequest.SerializeToString, - rpc__pb2.AuthRoleDeleteResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleGrantPermission(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleGrantPermission', - rpc__pb2.AuthRoleGrantPermissionRequest.SerializeToString, - rpc__pb2.AuthRoleGrantPermissionResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def RoleRevokePermission(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/etcdserverpb.Auth/RoleRevokePermission', - rpc__pb2.AuthRoleRevokePermissionRequest.SerializeToString, - rpc__pb2.AuthRoleRevokePermissionResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/genproto.sh b/genproto.sh new file mode 100755 index 00000000..43b15b7f --- /dev/null +++ b/genproto.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -e + +sed -i -e '/gogoproto/d' src/etcd3/proto/rpc.proto +sed -i -e 's/etcd\/mvcc\/mvccpb\/kv.proto/kv.proto/g' src/etcd3/proto/rpc.proto +sed -i -e 's/etcd\/auth\/authpb\/auth.proto/auth.proto/g' src/etcd3/proto/rpc.proto +sed -i -e '/google\/api\/annotations.proto/d' src/etcd3/proto/rpc.proto +sed -i -e '/option (google.api.http)/,+3d' src/etcd3/proto/rpc.proto +python -m grpc.tools.protoc -Isrc/etcd3/proto \ + --python_out=src/etcd3/etcdrpc/ \ + --grpc_python_out=src/etcd3/etcdrpc/ \ + src/etcd3/proto/rpc.proto src/etcd3/proto/auth.proto src/etcd3/proto/kv.proto +sed -i -e 's/import auth_pb2/from etcd3.etcdrpc import auth_pb2/g' src/etcd3/etcdrpc/rpc_pb2.py +sed -i -e 's/import kv_pb2/from etcd3.etcdrpc import kv_pb2/g' src/etcd3/etcdrpc/rpc_pb2.py +sed -i -e 's/import rpc_pb2/from etcd3.etcdrpc import rpc_pb2/g' src/etcd3/etcdrpc/rpc_pb2_grpc.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..190848ee --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,79 @@ +[build-system] +requires = ["setuptools>=64", "setuptools_scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "etcd3" +description = "Python client for the etcd3 API" +dynamic = ["version"] +requires-python = ">=3.7" +readme = "README.rst" +authors = [ + {email = "Louis Taylor "}, + {email = "Ledger SAS "}, +] +dependencies = [ + "grpcio>=1.68.1", + "protobuf>=5.27.1,<6", + "six==1.16.0", +] +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Natural Language :: English", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Operating System :: OS Independent", +] + +[project.optional-dependencies] +tests = [ + "pifpaf", + "PyYAML>=5.1", + "bumpversion>=0.5.3", + "coverage", + "flake8-import-order", + "flake8", + "grpcio-tools>=1.66.2", + "hypothesis", + "pytest>=4.6.5", + "pytest-cov", + "flake8-docstrings>=1.3.0", + "mock>=2.0.0", + "tenacity>=5.0.2", +] +protoc = [ + "grpcio-tools", + "grpcio==1.68.1", +] +doc = [ + "Sphinx>=1.8.2", +] + +[tool.isort] +profile = "black" + +[tool.mypy] +python_version = "3.10" +show_error_codes = true +check_untyped_defs = true +no_implicit_reexport = true +warn_redundant_casts = true +warn_unused_ignores = true +follow_untyped_imports = true + +[tool.bandit.assert_used] +skips = ["tests/*.py"] + +[tool.pydocstyle] +convention = "pep257" + +[tool.setuptools_scm] diff --git a/requirements/base.in b/requirements/base.in deleted file mode 100644 index 03dbe219..00000000 --- a/requirements/base.in +++ /dev/null @@ -1,2 +0,0 @@ -grpcio>=1.2.0 -protobuf>=3.6.1 diff --git a/requirements/base.txt b/requirements/base.txt deleted file mode 100644 index 4a789a44..00000000 --- a/requirements/base.txt +++ /dev/null @@ -1,15 +0,0 @@ -# SHA1:04cc27ab2e85f48da5bc4b15b5820b244a61578a -# -# This file is autogenerated by pip-compile-multi -# To update, run: -# -# pip-compile-multi -# -grpcio==1.38.0 - # via -r requirements/base.in -protobuf==3.17.0 - # via -r requirements/base.in -six==1.16.0 - # via - # grpcio - # protobuf diff --git a/requirements/test.in b/requirements/test.in deleted file mode 100644 index 003b21e8..00000000 --- a/requirements/test.in +++ /dev/null @@ -1,18 +0,0 @@ --r base.in -PyYAML>=5.1 -Sphinx>=1.8.2 -bumpversion>=0.5.3 -coverage -flake8-import-order -flake8 -grpcio-tools -hypothesis -more-itertools<6 # python2.7 -pytest>=4.6.5 -pytest-cov -tox>=3.5.3 -flake8-docstrings>=1.3.0 -pydocstyle<4 # python2.7 -mock>=2.0.0 -pifpaf -tenacity>=5.0.2 diff --git a/requirements/test.txt b/requirements/test.txt deleted file mode 100644 index 748a9767..00000000 --- a/requirements/test.txt +++ /dev/null @@ -1,184 +0,0 @@ -# SHA1:925716a635eb5e8d454086bef081ecfa689eff02 -# -# This file is autogenerated by pip-compile-multi -# To update, run: -# -# pip-compile-multi -# --r base.txt -alabaster==0.7.12 - # via sphinx -appdirs==1.4.4 - # via virtualenv -argparse==1.4.0 - # via unittest2 -attrs==21.2.0 - # via - # hypothesis - # pytest -babel==2.9.1 - # via sphinx -bump2version==1.0.1 - # via bumpversion -bumpversion==0.6.0 - # via -r requirements/test.in -certifi==2020.12.5 - # via requests -cffi==1.14.5 - # via xattr -chardet==4.0.0 - # via requests -click==8.0.1 - # via pifpaf -coverage[toml]==5.5 - # via - # -r requirements/test.in - # pytest-cov -daiquiri==3.0.0 - # via pifpaf -distlib==0.3.1 - # via virtualenv -docutils==0.17.1 - # via sphinx -extras==1.0.0 - # via testtools -filelock==3.0.12 - # via - # tox - # virtualenv -fixtures==3.0.0 - # via - # pifpaf - # testtools -flake8-docstrings==1.6.0 - # via -r requirements/test.in -flake8-import-order==0.18.1 - # via -r requirements/test.in -flake8==3.9.2 - # via - # -r requirements/test.in - # flake8-docstrings -grpcio-tools==1.38.0 - # via -r requirements/test.in -hypothesis==6.13.1 - # via -r requirements/test.in -idna==2.10 - # via requests -imagesize==1.2.0 - # via sphinx -iniconfig==1.1.1 - # via pytest -jinja2==3.0.1 - # via - # pifpaf - # sphinx -linecache2==1.0.0 - # via traceback2 -markupsafe==2.0.1 - # via jinja2 -mccabe==0.6.1 - # via flake8 -mock==4.0.3 - # via -r requirements/test.in -more-itertools==5.0.0 - # via -r requirements/test.in -packaging==20.9 - # via - # pytest - # sphinx - # tox -pbr==5.6.0 - # via - # fixtures - # pifpaf - # testtools -pifpaf==3.1.5 - # via -r requirements/test.in -pluggy==0.13.1 - # via - # pytest - # tox -psutil==5.8.0 - # via pifpaf -py==1.10.0 - # via - # pytest - # tox -pycodestyle==2.7.0 - # via - # flake8 - # flake8-import-order -pycparser==2.20 - # via cffi -pydocstyle==3.0.0 - # via - # -r requirements/test.in - # flake8-docstrings -pyflakes==2.3.1 - # via flake8 -pygments==2.9.0 - # via sphinx -pyparsing==2.4.7 - # via packaging -pytest-cov==2.12.0 - # via -r requirements/test.in -pytest==6.2.4 - # via - # -r requirements/test.in - # pytest-cov -python-json-logger==2.0.1 - # via daiquiri -python-mimeparse==1.6.0 - # via testtools -pytz==2021.1 - # via babel -pyyaml==5.4.1 - # via -r requirements/test.in -requests==2.25.1 - # via sphinx -snowballstemmer==2.1.0 - # via - # pydocstyle - # sphinx -sortedcontainers==2.4.0 - # via hypothesis -sphinx==4.0.2 - # via -r requirements/test.in -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==1.0.3 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.4 - # via sphinx -tenacity==7.0.0 - # via -r requirements/test.in -testtools==2.4.0 - # via fixtures -toml==0.10.2 - # via - # coverage - # pytest - # tox -tox==3.23.1 - # via -r requirements/test.in -traceback2==1.4.0 - # via - # testtools - # unittest2 -unittest2==1.1.0 - # via testtools -urllib3==1.26.4 - # via requests -virtualenv==20.4.6 - # via tox -xattr==0.9.7 - # via pifpaf - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 0e49001b..00000000 --- a/setup.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[bumpversion] -current_version = 0.12.0 -commit = True -tag = True -message = Release: {current_version} -> {new_version} - -[bumpversion:file:setup.py] - -[bumpversion:file:etcd3/__init__.py] - -[bdist_wheel] -universal = 1 - -[flake8] -exclude = docs -builtins = long - -[coverage:run] -omit = etcd3/etcdrpc/* - diff --git a/setup.py b/setup.py deleted file mode 100644 index 361f8fa6..00000000 --- a/setup.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import re - -from setuptools import setup - -with open('README.rst') as readme_file: - readme = readme_file.read() - -with open('HISTORY.rst') as history_file: - history = history_file.read() - - -def load_reqs(filename): - with open(filename) as reqs_file: - return [ - re.sub('==', '>=', line) for line in reqs_file.readlines() - if not re.match(r'(\s*#|-r)', line) - ] - - -requirements = load_reqs('requirements/base.txt') -test_requirements = load_reqs('requirements/test.txt') - -setup( - name='etcd3', - version='0.12.0', - description="Python client for the etcd3 API", - long_description=readme + '\n\n' + history, - author="Louis Taylor", - author_email='louis@kragniz.eu', - url='https://github.com/kragniz/python-etcd3', - packages=[ - 'etcd3', - 'etcd3.etcdrpc', - ], - package_dir={ - 'etcd3': 'etcd3', - 'etcd3.etcdrpc': 'etcd3/etcdrpc', - }, - include_package_data=True, - install_requires=requirements, - license="Apache Software License 2.0", - zip_safe=False, - keywords='etcd3', - classifiers=[ - 'Development Status :: 2 - Pre-Alpha', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License', - 'Natural Language :: English', - "Programming Language :: Python :: 2", - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - ], - test_suite='tests', - tests_require=test_requirements -) diff --git a/etcd3/__init__.py b/src/etcd3/__init__.py similarity index 80% rename from etcd3/__init__.py rename to src/etcd3/__init__.py index abbc3cc8..3f378e21 100644 --- a/etcd3/__init__.py +++ b/src/etcd3/__init__.py @@ -1,5 +1,4 @@ -from __future__ import absolute_import - +from importlib import metadata import etcd3.etcdrpc as etcdrpc from etcd3.client import Endpoint from etcd3.client import Etcd3Client @@ -11,9 +10,9 @@ from etcd3.locks import Lock from etcd3.members import Member -__author__ = 'Louis Taylor' -__email__ = 'louis@kragniz.eu' -__version__ = '0.12.0' +__version__ = metadata.version("etcd3") +__author__ = "Louis Taylor" +__email__ = "louis@kragniz.eu" __all__ = ( 'etcdrpc', diff --git a/etcd3/client.py b/src/etcd3/client.py similarity index 100% rename from etcd3/client.py rename to src/etcd3/client.py diff --git a/etcd3/etcdrpc/__init__.py b/src/etcd3/etcdrpc/__init__.py similarity index 100% rename from etcd3/etcdrpc/__init__.py rename to src/etcd3/etcdrpc/__init__.py diff --git a/etcd3/events.py b/src/etcd3/events.py similarity index 100% rename from etcd3/events.py rename to src/etcd3/events.py diff --git a/etcd3/exceptions.py b/src/etcd3/exceptions.py similarity index 100% rename from etcd3/exceptions.py rename to src/etcd3/exceptions.py diff --git a/etcd3/leases.py b/src/etcd3/leases.py similarity index 100% rename from etcd3/leases.py rename to src/etcd3/leases.py diff --git a/etcd3/locks.py b/src/etcd3/locks.py similarity index 100% rename from etcd3/locks.py rename to src/etcd3/locks.py diff --git a/etcd3/members.py b/src/etcd3/members.py similarity index 100% rename from etcd3/members.py rename to src/etcd3/members.py diff --git a/etcd3/proto/auth.proto b/src/etcd3/proto/auth.proto similarity index 100% rename from etcd3/proto/auth.proto rename to src/etcd3/proto/auth.proto diff --git a/etcd3/proto/kv.proto b/src/etcd3/proto/kv.proto similarity index 100% rename from etcd3/proto/kv.proto rename to src/etcd3/proto/kv.proto diff --git a/etcd3/proto/rpc.proto b/src/etcd3/proto/rpc.proto similarity index 100% rename from etcd3/proto/rpc.proto rename to src/etcd3/proto/rpc.proto diff --git a/etcd3/transactions.py b/src/etcd3/transactions.py similarity index 100% rename from etcd3/transactions.py rename to src/etcd3/transactions.py diff --git a/etcd3/utils.py b/src/etcd3/utils.py similarity index 100% rename from etcd3/utils.py rename to src/etcd3/utils.py diff --git a/etcd3/watch.py b/src/etcd3/watch.py similarity index 100% rename from etcd3/watch.py rename to src/etcd3/watch.py diff --git a/tests/test_etcd3.py b/tests/test_etcd3.py index b3b068ed..ff8038cd 100644 --- a/tests/test_etcd3.py +++ b/tests/test_etcd3.py @@ -1221,7 +1221,7 @@ def test_channel_with_no_cert(self): ) assert client.uses_secure_channel is False - @mock.patch('etcdrpc.AuthStub') + @mock.patch('etcd3.etcdrpc.AuthStub') def test_user_pwd_auth(self, auth_mock): auth_resp_mock = mock.MagicMock() auth_resp_mock.token = 'foo' diff --git a/tox.ini b/tox.ini index 0dcea40f..25dc0869 100644 --- a/tox.ini +++ b/tox.ini @@ -1,43 +1,74 @@ [tox] -envlist = py39, flake8 -skipsdist=True +min_version = 4.0 +env_list = + unittests + build + lint + doc +isolated_build = true -[testenv:flake8] -commands=flake8 {posargs} +[tox:.package] +basepython = python3 + +[testenv:build] +description = generate proto and build pacakge +deps = + build + twine +depends = genproto +extras = protoc +commands = + python -m build + twine check dist/* -[testenv] -passenv = ETCD_ENDPOINT TEST_ETCD_VERSION -setenv = - PYTHONPATH = {toxinidir}:{toxinidir}/etcd3 -deps= - -r{toxinidir}/requirements/base.txt - -r{toxinidir}/requirements/test.txt +[testenv:unittests] +description = generate proto and run package unit tests +depends = genproto +extras = tests +#passenv = ETCD_ENDPOINT,TEST_ETCD_VERSION +allowlist_externals = + wget + tar + gzip + cp +commands_pre = + wget https://github.com/etcd-io/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz -O {env_tmp_dir}/etcd.tar.gz + tar xzvf {env_tmp_dir}/etcd.tar.gz -C {env_tmp_dir} + cp {env_tmp_dir}/etcd-v3.3.10-linux-amd64/etcd {envdir}/bin + cp {env_tmp_dir}/etcd-v3.3.10-linux-amd64/etcdctl {envdir}/bin commands = - pip install -U pip pifpaf -e PYTHON run etcd --cluster -- py.test --cov=etcd3 --cov-report= --basetemp={envtmpdir} {posargs} + coverage report -m + coverage xml + +[testenv:lint] +extras = tests +depends = genproto +commands = + flake8 --docstring-convention=numpy + black --line-length 90 --check --diff . -[testenv:coverage] -deps= - -r{toxinidir}/requirements/base.txt - -r{toxinidir}/requirements/test.txt -commands = py.test --cov=etcd3 tests/ + +[testenv:doc] +description = generate sphinx documentation +extras = + doc + protoc +depends = genproto +commands = + sphinx-build -b html -d docs/_build/doctress docs docs/_build + +[testenv:flake8] +commands=flake8 {posargs} [testenv:genproto] +description = generate proto only whitelist_externals = sed -deps = grpcio-tools +extras = protoc +allowlist_externals = + {toxinidir}/genproto.sh commands = - sed -i -e '/gogoproto/d' etcd3/proto/rpc.proto - sed -i -e 's/etcd\/mvcc\/mvccpb\/kv.proto/kv.proto/g' etcd3/proto/rpc.proto - sed -i -e 's/etcd\/auth\/authpb\/auth.proto/auth.proto/g' etcd3/proto/rpc.proto - sed -i -e '/google\/api\/annotations.proto/d' etcd3/proto/rpc.proto - sed -i -e '/option (google.api.http)/,+3d' etcd3/proto/rpc.proto - python -m grpc.tools.protoc -Ietcd3/proto \ - --python_out=etcd3/etcdrpc/ \ - --grpc_python_out=etcd3/etcdrpc/ \ - etcd3/proto/rpc.proto etcd3/proto/auth.proto etcd3/proto/kv.proto - sed -i -e 's/import auth_pb2/from etcd3.etcdrpc import auth_pb2/g' etcd3/etcdrpc/rpc_pb2.py - sed -i -e 's/import kv_pb2/from etcd3.etcdrpc import kv_pb2/g' etcd3/etcdrpc/rpc_pb2.py - sed -i -e 's/import rpc_pb2/from etcd3.etcdrpc import rpc_pb2/g' etcd3/etcdrpc/rpc_pb2_grpc.py + {toxinidir}/genproto.sh [flake8] exclude = .venv,.git,.tox,dist,docs,*lib/python*,*egg,build,etcd3/etcdrpc/ @@ -45,3 +76,7 @@ application-import-names = etcd3 max-complexity = 10 # TODO add docstrings for public methods, modules, etc ignore = D1, W503 +max-line-length = 90 + +[pytest] +tmp_path_retention_policy = none