Kazoo 1.2 has just been released.
This release includes a number of changes to provide better debugging
support and production logging, improves the retry support and
simplifies and fixes the data watchers. A number of other changes are
noted in the full changelog.
On behalf of the Kazoo team,
Hanno
Full changelog:
1.2 (2013-07-24)
Features
********
- KazooClient can now be stopped more reliably even if its in the middle
of a long retry sleep. This utilizes the new interrupt feature of
KazooRetry which lets the sleep be broken down into chunks and an
interrupt function called to determine if the retry should fail early.
- Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a
max deadline, transition properly when connection fails to LOST, and
setup separate connection retry behavior from client command retry
behavior. Patches by Mike Lundy.
- Issue #100: Make it easier to see exception context in threading and
connection modules.
- Issue #85: Increase information density of logs and don't prevent
dynamic reconfiguration of log levels at runtime.
- Data-watchers for the same node are no longer 'stacked'. That is, if
a get and an exists call occur for the same node with the same watch
function, then it will be registered only once. This change results in
Kazoo behaving per Zookeeper client spec regarding repeat watch use.
Bug Handling
************
- Issue #53: Throw a warning upon starting if the chroot path doesn't
exist
so that it's more obvious when the chroot should be created before
performing more operations.
- Kazoo previously would let the same function be registered as a
data-watch
or child-watch multiple times, and then call it multiple times upon
being
triggered. This was non-compliant Zookeeper client behavior, the same
watch can now only be registered once for the same znode path per
Zookeeper
client documentation.
- Issue #105: Avoid rare import lock problems by moving module imports
in
client.py to the module scope.
- Issue #103: Allow prefix-less sequential znodes.
- Issue #98: Extend testing ZK harness to work with different file
locations
on some versions of Debian/Ubuntu.
- Issue #97: Update some docstrings to reflect current state of
handlers.
- Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a
max deadline, transition properly when connection fails to LOST, and
setup separate connection retry behavior from client command retry
behavior. Patches by Mike Lundy.
API Changes
***********
- The `kazoo.testing.harness.KazooTestHarness` class directly inherits
from
`unittest.TestCase` and you need to ensure to call its `__init__`
method.
- DataWatch no longer takes any parameters besides for the optional
function
during instantiation. The additional options are now implicitly True,
with
the user being left to ignore events as they choose. See the DataWatch
API docs for more information.
- Issue #99: Better exception raised when the writer fails to close. A
WriterNotClosedException that inherits from KazooException is now
raised
when the writer fails to close in time.
This release includes a number of changes to provide better debugging
support and production logging, improves the retry support and
simplifies and fixes the data watchers. A number of other changes are
noted in the full changelog.
On behalf of the Kazoo team,
Hanno
Full changelog:
1.2 (2013-07-24)
Features
********
- KazooClient can now be stopped more reliably even if its in the middle
of a long retry sleep. This utilizes the new interrupt feature of
KazooRetry which lets the sleep be broken down into chunks and an
interrupt function called to determine if the retry should fail early.
- Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a
max deadline, transition properly when connection fails to LOST, and
setup separate connection retry behavior from client command retry
behavior. Patches by Mike Lundy.
- Issue #100: Make it easier to see exception context in threading and
connection modules.
- Issue #85: Increase information density of logs and don't prevent
dynamic reconfiguration of log levels at runtime.
- Data-watchers for the same node are no longer 'stacked'. That is, if
a get and an exists call occur for the same node with the same watch
function, then it will be registered only once. This change results in
Kazoo behaving per Zookeeper client spec regarding repeat watch use.
Bug Handling
************
- Issue #53: Throw a warning upon starting if the chroot path doesn't
exist
so that it's more obvious when the chroot should be created before
performing more operations.
- Kazoo previously would let the same function be registered as a
data-watch
or child-watch multiple times, and then call it multiple times upon
being
triggered. This was non-compliant Zookeeper client behavior, the same
watch can now only be registered once for the same znode path per
Zookeeper
client documentation.
- Issue #105: Avoid rare import lock problems by moving module imports
in
client.py to the module scope.
- Issue #103: Allow prefix-less sequential znodes.
- Issue #98: Extend testing ZK harness to work with different file
locations
on some versions of Debian/Ubuntu.
- Issue #97: Update some docstrings to reflect current state of
handlers.
- Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a
max deadline, transition properly when connection fails to LOST, and
setup separate connection retry behavior from client command retry
behavior. Patches by Mike Lundy.
API Changes
***********
- The `kazoo.testing.harness.KazooTestHarness` class directly inherits
from
`unittest.TestCase` and you need to ensure to call its `__init__`
method.
- DataWatch no longer takes any parameters besides for the optional
function
during instantiation. The additional options are now implicitly True,
with
the user being left to ignore events as they choose. See the DataWatch
API docs for more information.
- Issue #99: Better exception raised when the writer fails to close. A
WriterNotClosedException that inherits from KazooException is now
raised
when the writer fails to close in time.