aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java
Publish
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java
new file mode 100644
index 00000000000..6c8b486c8a6
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/ZooKeepersConfigProvider.java
@@ -0,0 +1,47 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.model.admin;
+
+import com.yahoo.collections.CollectionUtil;
+import com.yahoo.cloud.config.ZookeepersConfig;
+import com.yahoo.config.model.api.ConfigServerSpec;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author tonytv
+ */
+public class ZooKeepersConfigProvider implements ZookeepersConfig.Producer {
+
+ public static final int zkPort = Integer.getInteger("zk_port", 2181);
+
+ private final List<Configserver> configServers;
+
+ public ZooKeepersConfigProvider(List<Configserver> configServers) {
+ if (configServers == null) {
+ configServers = new ArrayList<>();
+ }
+ this.configServers = configServers;
+ }
+
+ // format for each element: hostname:port
+ public List<String> getZooKeepers() {
+ List<String> servers = new ArrayList<>();
+ for (Configserver server : configServers) {
+ ConfigServerSpec serverSpec = server.getConfigServerSpec();
+ servers.add(serverSpec.getHostName() + ":" + serverSpec.getZooKeeperPort());
+
+ }
+ return servers;
+ }
+
+ // format: hostname1:port2,hostname2:port2,...
+ public String getZooKeepersConnectionSpec() {
+ return CollectionUtil.mkString(getZooKeepers(), ",");
+ }
+
+ @Override
+ public void getConfig(ZookeepersConfig.Builder builder) {
+ builder.zookeeperserverlist(getZooKeepersConnectionSpec());
+ }
+}