diff options
author | Harald Musum <musum@yahooinc.com> | 2023-07-04 13:42:34 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-07-04 13:42:34 +0200 |
commit | 011fd0328ca9f309f952d22f5c14721b6ed80a16 (patch) | |
tree | 0a816adb9a885758a70895c4266a0d964954089c | |
parent | 8a5eafdae4bd65a7c70002184c6bbb80e558377f (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.java | 127 |
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() { |