summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-03-21 11:27:25 +0100
committergjoranv <gv@verizonmedia.com>2019-03-22 11:25:16 +0100
commitaf270d49303f907a39a4aa405ae58d49dfdbbdd4 (patch)
treedec3e30579f460acba0d9aad668d5872836afbb5 /config-model
parent5b3139774d8ce0740a92024334f015439caf3fb9 (diff)
Update tests and fix host/port allocation.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java25
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java4
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java2
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java19
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java38
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java10
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java2
11 files changed, 79 insertions, 38 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index 072882a17cc..bda9b37b0a1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -203,12 +203,13 @@ public class Admin extends AbstractConfigProducer implements Serializable {
}
private void addMetricsProxyCluster(List<HostResource> hosts, DeployState deployState) {
- var metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics-proxies", deployState);
- hosts.forEach(host -> {
- var container = new MetricsProxyContainer(metricsProxyCluster);
+ var metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics", deployState);
+ int index = 0;
+ for (var host : hosts) {
+ var container = new MetricsProxyContainer(metricsProxyCluster, index++);
addAndInitializeService(deployState.getDeployLogger(), host, container);
metricsProxyCluster.addContainer(container);
- });
+ }
}
private void addCommonServices(HostResource host, DeployState deployState) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
index 21dbe486f28..965ac3e80f1 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
@@ -13,8 +13,8 @@ import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_
*/
public class MetricsProxyContainer extends Container {
- public MetricsProxyContainer(AbstractConfigProducer parent) {
- super(parent, "" + 0, 0);
+ public MetricsProxyContainer(AbstractConfigProducer parent, int index) {
+ super(parent, "" + index, index);
}
@Override
@@ -22,4 +22,25 @@ public class MetricsProxyContainer extends Container {
return METRICS_PROXY_CONTAINER;
}
+ @Override
+ public int getWantedPort() {
+ return 19092; // TODO: current metrics-proxy uses 19091 as rpc port, will now get 19093.
+ }
+
+ @Override
+ public boolean requiresWantedPort() {
+ return true;
+ }
+
+ @Override
+ public int getPortCount() {
+ return super.getPortCount() + 1;
+ }
+
+ @Override
+ protected void tagServers() {
+ super.tagServers();
+ portsMeta.on(numHttpServerPorts).tag("rpc").tag("metrics");
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
index 18b30f26739..437df42d531 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
@@ -13,6 +13,7 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC
public MetricsProxyContainerCluster(AbstractConfigProducer<?> parent, String name, DeployState deployState) {
super(parent, name, name, deployState);
+ setRpcServerEnabled(false);
addDefaultHandlersExceptStatus();
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
index 8e0a06ad69c..6f5eaee2098 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java
@@ -69,7 +69,7 @@ public abstract class Container extends AbstractService implements
private final JettyHttpServer defaultHttpServer = new JettyHttpServer(new ComponentId("DefaultHttpServer"));
- private final int numHttpServerPorts;
+ protected final int numHttpServerPorts;
private static final int numRpcServerPorts = 2;
protected Container(AbstractConfigProducer parent, String name, int index) {
@@ -155,7 +155,7 @@ public abstract class Container extends AbstractService implements
tagServers();
}
- private void tagServers() {
+ protected void tagServers() {
if (numHttpServerPorts > 0) {
portsMeta.on(0).tag("http").tag("query").tag("external").tag("state");
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index d7819f63f23..a370e0dc38b 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -674,7 +674,7 @@ public abstract class ContainerCluster<CONTAINER extends Container>
boolean messageBusEnabled() { return messageBusEnabled; }
- public void setRpcServerEnabled(boolean rpcServerEnabled) { this.rpcServerEnabled = rpcServerEnabled; }
+ public final void setRpcServerEnabled(boolean rpcServerEnabled) { this.rpcServerEnabled = rpcServerEnabled; }
boolean rpcServerEnabled() { return rpcServerEnabled; }
diff --git a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
index 7a2c702a103..074ff610e9a 100644
--- a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
+++ b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
@@ -115,8 +115,8 @@ public class SystemModelTestCase {
assertEquals(host2, host3);
// all three host aliases are for the same host, so the number of services should be 3 + 8
- // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok and log server)
- assertEquals(9, host1.getServices().size());
+ // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok, logserver and metricsproxy)
+ assertEquals(10, host1.getServices().size());
assertNotNull(host1.getService("simpleservice"));
assertNotNull(host1.getService("simpleservice2"));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
index 2c8887b0247..f493bb568f6 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java
@@ -28,6 +28,7 @@ import org.junit.Test;
import java.util.Set;
+import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -37,9 +38,6 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-/**
- * @author gjoranv
- */
public class AdminTestCase {
private static final String TESTDIR = "src/test/cfg/admin/";
@@ -100,11 +98,12 @@ public class AdminTestCase {
SentinelConfig.Builder b = new SentinelConfig.Builder();
vespaModel.getConfig(b, localhostConfigId);
SentinelConfig sentinelConfig = new SentinelConfig(b);
- assertThat(sentinelConfig.service().size(), is(4));
+ assertThat(sentinelConfig.service().size(), is(5));
assertThat(sentinelConfig.service(0).name(), is("logserver"));
assertThat(sentinelConfig.service(1).name(), is("slobrok"));
assertThat(sentinelConfig.service(2).name(), is("slobrok2"));
- assertThat(sentinelConfig.service(3).name(), is("logd"));
+ assertThat(sentinelConfig.service(3).name(), is(METRICS_PROXY_CONTAINER.serviceName));
+ assertThat(sentinelConfig.service(4).name(), is("logd"));
}
/**
@@ -135,10 +134,11 @@ public class AdminTestCase {
SentinelConfig.Builder b = new SentinelConfig.Builder();
vespaModel.getConfig(b, localhostConfigId);
SentinelConfig sentinelConfig = new SentinelConfig(b);
- assertThat(sentinelConfig.service().size(), is(3));
+ assertThat(sentinelConfig.service().size(), is(4));
assertThat(sentinelConfig.service(0).name(), is("logserver"));
assertThat(sentinelConfig.service(1).name(), is("slobrok"));
- assertThat(sentinelConfig.service(2).name(), is("logd"));
+ assertThat(sentinelConfig.service(2).name(), is(METRICS_PROXY_CONTAINER.serviceName));
+ assertThat(sentinelConfig.service(3).name(), is("logd"));
assertThat(sentinelConfig.service(0).affinity().cpuSocket(), is(-1));
assertTrue(sentinelConfig.service(0).preShutdownCommand().isEmpty());
@@ -289,10 +289,11 @@ public class AdminTestCase {
TestRoot root = new TestDriver().buildModel(state);
String localhost = HostName.getLocalhost();
SentinelConfig sentinelConfig = root.getConfig(SentinelConfig.class, "hosts/" + localhost);
- assertThat(sentinelConfig.service().size(), is(3));
+ assertThat(sentinelConfig.service().size(), is(4));
assertThat(sentinelConfig.service(0).name(), is("logserver"));
assertThat(sentinelConfig.service(1).name(), is("slobrok"));
- assertThat(sentinelConfig.service(2).name(), is("logd"));
+ assertThat(sentinelConfig.service(2).name(), is(METRICS_PROXY_CONTAINER.serviceName));
+ assertThat(sentinelConfig.service(3).name(), is("logd"));
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
index 9f68b8b32bd..917927a72aa 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java
@@ -5,6 +5,7 @@ import com.yahoo.cloud.config.LogforwarderConfig;
import com.yahoo.cloud.config.SentinelConfig;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.NullConfigModelRegistry;
+import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
import com.yahoo.config.model.provision.Hosts;
@@ -26,7 +27,9 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID;
+import static com.yahoo.config.model.api.container.ContainerServiceType.CONTAINER;
+import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER;
+import static com.yahoo.config.model.api.container.ContainerServiceType.QRSERVER;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -71,10 +74,13 @@ public class DedicatedAdminV4Test {
VespaModel model = createModel(hosts, services);
assertEquals(3, model.getHosts().size());
- assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd");
- assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd");
+ assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd",
+ METRICS_PROXY_CONTAINER.serviceName);
+ assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd",
+ METRICS_PROXY_CONTAINER.serviceName);
// Note: A container is always added on logserver host
- assertHostContainsServices(model, "hosts/myhost2", "logserver", "logd", "container");
+ assertHostContainsServices(model, "hosts/myhost2", "logserver", "logd",
+ METRICS_PROXY_CONTAINER.serviceName, CONTAINER.serviceName);
Monitoring monitoring = model.getAdmin().getMonitoring();
assertEquals("vespa.routing", monitoring.getClustername());
@@ -126,10 +132,14 @@ public class DedicatedAdminV4Test {
assertEquals(4, model.getHosts().size());
// 4 slobroks, 2 per cluster where possible
- assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", "qrserver");
- assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd", "qrserver");
- assertHostContainsServices(model, "hosts/myhost2", "slobrok", "logd", "qrserver");
- assertHostContainsServices(model, "hosts/myhost3", "slobrok", "logd", "qrserver");
+ assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver",
+ METRICS_PROXY_CONTAINER.serviceName, QRSERVER.serviceName);
+ assertHostContainsServices(model, "hosts/myhost1", "slobrok", "logd",
+ METRICS_PROXY_CONTAINER.serviceName, QRSERVER.serviceName);
+ assertHostContainsServices(model, "hosts/myhost2", "slobrok", "logd",
+ METRICS_PROXY_CONTAINER.serviceName, QRSERVER.serviceName);
+ assertHostContainsServices(model, "hosts/myhost3", "slobrok", "logd",
+ METRICS_PROXY_CONTAINER.serviceName, QRSERVER.serviceName);
}
@Test
@@ -147,10 +157,13 @@ public class DedicatedAdminV4Test {
VespaModel model = createModel(hosts, services);
assertEquals(3, model.getHosts().size());
- assertHostContainsServices(model, "hosts/myhost0", "logd", "logforwarder", "slobrok");
- assertHostContainsServices(model, "hosts/myhost1", "logd", "logforwarder", "slobrok");
+ assertHostContainsServices(model, "hosts/myhost0", "logd", "logforwarder", "slobrok",
+ METRICS_PROXY_CONTAINER.serviceName);
+ assertHostContainsServices(model, "hosts/myhost1", "logd", "logforwarder", "slobrok",
+ METRICS_PROXY_CONTAINER.serviceName);
// Note: A container is always added on logserver host
- assertHostContainsServices(model, "hosts/myhost2", "logd", "logforwarder", "logserver", "container");
+ assertHostContainsServices(model, "hosts/myhost2", "logd", "logforwarder", "logserver",
+ METRICS_PROXY_CONTAINER.serviceName, CONTAINER.serviceName);
Set<String> configIds = model.getConfigIds();
// 1 logforwarder on each host
@@ -193,7 +206,8 @@ public class DedicatedAdminV4Test {
.properties(new TestProperties().setHostedVespa(true)));
assertEquals(1, model.getHosts().size());
// Should create a container on the same node as logserver
- assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver", "container");
+ assertHostContainsServices(model, "hosts/myhost0", "slobrok", "logd", "logserver",
+ METRICS_PROXY_CONTAINER.serviceName , CONTAINER.serviceName);
}
private Set<String> serviceNames(VespaModel model, String hostname) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java
index f13f53e8648..66f4a714e74 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java
@@ -58,9 +58,10 @@ public class ConfigValueChangeValidatorTest {
createVespaModel(createQrStartConfigSegment(true, 2096)),
createVespaModel(createQrStartConfigSegment(false, 2096))
);
- assertEquals(2, changes.size());
+ assertEquals(3, changes.size());
assertComponentsEquals(changes, "default/container.0", 0);
assertComponentsEquals(changes, "admin/cluster-controllers/0", 1);
+ assertComponentsEquals(changes, "admin/metrics/0", 2);
}
@Test
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
index 2c3e447533d..e7a1cbd6d8b 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.collections.CollectionUtil;
import com.yahoo.config.ConfigInstance;
import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.model.builder.xml.test.DomBuilderTest;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
@@ -34,6 +35,8 @@ import org.junit.rules.ExpectedException;
import java.util.Arrays;
import java.util.List;
+import static com.yahoo.config.model.api.container.ContainerServiceType.CLUSTERCONTROLLER_CONTAINER;
+import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertEquals;
@@ -236,10 +239,9 @@ public class ContentBuilderTest extends DomBuilderTest {
assertEquals(1, cluster.getRoot().getHostSystem().getHosts().size());
HostResource h = cluster.getRoot().getHostSystem().getHost("mockhost");
String [] expectedServices = {
- "logd", "configproxy",
- "config-sentinel", "configserver", "logserver",
- "slobrok", "container-clustercontroller",
- "storagenode", "distributor","searchnode","transactionlogserver"
+ "logd", "configproxy", "config-sentinel", "configserver", "logserver",
+ "slobrok", "storagenode", "distributor","searchnode","transactionlogserver",
+ CLUSTERCONTROLLER_CONTAINER.serviceName, METRICS_PROXY_CONTAINER.serviceName
};
assertServices(h, expectedServices);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java
index 14659494780..64fc4bc9062 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java
@@ -266,7 +266,7 @@ public class VespaModelTestCase {
assertThat(hosts.size(), is(1));
//logd, config proxy, sentinel, config server, slobrok, log server
HostInfo host = hosts.iterator().next();
- assertThat(host.getServices().size(), is(6));
+ assertThat(host.getServices().size(), is(7));
new LogdConfig((LogdConfig.Builder) model.getConfig(new LogdConfig.Builder(), "admin/model"));
}