We are psyched to announce the release of: tooz 0.16.0: Coordination library for distributed systems. This release is part of the liberty release series. With source available at: http://git.openstack.org/cgit/openstack/tooz For more details, please see the git log history below and: http://launchpad.net/python-tooz/+milestone/0.16.0 Please report issues through launchpad: http://bugs.launchpad.net/python-tooz/ Changes in tooz 0.15.0..0.16.0 ------------------------------ d819758 Updated from global requirements c6e7507 Updated from global requirements 32cdf82 Ensure lock(s) acquire/release returns boolean values c43590a Remove file-driver special no-async abilities 1f73fb6 Delay interpolating the LOG string 72524b3 Use `encodeutils.exception_to_unicode` for exception -> string function 7207ae6 Use the `excutils.raise_with_cause` after doing our type check 80d8847 Updated from global requirements 991202f Use the 'driver_lock' around read operations 97ef501 Updated from global requirements b74d709 Switch badges from 'pypip.in' to 'shields.io' fe266b0 Updated from global requirements 8f810b1 Add watch file driver support 3a38bc9 Make the file driver more capable (with regard to groups) e44b35d Ensure locks can not be created outside of the root file driver directory bab4406 Updated from global requirements 07a77f0 Use MySQL default port when not set explicitly e678f4c Use fasteners library for interprocess locks ec519f4 Implement watch/unwatch elected_as_leader for redis driver 736cf67 Updated from global requirements 80f9d57 Use lua locks instead of pipeline locks 473e90f Move more string constants to class constants with docstrings f16972d Updated from global requirements 184c019 Updated from global requirements 3d5fc42 Remove support for redis < 2.6.0 41d8a0d Expose Zookeeper client class constants 98dad59 Expose redis client class constants d175f02 Use a serialization/deserialization specific exception ca4de1b Expose memcache coord. class constants d79ddcc Explicitly start and execute most transactions cdac135 Provide and use a options collapsing function 9d8b146 Add zookeeper tag in setup.cfg 3d23012 Use pymemcache pooled client 1730a6d Use oslo.serialization msgpackutils 2c4a99b Provide ability for namespace customization for Zookeeper and Zake drivers a5e7d57 Typo in Locking doc ac13079 Move optional driver requirements to test-requirements.txt 0642baf Have run_watchers take a timeout and respect it 16490e5 Heartbeat on acquired locks copy 1664a04 Avoid using a thread local token storage Diffstat (except docs and test files) ------------------------------------- README.rst | 4 +- requirements-py3.txt | 13 +- requirements.txt | 15 +- setup.cfg | 1 + setup.py | 1 - test-requirements.txt | 20 +- tooz/coordination.py | 23 +- tooz/drivers/file.py | 471 +++++++++++++++++++++++++++++++++------- tooz/drivers/memcached.py | 143 ++++++------ tooz/drivers/mysql.py | 11 +- tooz/drivers/pgsql.py | 12 +- tooz/drivers/redis.py | 307 +++++++++++++------------- tooz/drivers/zake.py | 2 +- tooz/drivers/zookeeper.py | 37 ++-- tooz/locking.py | 15 +- tooz/utils.py | 92 ++++++-- 21 files changed, 894 insertions(+), 461 deletions(-) Requirements updates -------------------- diff --git a/requirements-py3.txt b/requirements-py3.txt index b61b75b..3f21949 100644 --- a/requirements-py3.txt +++ b/requirements-py3.txt @@ -4 +4 @@ -pbr>=0.6,!=0.7,<1.0 +pbr<2.0,>=0.11 @@ -6 +6 @@ Babel>=1.3 -stevedore>=1.3.0 # Apache-2.0 +stevedore>=1.5.0 # Apache-2.0 @@ -9,2 +8,0 @@ iso8601>=0.1.9 -kazoo>=1.3.1 -pymemcache>=1.2 # Apache 2.0 License @@ -13,3 +11,4 @@ msgpack-python>=0.4.0 -retrying>=1.2.3,!=1.3.0 # Apache-2.0 -oslo.utils>=1.4.0 # Apache-2.0 -redis>=2.10.0 +fasteners>=0.7 # Apache-2.0 +retrying!=1.3.0,>=1.2.3 # Apache-2.0 +oslo.utils>=1.6.0 # Apache-2.0 +oslo.serialization>=1.4.0 # Apache-2.0 diff --git a/requirements.txt b/requirements.txt index e995b54..2a70886 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr>=0.6,!=0.7,<1.0 +pbr<2.0,>=0.11 @@ -6 +6 @@ Babel>=1.3 -stevedore>=1.3.0 # Apache-2.0 +stevedore>=1.5.0 # Apache-2.0 @@ -9,2 +8,0 @@ iso8601>=0.1.9 -kazoo>=1.3.1 -pymemcache>=1.2 # Apache 2.0 License @@ -13,4 +11,5 @@ msgpack-python>=0.4.0 -retrying>=1.2.3,!=1.3.0 # Apache-2.0 -futures>=2.1.6 -oslo.utils>=1.4.0 # Apache-2.0 -redis>=2.10.0 +fasteners>=0.7 # Apache-2.0 +retrying!=1.3.0,>=1.2.3 # Apache-2.0 +futures>=3.0 +oslo.utils>=1.6.0 # Apache-2.0 +oslo.serialization>=1.4.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 56264a1..c078122 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,0 +4 @@ + @@ -6 +7 @@ pyflakes==0.8.1 -flake8==2.2.4 +flake8<=2.4.1,>=2.2.4 @@ -9,2 +10,2 @@ mock>=1.0 -sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 -oslosphinx>=2.5.0 # Apache-2.0 +sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 +oslosphinx>=2.5.0 # Apache-2.0 @@ -13 +14 @@ testrepository>=0.0.18 -testtools>=0.9.36,!=1.2.0 +testtools>=1.4.0 @@ -16,3 +16,0 @@ coverage>=3.6 -psycopg2 -PyMySQL>=0.6.2 # MIT License -sysv_ipc>=0.6.8 # BSD License @@ -19,0 +18,8 @@ fixtures>=0.3.14 + +# All the various optional drivers require these... +psycopg2 +PyMySQL>=0.6.2 # MIT License +sysv-ipc>=0.6.8 # BSD License +kazoo>=2.2 +pymemcache>=1.2.9 # Apache 2.0 License +redis>=2.10.0