summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-06-30 14:13:21 +0200
committerMartin Polden <mpolden@mpolden.no>2022-06-30 14:13:21 +0200
commit43782c8cdc64bd83f9a7380a484412e0f0833c1c (patch)
treef5c898367ce88ae5b68f608c7ebdbd938f4a7d14 /config-model/src
parent63d415951811b71dc94dec840673160f76e1a0a0 (diff)
Deprecate combined cluster
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java11
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java25
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java1
3 files changed, 32 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index f971aa97e6a..2b9961232ea 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -732,9 +732,14 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
private List<ApplicationContainer> createNodes(ApplicationContainerCluster cluster, Element containerElement, Element nodesElement, ConfigModelContext context) {
if (nodesElement.hasAttribute("type")) // internal use for hosted system infrastructure nodes
return createNodesFromNodeType(cluster, nodesElement, context);
- else if (nodesElement.hasAttribute("of")) // hosted node spec referencing a content cluster
- return createNodesFromContentServiceReference(cluster, nodesElement, context);
- else if (nodesElement.hasAttribute("count")) // regular, hosted node spec
+ else if (nodesElement.hasAttribute("of")) {// hosted node spec referencing a content cluster
+ // TODO: Remove support for combined clusters in Vespa 9
+ List<ApplicationContainer> containers = createNodesFromContentServiceReference(cluster, nodesElement, context);
+ log.log(WARNING, "Declaring combined cluster with <nodes of=\"...\"> is deprecated without " +
+ "replacement, and the feature will be removed in Vespa 9. Use separate container and " +
+ "content clusters instead");
+ return containers;
+ } else if (nodesElement.hasAttribute("count")) // regular, hosted node spec
return createNodesFromNodeCount(cluster, containerElement, nodesElement, context);
else if (cluster.isHostedVespa() && cluster.getZone().environment().isManuallyDeployed()) // default to 1 in manual zones
return createNodesFromNodeCount(cluster, containerElement, nodesElement, context);
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index 5e56efc4460..f5ff48c0c69 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -4,6 +4,7 @@ package com.yahoo.config.model.provision;
import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.cloud.config.log.LogdConfig;
import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
@@ -40,11 +41,13 @@ import com.yahoo.yolean.Exceptions;
import org.junit.Test;
import java.io.StringReader;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
+import java.util.logging.Level;
import java.util.stream.Collectors;
import static com.yahoo.config.model.test.TestUtil.joinLines;
@@ -268,7 +271,8 @@ public class ModelProvisioningTest {
"</services>";
VespaModelTester tester = new VespaModelTester();
tester.addHosts(5);
- VespaModel model = tester.createModel(xmlWithNodes, true);
+ TestLogger logger = new TestLogger();
+ VespaModel model = tester.createModel(xmlWithNodes, true, new DeployState.Builder().deployLogger(logger));
assertEquals("Nodes in content1", 2, model.getContentClusters().get("content1").getRootGroup().getNodes().size());
assertEquals("Nodes in container1", 2, model.getContainerClusters().get("container1").getContainers().size());
assertEquals("Heap size is lowered with combined clusters",
@@ -278,6 +282,10 @@ public class ModelProvisioningTest {
.get("content1")));
assertProvisioned(0, ClusterSpec.Id.from("container1"), ClusterSpec.Type.container, model);
assertProvisioned(2, ClusterSpec.Id.from("content1"), ClusterSpec.Id.from("container1"), ClusterSpec.Type.combined, model);
+ assertEquals(1, logger.msgs().size());
+ assertEquals("Declaring combined cluster with <nodes of=\"...\"> is deprecated without replacement, " +
+ "and the feature will be removed in Vespa 9. Use separate container and content clusters instead",
+ logger.msgs().get(0).message);
}
@Test
@@ -2295,4 +2303,19 @@ public class ModelProvisioningTest {
assertProvisioned(nodeCount, id, null, type, model);
}
+ record TestLogger(List<LogMessage> msgs) implements DeployLogger {
+
+ public TestLogger() {
+ this(new ArrayList<>());
+ }
+
+ @Override
+ public void log(Level level, String message) {
+ msgs.add(new LogMessage(level, message));
+ }
+
+ record LogMessage(Level level, String message) {}
+
+ }
+
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
index d91dba0572f..b65570d29cc 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
@@ -987,7 +987,6 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
createModel(root, deployState, null, DomBuilderTest.parse(containerService));
assertFalse(logger.msgs.isEmpty());
- System.out.println(logger.msgs);
assertEquals(Level.WARNING, logger.msgs.get(0).getFirst());
assertEquals(Level.WARNING, logger.msgs.get(1).getFirst());
assertEquals("Element 'prod' contains attribute 'global-service-id' deprecated since major version 7. See https://cloud.vespa.ai/en/reference/routing#deprecated-syntax",