summaryrefslogtreecommitdiffstats
path: root/zookeeper-server/zookeeper-server-common
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-12-07 13:37:26 +0100
committerHarald Musum <musum@verizonmedia.com>2020-12-07 13:37:26 +0100
commitf98e158a6f61cd39029f439da903f10e75e4c3fa (patch)
treeca0ad83241f461097e790c4ddaaddb6d5a796839 /zookeeper-server/zookeeper-server-common
parentc183491dd0d3ad22477f4c1f884bec07156956bf (diff)
Split out a ZKAdmin interface and implement it
Diffstat (limited to 'zookeeper-server/zookeeper-server-common')
-rw-r--r--zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ReconfigException.java19
-rw-r--r--zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZkAdmin.java18
2 files changed, 37 insertions, 0 deletions
diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ReconfigException.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ReconfigException.java
new file mode 100644
index 00000000000..ade9245615b
--- /dev/null
+++ b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ReconfigException.java
@@ -0,0 +1,19 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.zookeeper;
+
+/**
+ * Interface for reconfiguring a zookeeper cluster.
+ *
+ * @author hmusum
+ */
+@SuppressWarnings("serial")
+public class ReconfigException extends RuntimeException {
+
+ public ReconfigException(Throwable cause) {
+ super(cause);
+ }
+
+ public ReconfigException(String message) {
+ super(message);
+ }
+}
diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZkAdmin.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZkAdmin.java
new file mode 100644
index 00000000000..fb62f662566
--- /dev/null
+++ b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZkAdmin.java
@@ -0,0 +1,18 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.zookeeper;
+
+import java.time.Duration;
+
+/**
+ * Interface for administering a zookeeper cluster. Currently only supports reconfiguring a zookeeper cluster.
+ *
+ * @author hmusum
+ */
+public interface ZkAdmin {
+
+ void reconfigure(String connectionSpec, String joiningServers, String leavingServers) throws ReconfigException;
+
+ /* Timeout for connecting to ZooKeeper */
+ default Duration sessionTimeout() { return Duration.ofSeconds(30); }
+
+}