Package org.apache.solr.common.cloud

## Class ZkCmdExecutor

- java.lang.Object
- - org.apache.solr.common.cloud.ZkCmdExecutor

    public class ZkCmdExecutor
    extends Object

### Constructor Summary

Constructors
`ZkCmdExecutor​(int timeoutms)`
`ZkCmdExecutor​(int timeoutms, ConnectionManager.IsClosed isClosed)` TODO: At this point, this should probably take a SolrZkClient in its constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `ensureExists​(String path, byte[] data, SolrZkClient zkClient)` Create a persistent znode with the given data if it does not already exist
`void` `ensureExists​(String path, byte[] data, org.apache.zookeeper.CreateMode createMode, SolrZkClient zkClient)` Create a znode with the given mode and data if it does not already exist
`void` `ensureExists​(String path, byte[] data, org.apache.zookeeper.CreateMode createMode, SolrZkClient zkClient, int skipPathParts)` Create a node if it does not exist
`void` `ensureExists​(String path, SolrZkClient zkClient)` Create a persistent znode with no data if it does not already exist
`long` `getRetryDelay()`
`protected void` `retryDelay​(int attemptCount)` Performs a retry delay if this is not the first attempt
`<T> T` `retryOperation​(ZkOperation<T> operation)` Perform the given operation, retrying if the connection fails
`void` `setRetryDelay​(long retryDelay)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ZkCmdExecutor

    public ZkCmdExecutor​(int timeoutms)

#### ZkCmdExecutor

    public ZkCmdExecutor​(int timeoutms,
                         ConnectionManager.IsClosed isClosed)

TODO: At this point, this should probably take a SolrZkClient in its constructor.

Parameters:
  `timeoutms` - the client timeout for the ZooKeeper clients that will be used with this class.

### Method Detail

#### getRetryDelay

    public long getRetryDelay()

#### setRetryDelay

    public void setRetryDelay​(long retryDelay)

#### retryOperation

    public <T> T retryOperation​(ZkOperation<T> operation)
                         throws org.apache.zookeeper.KeeperException,
                                InterruptedException

Perform the given operation, retrying if the connection fails

Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### ensureExists

    public void ensureExists​(String path,
                             SolrZkClient zkClient)
                      throws org.apache.zookeeper.KeeperException,
                             InterruptedException

Create a persistent znode with no data if it does not already exist

Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`
See Also:
  `ensureExists(String, byte[], CreateMode, SolrZkClient, int)`

#### ensureExists

    public void ensureExists​(String path,
                             byte[] data,
                             SolrZkClient zkClient)
                      throws org.apache.zookeeper.KeeperException,
                             InterruptedException

Create a persistent znode with the given data if it does not already exist

Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`
See Also:
  `ensureExists(String, byte[], CreateMode, SolrZkClient, int)`

#### ensureExists

    public void ensureExists​(String path,
                             byte[] data,
                             org.apache.zookeeper.CreateMode createMode,
                             SolrZkClient zkClient)
                      throws org.apache.zookeeper.KeeperException,
                             InterruptedException

Create a znode with the given mode and data if it does not already exist

Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`
See Also:
  `ensureExists(String, byte[], CreateMode, SolrZkClient, int)`

#### ensureExists

    public void ensureExists​(String path,
                             byte[] data,
                             org.apache.zookeeper.CreateMode createMode,
                             SolrZkClient zkClient,
                             int skipPathParts)
                      throws org.apache.zookeeper.KeeperException,
                             InterruptedException

Create a node if it does not exist

Parameters:
  `path` - the path at which to create the znode
  `data` - the optional data to set on the znode
  `createMode` - the mode with which to create the znode
  `zkClient` - the client to use to check and create
  `skipPathParts` - how many path elements to skip
Throws:
  `org.apache.zookeeper.KeeperException`
  `InterruptedException`

#### retryDelay

    protected void retryDelay​(int attemptCount)
                       throws InterruptedException

Performs a retry delay if this is not the first attempt

Parameters:
  `attemptCount` - the number of the attempts performed so far
Throws:
  `InterruptedException`