Chapter 22. ZooKeeper Console Commands

By default, the ZooKeeper commands are not installed in a Fabric Container. To make the ZooKeeper commands available, install the fabric-zookeeper-commands feature, as follows:
features:install fabric-zookeeper-commands

22.1. zk:create

Abstract

create a znode

Synopsis

zk:create [ --help ] [ -r|--recursive ] [ -i|--import ] [ -e|--ephemeral ] [ -s|--sequential ] [ -a|--acl ListOfACLs ] [ -o|--overwrite ] { path } { data }

Description

Using this command, you can create the following different types of znode:
Persistent
The new znode is permanently stored in the ZooKeeper registry. This is the default.
Persistent sequential
The new znode is permanently stored in the ZooKeeper registry and a 10-digit sequence number is appended to the specified znode name. Selected by the --sequential option.
Ephemeral
The new znode exists only for the duration of the current client session. When the session is over, the znode is removed. Selected by the --ephemeral option.
Ephemeral sequential
The new znode exists only for the duration of the current client session and a 10-digit sequence number is appended to the specified znode name. When the session is over, the znode is removed. Selected by combining the --ephemeral option with the --sequential option.
You can optionally specify a list of ACLs to apply to the newly created znode. The ACL is specified as a comma-separated list, where each entry in the list has the following format:
Scheme:ID:Permissions
ZooKeeper supports the following built-in schemes:
world:anyone
The permissions apply to all users.
auth:
The permissions apply to all authenticated users, irrespective of their identity (the ID field is left empty).
digest:MD5Hash
The permissions apply to the user whose username and password generate the specified MD5 hash value, MD5Hash.
ip:IPAddress
The permissions apply to the ZooKeeper client with the specified IP address.
The Permissions string consists of one or more of the following characters: r (read), w (write), c (create), d (delete), and a (admin). For example, to create a new znode that explicitly grants all permissions to all users (which is, in fact, the default), you could use a command like the following:
karaf@root> zk:create --acl world:anyone:rwcda /path/to/the/new/znode
Important
To avoid corruption of the fabric registry, you should not create any znodes under the /fabric/ path using the zk:create command. These registry nodes should only be created through the fabric console commands—see Chapter 9, Fabric Console Commands.
Note
Fuse Fabric does not use the ACL security features of ZooKeeper. Currently, all znodes in the fabric registry are created without any ACL restrictions (equivalent to the world:anyone:rwcda ACL setting).

Arguments

Table 22.1, “zk:create Arguments” describes the commands arguments.

Table 22.1. zk:create Arguments

ArgumentInterpretation
--helpDisplays the online help for this command
-r,--recursiveAutomatically create any missing parent nodes in the specified path.
-i,--importInterpret the data argument as a URL that locates a resource containing the initial data for the new znode.
-e,--ephemeralMake the new znode epehemeral, so that it is automatically deleted after the current ZooKeeper client session closes.
-s,--sequentialMake the new znode sequential, which implies that a unique 10-digit suffix is appended to the znode name.
-a,--aclSpecifies the znode's ACL as a comma-separated list, where each entry in the list has the format, Scheme:ID:Permissions. The Permissions string consists of the following characters, concatenated in any order: r (read), w (write), c (create), d (delete), and a (admin).
-o,--overwriteOverwrite the existing znode at this location, if there is one.
path(Required) Path of the znode to create.
dataInitial data for the node or, if --import is specified, a URL pointing at a location that contains the initial data.