summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat(tests): add Python 3.8 and remove Python 3.6 from the testing suitefeat/python-38-testsStephen Sorriaux2020-05-181-9/+9
| | | | Test Kazoo with CPython 2.7, CPython 3.7 and CPython 3.8. Deploy new Kazoo version only on CPython 3.8 job success.
* fix(core): '"is" with a literal' syntax errors (#609)Reid D McKenzie2020-05-181-2/+2
| | | | | | As of Python 3.8, "is" with a literal is a syntax warning because of the confusion between equality and instance identity it represents. Issue #607
* feat(chore): using Github templates for issues and PRs (#610)Stephen SORRIAUX2020-05-113-0/+56
| | | | | Let's make our life a little easier using those templates. See https://help.github.com/en/github/building-a-strong-community/about-issue-and-pull-request-templates for reference.
* Merge pull request #599 from pmazzini/lockCharles-Henri de Boysson2020-04-294-109/+209
|\ | | | | feat(core): interoperate with Go client
| * feat(test): Disable problematic hound-flake8-black integration.Charles-Henri de Boysson2020-04-282-0/+3
| | | | | | | | Per https://github.com/houndci/hound/issues/1769
| * feat(core): Use strict regex to identify lock contenders.Charles-Henri de Boysson2020-04-242-70/+93
| |
| * feat(core): Support additionaal lock contenter patternsCharles-Henri de Boysson2020-04-242-67/+125
| | | | | | | | | | Allows configurable multi-implementations cooperations in locks (e.g. Zookeeper python & go clients contending for the same lock).
| * [lock] interoperate with go clientPablo Mazzini2020-04-242-4/+20
|/
* Merge pull request #604 from ceache/fix/syncCharles-Henri de Boysson2020-04-152-9/+26
|\ | | | | fix(core): sync() return should be unchrooted
| * fix(core): sync() return should be unchrootedCharles-Henri de Boysson2020-04-152-9/+26
|/ | | | Resolves #601
* Merge pull request #598 from ceache/feat/pytestCharles-Henri de Boysson2020-04-1435-1042/+1153
|\ | | | | feat(test): Move to pytest
| * feat(test): Move to pytestCharles-Henri de Boysson2020-04-1435-1042/+1153
|/
* fix(core): allow requests to be queued in CONNECTING state (#374) (#588)Damien Diederen2020-03-093-9/+127
| | | | | | | | | | | | | | With this patch, requests issued while the client is in the 'CONNECTING' state get queued instead of raising a misleading 'SessionExpiredError'. This fixes https://github.com/python-zk/kazoo/issues/374, and brings Kazoo more in line with the Java and C clients. See the 'kazoo.client.KazooClient.state' documentation as well as these discussions for more details: https://github.com/python-zk/kazoo/pull/570#issuecomment-554798550 https://github.com/python-zk/kazoo/pull/583#issuecomment-586422386
* fix(tests): Disable JAAS isInitiator for ServerCharles-Henri de Boysson2020-02-235-55/+56
| | | | | Satisfy new Hound style/lint checks Upgrade to latest 3.5.6/3.4.14 Zookeeper releases.
* fix(tests): deactivate TCP port that was enabled by default.Stephen Sorriaux2020-02-231-0/+2
| | | | Since krb5 1.3 due to switch to Xenial.
* fix(tests): capitalize the default_domain valueStephen Sorriaux2020-02-231-1/+1
|
* fix(tests): weaker crypto when configuring KerberosStephen Sorriaux2020-02-231-0/+2
|
* fix(tests): prefix with toxinidir variable with a / to ensure path to ↵Stephen2020-02-231-1/+1
| | | | ensure-zookeeper-env.sh is correct
* feat(core): run SASL Kerberos tests as part of buildCharles-Henri de Boysson2020-02-2311-175/+431
| | | | | | | | | | | | * Install debian packages for KDC as part of Travis init. * Setup a loopback mini KDC for running tests. * Run SASL tests as part of Travis builds. * Improve harness cluster to support: * Reconfiguration when environment changes. * Different JAAS configurations (DIGEST/GSSAPI). * Moved SASL tests into own module, with specially configured harness. * Bumped default timeout to 15 sec to mitigate false negatives on Travis.
* Merge pull request #586 from ceache/feat/create2Charles-Henri de Boysson2020-02-183-13/+78
|\ | | | | feat(core): Add create2 support
| * feat(core): Add create2 supportCharles-Henri de Boysson2020-02-183-13/+78
|/
* fix(tests): specify -Dfile.encoding=UTF-8 when starting the ZK JVMDamien Diederen2020-02-102-1/+17
|
* fix(core): Implement proper retry backoff logic with jitter.Charles-Henri de Boysson2020-02-071-21/+17
| | | | | | | | | | | | | | | | | | New retry logic takes a maximum percentage off the canonical backoff, ensure gradual predictable retries timings while still having a controlable amount of jitter (re-introducing the `max_jitter` parameter) to avoids swarming client retries. Fix regression introduced in 60366d2c7910fc833991fad8e04bbe33817c0544 where retry/backoff logic produced only whole second (integer) retry delays. This produced inadequate retries on first retry and would generally not work on fast network where sub miliseconds retries are desired. Additionally, with high `max_delay` setting, as the range was always spanning from 0 until the last delay, it would also produce extremely random results with short delays following longer ones which is contrary to the expected backoff logic.
* fix(core): when connection fails, close the ConnectionHandler (#577) (#579)Jean-Marc Saffroy2019-11-101-0/+1
| | | | | | | | | When connection attempts fail repeatedly (e.g. all ZK servers are unavailable), eventually the socketpair in the ConnectionHandler fills up, and the Client gets stuck trying to write a single byte to the socketpair. Avoid this by ensuring we close the socketpair on a failed connection attempt.
* feat(CI): Keep only Python 3.{6,7} to CI and bump ZK versions to latests (#574)Stephen SORRIAUX2019-10-096-40/+42
| | | | | | | | | | | | | | * Switching to xenial distrib to make python 3.7 available * Testing against 3.5.5 instead of 3.5.4-beta and deploying new version for python 3.7 and zk 3.5.5 * Testing against zk 3.4.14 instead of 3.4.13 * Change pattern for slf4j-log4j lib * Since ZOOKEEPER-3156 it is now required to be authed to access ACLs * Drop support for ZK 3.3.x and Python 3.{4,5}
* feat(core): closed states instead of lost states (#573)David Bouchare2019-10-041-5/+5
| | | In order to be better in sync with the official documentation (https://zookeeper.apache.org/doc/r3.5.5/zookeeperProgrammers.html#ch_zkSessions) it is better to rename those variables to `close` instead of `lost`.
* fix(recipe): crash if None in znode (#569)Kurganov2019-10-011-1/+2
| | | | | | | | Avoid ``` File "/home/tests/kazoo/recipe/lock.py", line 341, in contenders contenders.append(data.decode('utf-8')) AttributeError: 'NoneType' object has no attribute 'decode' ```
* feat(utils): extend create_tcp_connection utility (#568)Paweł Szulik2019-08-061-3/+11
| | | | | | | | | | Add parameters to setup SSL context options and ciphers when playing with secure connection. It can be set via a handler: ``` class MySequentialThreadingHandler(SequentialThreadingHandler): def create_connection(self, *args, **kwargs): return create_tcp_connection(socket, options=MY_OPTIONS, ciphers=MY_CIPHERS, *args, **kwargs) ```
* feat(recipe): add support for curator SharedCount recipe (#559)BrianEaton12019-05-072-5/+48
| | | | | | | | | | | | | | | | | | * feat(recipe): add support for curator SharedCount recipe This feature allows Java clients using curator's SharedCount recipe and python clients using kazoo's Counter recipe to read and write from the same path without receiving type errors. example use: counter = zk.Counter("/curator", support_curator=True) counter += 2 counter -= 1 counter.value == 1 counter.pre_value == 2 counter.post_value == 1 Closes #558
* feat(core): improve SASL interface (#546)Charles-Henri de Boysson2019-02-1211-132/+280
| | | | | | | | | | | | | | | | | | | | | | | Move SASL configuration out of auth_data into its own dictionary which exposes more SASL features (e.g. server service name, client principal...). Legacy syntax is still supported for backward compatibilty. Remove SASL from auth_data and place it between 'connection' and 'zookeeper protocol level authentication' to simplify connection logic and bring code in line with the protocol stack (SASL wraps Zookeeper, not the other way around). Consistent exception, `AuthFailedError`, raised during authentication failure between SASL and ZK authentication. New 'SASLException' exception raised in case of SASL intrisinc failures. Add support for GSSAPI (Kerberos). Example connection using Digest-MD5: client = KazooClient( sasl_options={'mechanism': 'DIGEST-MD5', 'username': 'myusername', 'password': 'mypassword'} ) Example connection using GSSAPI (with some optional settings): client = KazooClient( sasl_options={'mechanism': 'GSSAPI', 'service': 'myzk', # optional 'principal': 'clt@EXAMPLE.COM'} # optional )
* fix(ci): deploying only for 1 jobStephen2019-01-291-2/+2
|
* chore: 2.6.1 release and changelogStephen2019-01-292-1/+18
|
* fix(handlers): make AsyncResult call all registered callbacks instantly if ↵laura-surcel2019-01-154-16/+49
| | | | | | the handler has stopped running (#549) This avoids zombie thread to appear when creating and closing the client right after. A new unit case is added.
* fix(client): add missing paren (#550)Tristan de Cacqueray2019-01-131-1/+1
|
* fix(core): support deprecated KazooRetry argument (#545)Charles-Henri de Boysson2018-12-111-1/+10
| | | | Accept kazoo<=2.5.0 KazooRetry 'max_jitter' argument and display a warning for backward compatibility.
* fix(recipe): No more memory leak when ChildrenWatch was stopped (#543)kulallwang2018-12-062-0/+36
| | | | | | | This ensures that the watcher is removed from the client listener when the func given to ChildrenWatch returns False. Previously, the watcher was never removed so the ChildrenWatch object would endlessly grow in memory. A unit test is added to ensure this case never happen again. Fix #542
* fix(core): reduce timeout for the first Connect() request (#540)Florian Margaine2018-11-271-1/+1
| | | | | In the case of a zookeeper server under pressure, it will typically try to maintain the quorum rather than handling client requests. In this kind of case, the quorum is maintained, the connection works, but the client is frozen there. Retrying after a shorter timeout means we can reconnect to another server before losing the session altogether.
* fix(recipe): No more memory leak once TreeCache was closed (#524)Jiangge Zhang2018-11-217-15/+171
| | | | | | | | | | fix(recipe): Fix memory leak of TreeCache recipe. Fix memory leak on idle handler and on closed TreeCache. Add new memory tests for TreeCache recipe that uses objgraph and other tests for various handler on TreeCache. Let TreeCache start in a safe way. The doc now suggest to close unused TreeCache.
* Merge pull request #535 from python-zk/release/2.6Ben Bangert2018-11-152-1/+33
|\ | | | | chore: 2.6.0 release and changelog
| * chore: 2.6.0 release and changelog2.6.0Stephen2018-11-142-1/+33
|/
* fix(core): ensure timeout argument is positive (#534)Chris Donati2018-11-092-1/+84
| | | | | | | | | Previously, a gap between calls to `time.time()` could lead to a situation where the current time was less than `end` during the `while` condition, but it was greater than `end` when assigning a value to `timeout_at`. Add tests to ensure a socket.error is raised instead of passing a nonpositive value as a timeout to socket.create_connection.
* style(Makefile): add self-documenting make targets (#531)Derek2018-10-261-21/+22
|
* Merge pull request #532 from salbertson/patch-1Ben Bangert2018-10-231-1/+1
|\ | | | | Add "Reviewed by Hound" badge
| * Add "Reviewed by Hound" badgeScott Albertson2018-10-181-1/+1
|/
* docs: make badges link to travis and pypi (#528)Nakul Pathak2018-10-161-2/+2
| | | * docs: make badges link to travis and pypi
* docs: specify description type for pypi to render correctlyNakul Pathak2018-10-092-2/+3
|
* docs: remove broken downloads badgeJeff Widman2018-10-091-2/+0
| | | Pypi quit offering download stats, so remove this broken badge.
* fix(core): get_children with include_data=True uses GetChildren2 types (#514)Jean-Marc Saffroy2018-10-081-1/+2
|
* feat(tests): update Zookeeper 3.5.2-alpha to 3.5.4-betaStephen2018-10-084-17/+73
| | | | | | | | | | Version of Zookeeper is upgraded from 3.5.2-alpha to 3.5.4-beta for automated tests. Reconfig now needs superuser authentification, a test is added to cover this feature. Additionnal configuration and jvm parameters can be added when initializing ManagedZookeeper. This is needed to ensure reconfig's tests to pass and can be used in the future for similar needs. Closes #477
* docs(core): fix broken zookeeper programmers guide linkNakul Pathak2018-10-081-1/+1
|