/zkwalker

Zookeeper znode tree recursive walker

Primary LanguageGoMIT LicenseMIT

zkwalker

Build status badge

ZkWalker is a recursive zookeeper znode tree walker.

It can be used as a command, or as a library from a go project.

Use as a command

Install the command:

$ go get github.com/igor-kupczynski/zkwalker/cmd/zkwalker

Help:

$ zkwalker -help
Usage of zkwalker:
  -auth string
    	<username:password> to use as a digest ACL
  -print
    	print the znode content as string
  -root string
    	znode from which to start the walk (default "/")
  connection-string
	comma separated list of zookeeper servers to connect to: host1:port1,...,hostN:portN

Print znode tree with the content of each of the znodes:

$ zkwalker -auth root:password -print -root /v1 1.2.3.4:2191
/v1
	{}
/v1/foo
	{}
/v1/foo/xyz
	{"xyz": true}
/v1/bar
	{}
/v1/bar/abc
	{"abc": true}

Use as a library

The command zkwalker offers a usage example.

Import the package:

import "github.com/igor-kupczynski/zkwalker/zkwalker"

Connect to your zookeeper ensemble:

walker, err := zkwalker.Connect(servers, ..)

Call Walk(...). ZnodeProcessor is a function called on each visited znode, while ChildrenProcessor allows customising which children to visit.

err := walker.Walk(root, nodeFn, zkwalker.AllChildren)