diff options
Diffstat (limited to 'config-model/src/test/java/com/yahoo')
7 files changed, 43 insertions, 75 deletions
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 90b4625a282..f1dffe53ad7 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 @@ -15,6 +15,7 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; import com.yahoo.container.core.ApplicationMetadataConfig; import com.yahoo.search.config.QrStartConfig; +import com.yahoo.vespa.config.content.FleetcontrollerConfig; import com.yahoo.vespa.config.content.core.StorCommunicationmanagerConfig; import com.yahoo.vespa.config.content.core.StorStatusConfig; import com.yahoo.vespa.config.search.core.ProtonConfig; @@ -2352,6 +2353,38 @@ public class ModelProvisioningTest { } @Test + public void testAllow2ContentGroupsDown() { + String servicesXml = + "<?xml version='1.0' encoding='utf-8' ?>" + + "<services>" + + " <container version='1.0' id='qrs'>" + + " <nodes count='1'/>" + + " </container>" + + " <content version='1.0' id='content'>" + + " <redundancy>1</redundancy>" + + " <documents>" + + " <document type='type1' mode='index'/>" + + " </documents>" + + " <nodes count='4' groups='4'/>" + + " <tuning>" + + " <cluster-controller>" + + " <max-groups-allowed-down>2</max-groups-allowed-down>" + + " </cluster-controller>" + + " </tuning>" + + " </content>" + + "</services>"; + VespaModelTester tester = new VespaModelTester(); + tester.setModelProperties(new TestProperties().setAllowMoreThanOneContentGroupDown(true)); + tester.addHosts(9); + VespaModel model = tester.createModel(servicesXml, true, new DeployState.Builder() + .properties(new TestProperties().setAllowMoreThanOneContentGroupDown(true))); + + var fleetControllerConfigBuilder = new FleetcontrollerConfig.Builder(); + model.getConfig(fleetControllerConfigBuilder, "admin/standalone/cluster-controllers/0/components/clustercontroller-content-configurer"); + assertEquals(2, fleetControllerConfigBuilder.build().max_number_of_groups_allowed_to_be_down()); + } + + @Test public void containerWithZooKeeperSuboptimalNodeCountDuringRetirement() { String servicesXml = "<?xml version='1.0' encoding='utf-8' ?>" + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java deleted file mode 100644 index 3feb8888821..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ContainerInCloudValidatorTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.yahoo.vespa.model.application.validation; - -import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.model.NullConfigModelRegistry; -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.deploy.TestProperties; -import com.yahoo.config.model.test.MockApplicationPackage; -import com.yahoo.vespa.model.VespaModel; -import org.junit.jupiter.api.Test; -import org.xml.sax.SAXException; - -import java.io.IOException; - -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -public class ContainerInCloudValidatorTest { - - @Test - void failsWhenNoContainerInCloud() throws IOException, SAXException { - String noContainer = ""; - String container = """ - <container id='default' version='1.0'> - <nodes count='2' /> - </container> - """; - runValidatorOnApp(false, container); - runValidatorOnApp(false, noContainer); - runValidatorOnApp(true, container); - assertEquals("Vespa Cloud applications must have at least one container cluster", - assertThrows(IllegalArgumentException.class, - () -> runValidatorOnApp(true, noContainer)) - .getMessage()); - } - - private static void runValidatorOnApp(boolean isHosted, String container) throws IOException, SAXException { - String servicesXml = """ - <services version='1.0'> - %s - <content version='1.0'> - <redundancy>2</redundancy> - <documents> - </documents> - <nodes count='2' /> - </content> - </services> - """.formatted(container); - ApplicationPackage app = new MockApplicationPackage.Builder() - .withServices(servicesXml) - .build(); - DeployState deployState = new DeployState.Builder() - .applicationPackage(app) - .properties(new TestProperties().setHostedVespa(isHosted).setAllowUserFilters(false)) - .build(); - VespaModel model = new VespaModel(new NullConfigModelRegistry(), deployState); - new ContainerInCloudValidator().validate(model, deployState); - } - -} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java index 78d3838d39d..cb535380b18 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java @@ -35,7 +35,7 @@ public class ValidationTester { /** Creates a validation tester with 1 node available (in addition to cluster controllers) */ public ValidationTester() { - this(5); + this(4); } /** Creates a validation tester with number of nodes available and the given test properties */ diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidatorTest.java index 784174a35a0..5d0a1704a1d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidatorTest.java @@ -79,9 +79,6 @@ public class IndexingModeChangeValidatorTest { private static String getServices(String indexingMode) { return "<services version='1.0'>" + - " <container id='default-container' version='1.0'>" + - " <nodes count='1'/>" + - " </container>" + " <content id='default' version='1.0'>" + " <redundancy>1</redundancy>" + " <documents>" + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index a33b30f7d93..12a6ac00f48 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -1331,14 +1331,10 @@ public class ContentClusterTest extends ContentBaseTest { " </engine>" + " </content>" + " </services>"; - VespaModel model = createEnd2EndOneNode(new TestProperties() - .setHostedVespa(false) - .setMultitenant(true) - .setAllowMoreThanOneContentGroupDown(true), - services); + VespaModel model = createEnd2EndOneNode(new TestProperties().setAllowMoreThanOneContentGroupDown(true), services); var fleetControllerConfigBuilder = new FleetcontrollerConfig.Builder(); - model.getConfig(fleetControllerConfigBuilder, "admin/standalone/cluster-controllers/0/components/clustercontroller-storage-configurer"); + model.getConfig(fleetControllerConfigBuilder, "admin/cluster-controllers/0/components/clustercontroller-storage-configurer"); assertEquals(2, fleetControllerConfigBuilder.build().max_number_of_groups_allowed_to_be_down()); } 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 ae22542de6c..138852e1c5c 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 @@ -41,14 +41,14 @@ public class FleetControllerClusterTest { parse(""" <cluster id="storage"> <documents/> <tuning> - <bucket-splitting minimum-bits="7" /> <cluster-controller> + <bucket-splitting minimum-bits="7" /> + <cluster-controller> <init-progress-time>13</init-progress-time> <transition-time>27</transition-time> <max-premature-crashes>4</max-premature-crashes> <stable-state-period>72</stable-state-period> <min-distributor-up-ratio>0.7</min-distributor-up-ratio> <min-storage-up-ratio>0.3</min-storage-up-ratio> - <max-groups-allowed-down>2</max-groups-allowed-down> </cluster-controller> </tuning> </cluster>""", @@ -63,7 +63,6 @@ public class FleetControllerClusterTest { assertEquals(0.7, config.min_distributor_up_ratio(), 0.01); assertEquals(0.3, config.min_storage_up_ratio(), 0.01); assertEquals(7, config.ideal_distribution_bits()); - assertEquals(2, config.max_number_of_groups_allowed_to_be_down()); } @Test diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index 48ddf6b8a82..500fb0838e1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -21,7 +21,6 @@ import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -50,6 +49,7 @@ public class VespaModelTester { private final ConfigModelRegistry configModelRegistry; private boolean hosted = true; + private TestProperties modelProperties = new TestProperties(); private final Map<NodeResources, Collection<Host>> hostsByResources = new HashMap<>(); private ApplicationId applicationId = ApplicationId.defaultId(); private boolean useDedicatedNodeForLogserver = false; @@ -101,6 +101,9 @@ public class VespaModelTester { /** Sets whether this sets up a model for a hosted system. Default: true */ public void setHosted(boolean hosted) { this.hosted = hosted; } + /** Sets whether this sets up a model for a hosted system. Default: true */ + public void setModelProperties(TestProperties testProperties) { this.modelProperties = testProperties; } + /** Sets architecture to use for admin clusters. Default: x86_64 */ public void setAdminClusterArchitecture(Architecture architecture) { this.adminClusterArchitecture = architecture; @@ -206,7 +209,7 @@ public class VespaModelTester { provisioner = new SingleNodeProvisioner(); } - TestProperties properties = new TestProperties() + TestProperties properties = modelProperties .setMultitenant(hosted) // Note: system tests are multitenant but not hosted .setHostedVespa(hosted) .setApplicationId(applicationId) |