summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-07-04 13:42:34 +0200
committerHarald Musum <musum@yahooinc.com>2023-07-04 13:42:34 +0200
commit011fd0328ca9f309f952d22f5c14721b6ed80a16 (patch)
tree0a816adb9a885758a70895c4266a0d964954089c
parent8a5eafdae4bd65a7c70002184c6bbb80e558377f (diff)
Rewrite to simplify later code changes in ClusterControllerConfig (avoid mock content cluster)
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java127
1 files changed, 61 insertions, 66 deletions
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
index 138852e1c5c..2f7ed875226 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
@@ -3,44 +3,40 @@ package com.yahoo.vespa.model.content;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
-import com.yahoo.config.model.test.MockRoot;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.text.XML;
import com.yahoo.vespa.config.content.FleetcontrollerConfig;
-import com.yahoo.vespa.model.builder.xml.dom.ModelElement;
+import com.yahoo.vespa.model.test.utils.ApplicationPackageUtils;
+import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg;
import org.junit.jupiter.api.Test;
-import org.w3c.dom.Document;
import static com.yahoo.config.model.test.TestUtil.joinLines;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class FleetControllerClusterTest {
- private ClusterControllerConfig parse(String xml, TestProperties props) {
- Document doc = XML.getDocument(xml);
- var deployState = new DeployState.Builder().properties(props).build();
- MockRoot root = new MockRoot("", deployState);
- var clusterElement = new ModelElement(doc.getDocumentElement());
- return new ClusterControllerConfig.Builder("storage",
- clusterElement,
- new ClusterResourceLimits.Builder(false,
- props.resourceLimitDisk(),
- props.resourceLimitMemory())
- .build(clusterElement).getClusterControllerLimits(),
- props.allowMoreThanOneContentGroupDown(new ClusterSpec.Id("default")))
- .build(root.getDeployState(), root, clusterElement.getXml());
+ private FleetcontrollerConfig parse(String xml, TestProperties props) {
+ var deployStateBuilder = new DeployState.Builder().properties(props);
+ props.allowMoreThanOneContentGroupDown(new ClusterSpec.Id("default"));
+ var mockPkg = new VespaModelCreatorWithMockPkg(null, xml, ApplicationPackageUtils.generateSchemas("type1"));
+ var model = mockPkg.create(deployStateBuilder);
+ var builder = new FleetcontrollerConfig.Builder();
+ model.getConfig(builder, "admin/cluster-controllers/0/components/clustercontroller-storage-configurer");
+ return builder.build();
}
- private ClusterControllerConfig parse(String xml) {
+ private FleetcontrollerConfig parse(String xml) {
return parse(xml, new TestProperties());
}
@Test
void testParameters() {
- FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder();
- parse("""
- <cluster id="storage">
- <documents/> <tuning>
+ var config = parse("""
+ <content id="storage" version="1.0">
+ <documents>
+ <document type="type1" mode="index"/>
+ </documents>
+ <redundancy>2</redundancy>
+ <tuning>
<bucket-splitting minimum-bits="7" />
<cluster-controller>
<init-progress-time>13</init-progress-time>
@@ -51,11 +47,9 @@ public class FleetControllerClusterTest {
<min-storage-up-ratio>0.3</min-storage-up-ratio>
</cluster-controller>
</tuning>
- </cluster>""",
- new TestProperties().setAllowMoreThanOneContentGroupDown(true)).
- getConfig(builder);
+ </content>""",
+ new TestProperties().setAllowMoreThanOneContentGroupDown(true));
- FleetcontrollerConfig config = new FleetcontrollerConfig(builder);
assertEquals(13 * 1000, config.init_progress_time());
assertEquals(27 * 1000, config.storage_transition_time());
assertEquals(4, config.max_premature_crashes());
@@ -67,33 +61,34 @@ public class FleetControllerClusterTest {
@Test
void testDurationParameters() {
- FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder();
- parse("<cluster id=\"storage\">\n" +
- " <documents/>" +
- " <tuning>\n" +
- " <cluster-controller>\n" +
- " <init-progress-time>13ms</init-progress-time>\n" +
- " </cluster-controller>\n" +
- " </tuning>\n" +
- "</cluster>").
- getConfig(builder);
-
- FleetcontrollerConfig config = new FleetcontrollerConfig(builder);
+ var config = parse(
+ "<content id='storage' version='1.0'>\n" +
+ "<documents>\n" +
+ " <document type='type1' mode='index'/>" +
+ "</documents>\n" +
+ "<redundancy>2</redundancy>\n" +
+ " <tuning>\n" +
+ " <cluster-controller>\n" +
+ " <init-progress-time>13ms</init-progress-time>\n" +
+ " </cluster-controller>\n" +
+ " </tuning>\n" +
+ "</content>");
+
assertEquals(13, config.init_progress_time());
}
@Test
void min_node_ratio_per_group_tuning_config_is_propagated() {
- FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder();
- parse("<cluster id=\"storage\">\n" +
- " <documents/>\n" +
- " <tuning>\n" +
- " <min-node-ratio-per-group>0.75</min-node-ratio-per-group>\n" +
- " </tuning>\n" +
- "</cluster>").
- getConfig(builder);
-
- FleetcontrollerConfig config = new FleetcontrollerConfig(builder);
+ var config = parse("<content id='storage' version='1.0'>" +
+ "<documents>" +
+ "<document type='type1' mode='index'/>" +
+ "</documents>" +
+ "<redundancy>2</redundancy>" +
+ " <tuning>\n" +
+ " <min-node-ratio-per-group>0.75</min-node-ratio-per-group>\n" +
+ " </tuning>\n" +
+ "</content>");
+
assertEquals(0.75, config.min_node_ratio_per_group(), 0.01);
}
@@ -126,18 +121,18 @@ public class FleetControllerClusterTest {
}
private FleetcontrollerConfig getConfigForResourceLimitsTuning(Double diskLimit, Double memoryLimit) {
- FleetcontrollerConfig.Builder builder = new FleetcontrollerConfig.Builder();
- parse(joinLines("<cluster id=\"test\">",
- "<documents/>",
- "<tuning>",
- " <resource-limits>",
- (diskLimit != null ? (" <disk>" + diskLimit + "</disk>") : ""),
- (memoryLimit != null ? (" <memory>" + memoryLimit + "</memory>") : ""),
- " </resource-limits>",
- "</tuning>" +
- "</cluster>")).
- getConfig(builder);
- return new FleetcontrollerConfig(builder);
+ return parse(joinLines("<content id='storage' version='1.0'>" +
+ "<documents>" +
+ "<document type='type1' mode='index'/>" +
+ "</documents>" +
+ "<redundancy>2</redundancy>" +
+ "<tuning>",
+ " <resource-limits>",
+ (diskLimit != null ? (" <disk>" + diskLimit + "</disk>") : ""),
+ (memoryLimit != null ? (" <memory>" + memoryLimit + "</memory>") : ""),
+ " </resource-limits>",
+ "</tuning>" +
+ "</content>"));
}
@Test
@@ -153,12 +148,12 @@ public class FleetControllerClusterTest {
}
private FleetcontrollerConfig getConfigForBasicCluster(TestProperties props) {
- var builder = new FleetcontrollerConfig.Builder();
- parse("<cluster id=\"storage\">\n" +
- " <documents/>\n" +
- "</cluster>", props).
- getConfig(builder);
- return new FleetcontrollerConfig(builder);
+ return parse("<content id='storage' version='1.0'>" +
+ "<documents>" +
+ "<document type='type1' mode='index'/>" +
+ "</documents>" +
+ "<redundancy>2</redundancy>" +
+ "</content>", props);
}
private FleetcontrollerConfig getConfigForBasicCluster() {