diff options
author | gjoranv <gv@verizonmedia.com> | 2019-05-07 13:34:18 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-05-07 13:34:18 +0200 |
commit | 7b31baa3a03c23874369a895b587c4617ade7aa0 (patch) | |
tree | 06f8bdddafd39b50b13510b2422ebf4ae0d5eea8 /config-model/src/test | |
parent | 58a6ce32c4cde7f3bfc3220248e8439d1834a9a5 (diff) |
Require consecutive ports and add tests for port allocation.
Diffstat (limited to 'config-model/src/test')
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) { |