summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-06-11 12:09:17 +0200
committerGitHub <noreply@github.com>2019-06-11 12:09:17 +0200
commitb285157131ccf7a9a7e5b10e73d1ded8df1eacfc (patch)
tree47b1e297400251489f1d96cc477c99c1032e2741 /config-model/src
parent9162dfe36a859f659f4d76883b5604fd50caa99a (diff)
parent8a16228d0e5528833f454fb5e4afc6631e9a35ec (diff)
Merge pull request #9732 from vespa-engine/gjoranv/ensure-same-host
Gjoranv/ensure same host
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyModelTester.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java2
5 files changed, 13 insertions, 8 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 44c10b0738b..03c8055dd12 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
@@ -221,7 +221,9 @@ public class Admin extends AbstractConfigProducer implements Serializable {
metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics", deployState);
int index = 0;
for (var host : hosts) {
- var container = new MetricsProxyContainer(metricsProxyCluster, index++, deployState.isHosted());
+ // Send hostname to be used in configId (instead of index), as the sorting of hosts seems to be unstable
+ // between config changes, even when the set of hosts is unchanged.
+ var container = new MetricsProxyContainer(metricsProxyCluster, host.getHostname(), index, deployState.isHosted());
addAndInitializeService(deployState.getDeployLogger(), host, container);
metricsProxyCluster.addContainer(container);
}
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 e683b70bbde..3bc38cad1d1 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
@@ -45,8 +45,8 @@ public class MetricsProxyContainer extends Container implements
private final boolean isHostedVespa;
- public MetricsProxyContainer(AbstractConfigProducer parent, int index, boolean isHostedVespa) {
- super(parent, "metricsproxy." + index, index);
+ public MetricsProxyContainer(AbstractConfigProducer parent, String hostname, int index, boolean isHostedVespa) {
+ super(parent, hostname, index);
this.isHostedVespa = isHostedVespa;
setProp("clustertype", "admin");
setProp("index", String.valueOf(index));
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 a10a5dcf4cc..d2bf4b601a6 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
@@ -9,6 +9,7 @@ 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.CLUSTER_CONFIG_ID;
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;
@@ -101,7 +102,9 @@ public class MetricsProxyContainerTest {
public void hosted_application_propagates_node_dimensions() {
String services = servicesWithContent();
VespaModel hostedModel = getHostedModel(services);
- NodeDimensionsConfig config = getNodeDimensionsConfig(hostedModel);
+ assertEquals(1, hostedModel.getHosts().size());
+ String configId = CLUSTER_CONFIG_ID + "/" + hostedModel.getHosts().iterator().next().getHostname();
+ NodeDimensionsConfig config = getNodeDimensionsConfig(hostedModel, configId);
assertEquals("content", config.dimensions(NodeDimensionNames.CLUSTER_TYPE));
assertEquals("my-content", config.dimensions(NodeDimensionNames.CLUSTER_ID));
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 81b06e54585..13589c763e2 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
@@ -32,7 +32,7 @@ class MetricsProxyModelTester {
static final String CLUSTER_CONFIG_ID = "admin/metrics";
// Used for all configs that are produced by the container, not the cluster.
- static final String CONTAINER_CONFIG_ID = CLUSTER_CONFIG_ID + "/metricsproxy.0";
+ static final String CONTAINER_CONFIG_ID = CLUSTER_CONFIG_ID + "/localhost";
static VespaModel getModel(String servicesXml) {
var numberOfHosts = 1;
@@ -87,8 +87,8 @@ class MetricsProxyModelTester {
return new QrStartConfig((QrStartConfig.Builder) model.getConfig(new QrStartConfig.Builder(), CLUSTER_CONFIG_ID));
}
- static NodeDimensionsConfig getNodeDimensionsConfig(VespaModel model) {
- return new NodeDimensionsConfig((NodeDimensionsConfig.Builder) model.getConfig(new NodeDimensionsConfig.Builder(), CONTAINER_CONFIG_ID));
+ static NodeDimensionsConfig getNodeDimensionsConfig(VespaModel model, String configId) {
+ return new NodeDimensionsConfig((NodeDimensionsConfig.Builder) model.getConfig(new NodeDimensionsConfig.Builder(), configId));
}
static VespaServicesConfig getVespaServicesConfig(String servicesXml) {
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 3fbfbf33fb3..6d9eabf326b 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
@@ -61,7 +61,7 @@ public class ConfigValueChangeValidatorTest {
assertEquals(3, changes.size());
assertComponentsEquals(changes, "default/container.0", 0);
assertComponentsEquals(changes, "admin/cluster-controllers/0", 1);
- assertComponentsEquals(changes, "admin/metrics/metricsproxy.0", 2);
+ assertComponentsEquals(changes, "admin/metrics/localhost", 2);
}
@Test