summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-09-06 13:05:38 +0200
committerHarald Musum <musum@verizonmedia.com>2019-09-06 13:05:38 +0200
commitc5e9a9aeff2112a65906e8632aa07c65b409d4bd (patch)
tree08aca9995f15341784bd9a201cad07c1b3717dfe
parent8775886dc638b8f2ec739c86c14b8e081c19b137 (diff)
Use server id in config for singlenode zookeeper setups
Update tests accordingly and start numbering at 0, aw will be done by the code that creates zookeeper-server config
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java2
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java8
-rw-r--r--zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java27
3 files changed, 18 insertions, 19 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
index 2eff081f42d..38a6070d357 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
@@ -64,6 +64,8 @@ public class ConfigserverCluster extends AbstractConfigProducer
}
String myhostname = HostName.getLocalhost();
+ // TODO: Server index should be in interval [1, 254] according to doc,
+ // however, we cannot change this id for an existing server
for (int i = 0; i < configServers.length; i++) {
if (zookeeperIds[i] < 0) {
throw new IllegalArgumentException(String.format("Zookeeper ids cannot be negative, was %d for %s",
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
index 8342dfb16df..5b52f757dad 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
@@ -70,12 +70,8 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable {
// Includes all available commands in 3.4, except 'wchc' and 'wchp'
// Mandatory when using ZooKeeper 3.5
sb.append("4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs").append("\n");
- if (config.server().size() > 1) {
- ensureThisServerIsRepresented(config.myid(), config.server());
- for (ZookeeperServerConfig.Server server : config.server()) {
- addServerToCfg(sb, server);
- }
- }
+ ensureThisServerIsRepresented(config.myid(), config.server());
+ config.server().forEach(server -> addServerToCfg(sb, server));
return sb.toString();
}
diff --git a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
index db1852d9d2a..3f33892fd45 100644
--- a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
+++ b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
@@ -29,8 +29,8 @@ public class ZooKeeperServerTest {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
builder.zooKeeperConfigFile(cfgFile.getAbsolutePath());
builder.myidFile(idFile.getAbsolutePath());
- builder.server(newServer(1, "foo", 123, 321));
- builder.myid(1);
+ builder.server(newServer(0, "foo", 123, 321));
+ builder.myid(0);
createServer(builder);
validateConfigFileSingleHost(cfgFile);
validateIdFile(idFile, "");
@@ -42,9 +42,9 @@ public class ZooKeeperServerTest {
File idFile = folder.newFile();
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
builder.zooKeeperConfigFile(cfgFile.getAbsolutePath());
- builder.server(newServer(1, "foo", 123, 321));
- builder.server(newServer(2, "bar", 234, 432));
- builder.server(newServer(3, "baz", 345, 543));
+ builder.server(newServer(0, "foo", 123, 321));
+ builder.server(newServer(1, "bar", 234, 432));
+ builder.server(newServer(2, "baz", 345, 543));
builder.myidFile(idFile.getAbsolutePath());
builder.myid(1);
createServer(builder);
@@ -59,16 +59,16 @@ public class ZooKeeperServerTest {
@Test(expected = RuntimeException.class)
public void require_that_this_id_must_be_present_amongst_servers() {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
- builder.server(newServer(2, "bar", 234, 432));
- builder.server(newServer(3, "baz", 345, 543));
- builder.myid(1);
+ builder.server(newServer(1, "bar", 234, 432));
+ builder.server(newServer(2, "baz", 345, 543));
+ builder.myid(0);
createServer(builder);
}
@Test
public void juteMaxBufferCanBeSet() throws IOException {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
- builder.myid(1);
+ builder.myid(0);
File idFile = folder.newFile();
File cfgFile = folder.newFile();
@@ -110,7 +110,8 @@ public class ZooKeeperServerTest {
"clientPort=2181\n" +
"autopurge.purgeInterval=1\n" +
"autopurge.snapRetainCount=15\n" +
- "4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n";
+ "4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" +
+ "server.0=foo:321:123\n";
validateConfigFile(cfgFile, expected);
}
@@ -126,9 +127,9 @@ public class ZooKeeperServerTest {
"autopurge.purgeInterval=1\n" +
"autopurge.snapRetainCount=15\n" +
"4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" +
- "server.1=foo:321:123\n" +
- "server.2=bar:432:234\n" +
- "server.3=baz:543:345\n";
+ "server.0=foo:321:123\n" +
+ "server.1=bar:432:234\n" +
+ "server.2=baz:543:345\n";
validateConfigFile(cfgFile, expected);
}