I recently started working with Python for Zookeeper. I am using `kazoo` library for Zookeeper. I need to keep a watch on my root node which is -
/my/example
couple of other nodes which might get added to my above root node will be like this -
/my/example/workflow
/my/example/workflow/v1
/my/example/workflow/v1/step1
/my/example/workflow/v1/step2
Now I need to check whether the children which got added in root node `/my/example` is `/my/example/workflow` or not. If `workflow` node gets added up in `/my/example` then I will keep a watch on `/my/example/workflow` node only and if any new children gets added up in `/my/example/workflow` node then I need to keep a watch on that node as well.
Let's say, children of `/my/example/workflow` is `/my/example/workflow/v1`, so now I need to keep a watch on `/my/example/workflow/v1` and then if any new nodes gets added up on this node `/my/example/workflow/v1` such as `/my/example/workflow/v1/step1` and `/my/example/workflow/v1/step2` then I need to print the children of `/my/example/workflow/v1` node and I won't make any new watches now.
Now I am not sure how to keep on calling watches on my children until certain point, here in this case till `/my/example/workflow/v1` I need to keep on watching and as soon as all the steps nodes gets added up, I need to print the children of `/my/example/workflow/v1`. Below is my code which works fine for watching on only one root node and now I am not sure how to do my above problem?
#!/usr/bin/python
from kazoo.client import KazooClient
zk = KazooClient(hosts='
127.0.0.1:2181')
zk.start()
@zk.ChildrenWatch("/my/example")
def watch_children(children):
print("Children are now: %s" % children)
Any help is really appreciated on this. I was following the documentation by reading the kazoo tutorial from [here](
http://kazoo.readthedocs.org/en/latest/basic_usage.html#watchers)