aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/test
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-05-07 13:34:18 +0200
committergjoranv <gv@verizonmedia.com>2019-05-07 13:34:18 +0200
commit7b31baa3a03c23874369a895b587c4617ade7aa0 (patch)
tree06f8bdddafd39b50b13510b2422ebf4ae0d5eea8 /config-model/src/test
parent58a6ce32c4cde7f3bfc3220248e8439d1834a9a5 (diff)
Require consecutive ports and add tests for port allocation.
Diffstat (limited to 'config-model/src/test')
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java33
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java14
2 files changed, 43 insertions, 4 deletions
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
index 28ea272d71a..ff486c6a437 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java
@@ -1,6 +1,7 @@
package com.yahoo.vespa.model.admin.metricsproxy;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensionsConfig;
+import ai.vespa.metricsproxy.rpc.RpcConnectorConfig;
import ai.vespa.metricsproxy.service.VespaServicesConfig;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainer.NodeDimensionNames;
@@ -8,14 +9,18 @@ import com.yahoo.vespa.model.test.VespaModelTester;
import org.junit.Test;
import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER;
+import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.CONTAINER_CONFIG_ID;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.MY_FLAVOR;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getHostedModel;
+import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getModel;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getNodeDimensionsConfig;
+import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getRpcConnectorConfig;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getVespaServicesConfig;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
/**
* @author gjoranv
@@ -43,6 +48,34 @@ public class MetricsProxyContainerTest {
}
@Test
+ public void http_server_is_running_on_expected_port() {
+ VespaModel model = getModel(servicesWithContent());
+ MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
+ assertEquals(19092, container.getSearchPort());
+ assertEquals(19092, container.getHealthPort());
+ assertEquals("http", container.getPortSuffixes()[0]);
+
+ assertTrue(container.getPortsMeta().getTagsAt(0).contains("http"));
+ assertTrue(container.getPortsMeta().getTagsAt(0).contains("state"));
+ }
+
+ @Test
+ public void rpc_server_is_running_on_expected_port() {
+ VespaModel model = getModel(servicesWithContent());
+
+ MetricsProxyContainer container = (MetricsProxyContainer)model.id2producer().get(CONTAINER_CONFIG_ID);
+
+ int rpcPort = container.metricsRpcPortOffset();
+ assertTrue(container.getPortsMeta().getTagsAt(rpcPort).contains("rpc"));
+ assertTrue(container.getPortsMeta().getTagsAt(rpcPort).contains("metrics"));
+
+ assertEquals("rpc/metrics", container.getPortSuffixes()[rpcPort]);
+
+ RpcConnectorConfig config = getRpcConnectorConfig(model);
+ assertEquals(19094, config.port());
+ }
+
+ @Test
public void hosted_application_propagates_node_dimensions() {
String services = servicesWithContent();
VespaModel hostedModel = getHostedModel(services);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
index 03d666c5c00..3e5c8a6ef0d 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java
@@ -7,6 +7,7 @@ package com.yahoo.vespa.model.admin.metricsproxy;
import ai.vespa.metricsproxy.core.ConsumersConfig;
import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensionsConfig;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensionsConfig;
+import ai.vespa.metricsproxy.rpc.RpcConnectorConfig;
import ai.vespa.metricsproxy.service.VespaServicesConfig;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provisioning.FlavorsConfig;
@@ -27,6 +28,9 @@ class MetricsProxyModelTester {
static final String MY_INSTANCE = "myinstance";
static final String MY_FLAVOR = "myflavor";
+ // Used for all configs that are produced by the container, not the cluster.
+ static final String CONTAINER_CONFIG_ID = "admin/metrics/0";
+
static VespaModel getModel(String servicesXml) {
var numberOfHosts = 1;
var tester = new VespaModelTester();
@@ -79,14 +83,16 @@ class MetricsProxyModelTester {
}
static NodeDimensionsConfig getNodeDimensionsConfig(VespaModel model) {
- String configId = "admin/metrics/0"; // This config is produced by the container, not the cluster
- return new NodeDimensionsConfig((NodeDimensionsConfig.Builder) model.getConfig(new NodeDimensionsConfig.Builder(), configId));
+ return new NodeDimensionsConfig((NodeDimensionsConfig.Builder) model.getConfig(new NodeDimensionsConfig.Builder(), CONTAINER_CONFIG_ID));
}
static VespaServicesConfig getVespaServicesConfig(String servicesXml) {
- String configId = "admin/metrics/0"; // This config is produced by the container, not the cluster
VespaModel model = getModel(servicesXml);
- return new VespaServicesConfig((VespaServicesConfig.Builder) model.getConfig(new VespaServicesConfig.Builder(), configId));
+ return new VespaServicesConfig((VespaServicesConfig.Builder) model.getConfig(new VespaServicesConfig.Builder(), CONTAINER_CONFIG_ID));
+ }
+
+ static RpcConnectorConfig getRpcConnectorConfig(VespaModel model) {
+ return new RpcConnectorConfig((RpcConnectorConfig.Builder) model.getConfig(new RpcConnectorConfig.Builder(), CONTAINER_CONFIG_ID));
}
private static Flavor flavorFromString(String name) {