summaryrefslogtreecommitdiff
path: root/tooz/drivers/etcd3.py
Commit message (Collapse)AuthorAgeFilesLines
* Deprecate the etcd3 driverTobias Urdin2022-03-151-0/+6
| | | | | | | | | | | | | | | | | | | | | | | The etcd3 driver depends on the python-etcd3 [1] library that is currently stale and no has no active maintenance [2] with a non-working CI that blocks all PRs. It's also currently blocking Tooz from supporting newer versions of tenacity [3] that a lot of projects is now pinning because newer version of tenacity dropped old legacy compatibility code that has been in there for years. We currently have etcd3gw as an alternative driver where the library the driver depends on is a deliverable that we maintain. [1] https://github.com/kragniz/python-etcd3 [2] https://github.com/kragniz/python-etcd3/issues/1719 [3] https://review.opendev.org/c/openstack/tooz/+/829412 Change-Id: Iff0cd3b51cfc45ecbddc831c55267e80e9c79cac
* Remove six libraryRiccardo Pittau2020-07-011-2/+1
| | | | | | | The tooz project doesn't support Python 2 anymore, using the six library should not be necessary. Change-Id: I9886cabcd13cbc615065ceb372efbf037dff1aeb
* Stop to use the __future__ module.Hervé Beraud2020-06-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The __future__ module [1] was used in this context to ensure compatibility between python 2 and python 3. We previously dropped the support of python 2.7 [2] and now we only support python 3 so we don't need to continue to use this module and the imports listed below. Imports commonly used and their related PEPs: - `division` is related to PEP 238 [3] - `print_function` is related to PEP 3105 [4] - `unicode_literals` is related to PEP 3112 [5] - `with_statement` is related to PEP 343 [6] - `absolute_import` is related to PEP 328 [7] [1] https://docs.python.org/3/library/__future__.html [2] https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html [3] https://www.python.org/dev/peps/pep-0238 [4] https://www.python.org/dev/peps/pep-3105 [5] https://www.python.org/dev/peps/pep-3112 [6] https://www.python.org/dev/peps/pep-0343 [7] https://www.python.org/dev/peps/pep-0328 Change-Id: I95809cf4035a6bc487b24f9e91aaa715921ad842
* Add TLS support in etcd3 and etcd3gw driversAlan Bishop2020-04-011-2/+12
| | | | | | | | The etcd3 and etcd3gw drivers parse CA, key and cert options from the coordination URL, and pass them on to the backend clients. The etcd3gw driver implements the "etcd3+https" scheme. Change-Id: I78d8ca0583f883f7f746791f82fbcc116458ce2c
* More explicitly document driver connection stringsBen Nemec2018-12-171-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | If you're not intimately familiar with RFC 1808 it can be a bit tricky to write tooz connection strings. In addition, some drivers do not document the options that they recognize in a connection string. This can force a user to read the driver code in order to figure out how to configure tooz to use said driver, which should not be the case. This change more explicitly documents the format of the connection string, including which parts of an RFC 1808 URI it recognizes, and the options that can be passed. It also clarifies which parts of the connection string are optional (possibly because they have defaults) and which must always be included. Note that not every possible configuration is documented. For example, the postgres driver supports multiple methods of configuring the connection host and port. For consistency, I only documented the one that matches the other drivers. This should be sufficient to allow a user to write a working connection string. This change also wires the etcd3 and etcd3gw drivers into the doc index since they were missing before. Change-Id: I66e54433115f27fb54badc2173f8f6044c49aacb
* Ensure consistent encoding of strings for IDJames Page2018-09-111-2/+2
| | | | | | | | Ensure that ID's are correctly binary encoded when strings are provided, resolving compatibility issues with Python 3. Change-Id: Ia417920a7600aacd43f17b95ecd6a34b5faa226b Related-Bug: 1530888
* Add etcd3 group supportJulien Danjou2017-07-051-23/+218
| | | | | | Sem-Ver: feature Change-Id: I1ce3a61c8e28b874df3583e08aa6a70f9506dd11
* Merge "Make sure Lock.heartbeat() returns True/False"Jenkins2017-07-051-4/+11
|\
| * Make sure Lock.heartbeat() returns True/FalseJulien Danjou2017-06-281-4/+11
| | | | | | | | | | | | | | - add a test to be sure that no lock refresh is made on non-acquired locks - add thread safety for etcd3 drivers on heartbeat() (like Redis) Change-Id: I350ea10163d59a06712c22c4c5be4dfcb6885bf8
* | Merge "etcd3: replace custom lock code by more recent etcd3 lock code"Jenkins2017-07-051-45/+14
|\ \ | |/
| * etcd3: replace custom lock code by more recent etcd3 lock codeJulien Danjou2017-06-231-45/+14
| | | | | | | | | | | | | | | | The code in python-etcd3 for locks has been adjusted to reflect how tooz wants his lock to work. That's amazing because now we can use them directly and not implement our own locking mechanism! Change-Id: Ia5741bae83cddd90f9bb78fba9173dca8509e6d9
* | Mutualize executor code in a mixin classJulien Danjou2017-06-211-1/+1
|/ | | | Change-Id: I364b0ca5a6361a818a084bbcb83c9e7855cb3583
* etcd3: use discard() rather than remove()Julien Danjou2017-05-221-4/+1
| | | | Change-Id: Icdf2ecc7e3500ef6c2efdc1f61d2431b13831141
* etcd: fix blocking argumentJulien Danjou2017-05-221-2/+0
| | | | | | The value should be passed, not only a boolean. No need for conversion. Change-Id: I73a8a1b377d9eb7e4a8b6433f0b09832756c7188
* etcd3: fix test runJulien Danjou2017-05-091-17/+73
| | | | | | | | | | pifpaf always exports the URL as being etcd:// which always loads the etcd driver, and never the etcd3 driver. Therefore, it's not currently tested. This fixes that by exporting a variable in tox that will allow us to replace the URL correctly. Change-Id: Id4f54bb1f729498a39e9bf58da8ee01562c4344b
* etcd3: add etcd3 coordination driverJay Pipes2017-04-171-0/+121
This patch adds support to Tooz for taking advantage of the etcd3 gRPC-based API (instead of the etcd2 HTTP/REST-based API) via the python-etcd3 library. Change-Id: Ic7c3d9be42a9912fcb09c43e7637270db4011c4a