94 lines
5.4 KiB
Plaintext
94 lines
5.4 KiB
Plaintext
==========================================
|
|
ZooInspector - Browser and Editor for ZooKeeper Instances
|
|
Author: Colin Goodheart-Smithe
|
|
Date: February 2010
|
|
==========================================
|
|
|
|
ZooInspector is a Java Swing based application for browsing and editing ZooKeeper instances.
|
|
|
|
Contents
|
|
--------
|
|
- Features
|
|
- Pre-requisites
|
|
- Build Instructions
|
|
- Using ZooInspector
|
|
- Creating and Using Plugins
|
|
|
|
Features
|
|
--------
|
|
Below is a list of features in the current release of ZooInspector.
|
|
- Load connection settings from a zookeeper properties file
|
|
- Plugable DataEncryptionManagers to specify how data should be encrypted and decrypted in the Zookeeper instance
|
|
- Browseable tree view of the ZooKeeper instance
|
|
- View the data in a node
|
|
- View the ACL's currently applied to a node
|
|
- View the metadata for a node (Version, Number of Children, Last modified Tiem, etc.)
|
|
- Plugable NodeViewers interface
|
|
- Ability to save/load and set default Node Viewers
|
|
|
|
Pre-requisites
|
|
--------------
|
|
- The main zookeeper build script must have been run before building this module
|
|
|
|
Build Instructions
|
|
------------------
|
|
1. Open a command line.
|
|
2. cd into this directory
|
|
3. Run command: ant
|
|
4. ZooInspector will be built to ../../../build/contrib/ZooInspector
|
|
5. Copy zookeeper-3.x.x.jar into the lib sub-directory (if you are using zookeeper-3.3.0.jar it will have been
|
|
copied to this directory during the build
|
|
6. By default the zookeeper.cmd and zookeeper.sh files expect zookeeper-3.3.0.jar. If you are using another version
|
|
you will need to change these files to point to the zookeeper-3.x.x.jar you copied to the lib directory
|
|
7. To run ZooInspector run zooInspector.cmd (on Windows) or zooInspector.sh (on Linux). If you are using
|
|
zookeeper-3.3.0.jar and do not require any classpath changes you can run the zookeeper-dev-ZooInspector.jar
|
|
directly
|
|
|
|
Using ZooInspector
|
|
------------------
|
|
To start ZooInspector run zooInspector.cmd (on Windows) or zooInspector.sh (on Linux). If you are using
|
|
zookeeper-3.3.0.jar and do not require any classpath changes you can run the zookeeper-dev-ZooInspector.jar
|
|
directly.
|
|
|
|
Click the play button on the toolbar to bring up the connection dialog. From here you can enter connection
|
|
information for your zookeeper instance. You can also load the connection properties from a file. This file can
|
|
have the format as a normal zookeeper properties file (i.e. hosts and timeout key-value pairs) and van optional have
|
|
an encryptionManager key-value pair to specify the DataEncryptionManager to use for this connection
|
|
(DataEncryptionManagers are explained in further detail in the 'Creating and Using Plugins' section below). You can
|
|
also set the entered information as the defaults so that when you first start ZooInspector these settings are
|
|
automatically loaded into this dialog. Pressing the OK button with connect to your ZooKeeper instance and show the
|
|
current node tree on the left of the main panel.
|
|
|
|
Clicking a node in the node tree will load the data for that node into the node viewers. Three node viewers are
|
|
currently distributed with ZooInspector:
|
|
1. Node Data - This enables you to see the data current stored on that node. This data can be modified and
|
|
saved. The data is decrypted and encrypted using the DataEncryptionManager specified on the connection
|
|
dialog.
|
|
2. Node Metadata - This enables you to see the metadata associiated with this node. This is Essentially the data
|
|
obtained from the Stat object for this node.
|
|
3. Node ACLs - This allows you to see the ACLs currently applied to this node. Currently there is no ability
|
|
to change the ACLs on a node, but it is a feature I would like to add.
|
|
Other custom Node Viewers can be added, this is explained in the 'Creating and Using Plugins' section below.
|
|
|
|
|
|
Creating and Using Plugins
|
|
--------------------------
|
|
There are two types of plugin which can be used with ZooInspector:
|
|
1. DataEncryptionManager - This specifies how data should be encrypted and decrypted when working with a
|
|
zookeeper instance.
|
|
2. ZooInspectorNodeViewer - This is a GUI panel which provides a view of visualisation on a node.
|
|
More information on these interfaces can be found in the javadocs for this module.
|
|
|
|
To use a plugin in ZooInspector, build the plugin to a jar and copy the jar to the lib sub-directory. Edit the
|
|
zooInspector.cmd and/or zooInspector.sh files to include your new jar on the classpath and run ZooInspector.
|
|
|
|
For DataEncryptionManagers, click the play button to open the connection dialog and enter the full class name of
|
|
your DataEncryptionManager in the 'Data Encryption Manager' field. You can make this Data Encryption Manager the
|
|
default by clicking 'Set As Default'. Click the 'OK' button to instantiate and use your plugin.
|
|
|
|
For ZooInspectorNodeViewers, Click the 'Change Node Viewers' button on the toolbar (looks like a tree with a pencil)
|
|
and enter the full classname for your Node Viewer in the field left of the 'Add' button, then click the 'Add'
|
|
button. The Node Viewer will be instantiated and should appear in the list. You can change the order of the Node
|
|
viewers by clicking the up and dpwn buttons and delete a Node Viewer by clicking the delete button. You can save
|
|
to configuration to a file or set it as the default if necessary. Then click the 'OK' button and your Node Viewer
|
|
should appear in the tabs on the right of the main panel. |