diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /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.java | 47 |
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()); + } +} |