fc85db067a
Change-Id: Ib236d2061f5f375f7314993db7e6fc38d0f8750b
42 lines
1.5 KiB
ReStructuredText
42 lines
1.5 KiB
ReStructuredText
=====================
|
|
Group Membership
|
|
=====================
|
|
|
|
Basic operations
|
|
===================
|
|
|
|
One of the feature provided by the coordinator is the ability to handle
|
|
group membership. Once a group is created, any coordinator can join the
|
|
group and become a member of it. Any coordinator can be notified when a
|
|
members joins or leaves the group.
|
|
|
|
.. literalinclude:: ../../../examples/group_membership.py
|
|
:language: python
|
|
|
|
Note that all the operation are asynchronous. That means you cannot be sure
|
|
that your group has been created or joined before you call the
|
|
:meth:`tooz.coordination.CoordAsyncResult.get` method.
|
|
|
|
You can also leave a group using the
|
|
:meth:`tooz.coordination.CoordinationDriver.leave_group` method. The list of
|
|
all available groups is retrievable via the
|
|
:meth:`tooz.coordination.CoordinationDriver.get_groups` method.
|
|
|
|
Watching Group Changes
|
|
======================
|
|
It's possible to watch and get notified when the member list of a group
|
|
changes. That's useful to run callback functions whenever something happens
|
|
in that group.
|
|
|
|
|
|
.. literalinclude:: ../../../examples/group_membership_watch.py
|
|
:language: python
|
|
|
|
Using :meth:`tooz.coordination.CoordinationDriver.watch_join_group` and
|
|
:meth:`tooz.coordination.CoordinationDriver.watch_leave_group` your
|
|
application can be notified each time a member join or leave a group. To
|
|
stop watching an event, the two methods
|
|
:meth:`tooz.coordination.CoordinationDriver.unwatch_join_group` and
|
|
:meth:`tooz.coordination.CoordinationDriver.unwatch_leave_group` allow to
|
|
unregister a particular callback.
|