summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java112
1 files changed, 88 insertions, 24 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 06c9f78456c..01d40af5c61 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
@@ -9,6 +9,7 @@ import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.Flavor;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.Zone;
import com.yahoo.config.provisioning.FlavorsConfig;
import com.yahoo.container.core.ApplicationMetadataConfig;
@@ -114,34 +115,34 @@ public class ModelProvisioningTest {
VespaModel model = creator.create(new DeployState.Builder().modelHostProvisioner(new InMemoryProvisioner(Hosts.readFrom(new StringReader(hosts)), true)));
ApplicationContainerCluster mydisc = model.getContainerClusters().get("mydisc");
ApplicationContainerCluster mydisc2 = model.getContainerClusters().get("mydisc2");
- assertThat(mydisc.getContainers().size(), is(3));
- assertThat(mydisc.getContainers().get(0).getConfigId(), is("mydisc/container.0"));
+ assertEquals(3, mydisc.getContainers().size());
+ assertEquals("mydisc/container.0", (mydisc.getContainers().get(0).getConfigId()));
assertTrue(mydisc.getContainers().get(0).isInitialized());
- assertThat(mydisc.getContainers().get(1).getConfigId(), is("mydisc/container.1"));
+ assertEquals("mydisc/container.1", mydisc.getContainers().get(1).getConfigId());
assertTrue(mydisc.getContainers().get(1).isInitialized());
- assertThat(mydisc.getContainers().get(2).getConfigId(), is("mydisc/container.2"));
+ assertEquals("mydisc/container.2", mydisc.getContainers().get(2).getConfigId());
assertTrue(mydisc.getContainers().get(2).isInitialized());
- assertThat(mydisc2.getContainers().size(), is(2));
- assertThat(mydisc2.getContainers().get(0).getConfigId(), is("mydisc2/container.0"));
+ assertEquals(2, mydisc2.getContainers().size());
+ assertEquals("mydisc2/container.0", mydisc2.getContainers().get(0).getConfigId());
assertTrue(mydisc2.getContainers().get(0).isInitialized());
- assertThat(mydisc2.getContainers().get(1).getConfigId(), is("mydisc2/container.1"));
+ assertEquals("mydisc2/container.1", mydisc2.getContainers().get(1).getConfigId());
assertTrue(mydisc2.getContainers().get(1).isInitialized());
- assertThat(mydisc.getContainers().get(0).getJvmOptions(), is(""));
- assertThat(mydisc.getContainers().get(1).getJvmOptions(), is(""));
- assertThat(mydisc.getContainers().get(2).getJvmOptions(), is(""));
- assertThat(mydisc.getContainers().get(0).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
- assertThat(mydisc.getContainers().get(1).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
- assertThat(mydisc.getContainers().get(2).getPreLoad(), is(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so")));
- assertThat(mydisc.getMemoryPercentage(), is(Optional.empty()));
-
- assertThat(mydisc2.getContainers().get(0).getJvmOptions(), is("-verbosegc"));
- assertThat(mydisc2.getContainers().get(1).getJvmOptions(), is("-verbosegc"));
- assertThat(mydisc2.getContainers().get(0).getPreLoad(), is("lib/blablamalloc.so"));
- assertThat(mydisc2.getContainers().get(1).getPreLoad(), is("lib/blablamalloc.so"));
- assertThat(mydisc2.getMemoryPercentage(), is(Optional.of(45)));
- assertThat(mydisc2.getJvmGCOptions(), is(Optional.of("-XX:+UseParNewGC")));
+ assertEquals("", mydisc.getContainers().get(0).getJvmOptions());
+ assertEquals("", mydisc.getContainers().get(1).getJvmOptions());
+ assertEquals("", mydisc.getContainers().get(2).getJvmOptions());
+ assertEquals(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so"), mydisc.getContainers().get(0).getPreLoad());
+ assertEquals(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so"), mydisc.getContainers().get(1).getPreLoad());
+ assertEquals(getDefaults().underVespaHome("lib64/vespa/malloc/libvespamalloc.so"), mydisc.getContainers().get(2).getPreLoad());
+ assertEquals(Optional.empty(), mydisc.getMemoryPercentage());
+
+ assertEquals("-verbosegc", mydisc2.getContainers().get(0).getJvmOptions());
+ assertEquals("-verbosegc", mydisc2.getContainers().get(1).getJvmOptions());
+ assertEquals("lib/blablamalloc.so", mydisc2.getContainers().get(0).getPreLoad());
+ assertEquals("lib/blablamalloc.so", mydisc2.getContainers().get(1).getPreLoad());
+ assertEquals(Optional.of(45), mydisc2.getMemoryPercentage());
+ assertEquals(Optional.of("-XX:+UseParNewGC"), mydisc2.getJvmGCOptions());
QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
mydisc2.getConfig(qrStartBuilder);
QrStartConfig qrsStartConfig = new QrStartConfig(qrStartBuilder);
@@ -833,7 +834,7 @@ public class ModelProvisioningTest {
}
@Test
- public void test2ContentNodesWithContainerClusterProducesMixedClusterControllerCluster() throws ParseException {
+ public void test2ContentNodesWithContainerClusterProducesMixedClusterControllerCluster() {
String services =
"<?xml version='1.0' encoding='utf-8' ?>\n" +
"<services>" +
@@ -860,7 +861,7 @@ public class ModelProvisioningTest {
@Ignore // TODO: unignore when feature is enabled again
@Test
- public void test2ContentNodesOn2ClustersWithContainerClusterProducesMixedClusterControllerCluster() throws ParseException {
+ public void test2ContentNodesOn2ClustersWithContainerClusterProducesMixedClusterControllerCluster() {
String services =
"<?xml version='1.0' encoding='utf-8' ?>\n" +
"<services>" +
@@ -1204,7 +1205,70 @@ public class ModelProvisioningTest {
tester.addHosts("controller-bar-flavor", 3);
tester.addHosts("content-bar-flavor", 6);
VespaModel model = tester.createModel(services, true, 0); // fails unless the right flavors+counts are requested
- assertThat(model.getRoot().getHostSystem().getHosts().size(), is(totalHosts));
+ assertEquals(totalHosts, model.getRoot().getHostSystem().getHosts().size());
+ }
+
+ @Test
+ public void testRequestingSpecificNodeResources() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<services>" +
+ " <admin version='4.0'>" +
+ " <logservers>" +
+ " <nodes count='1' dedicated='true'>" +
+ " <resources vcpu='0.1' memory='0.2Gb' disk='300Gb'/>" +
+ " </nodes>" +
+ " </logservers>" +
+ " <slobroks>" +
+ " <nodes count='2' dedicated='true'>" +
+ " <resources vcpu='0.1' memory='0.3Gb' disk='1Gb'/>" +
+ " </nodes>" +
+ " </slobroks>" +
+ " </admin>" +
+ " <container version='1.0' id='container'>" +
+ " <nodes count='4'>" +
+ " <resources vcpu='12' memory='10Gb' disk='30Gb'/>" +
+ " </nodes>" +
+ " </container>" +
+ " <content version='1.0' id='foo'>" +
+ " <documents>" +
+ " <document type='type1' mode='index'/>" +
+ " </documents>" +
+ " <controllers>" +
+ " <nodes count='2' dedicated='true'>" +
+ " <resources vcpu='0.8' memory='3Gb' disk='2Gb'/>" +
+ " </nodes>" +
+ " </controllers>" +
+ " <nodes count='5'>" +
+ " <resources vcpu='8' memory='200Gb' disk='1Tb'/>" +
+ " </nodes>" +
+ " </content>" +
+ " <content version='1.0' id='bar'>" +
+ " <documents>" +
+ " <document type='type1' mode='index'/>" +
+ " </documents>" +
+ " <controllers>" +
+ " <nodes count='3' dedicated='true'>" +
+ " <resources vcpu='0.7' memory='2Gb' disk='2.5Gb'/>" +
+ " </nodes>" +
+ " </controllers>" +
+ " <nodes count='6'>" +
+ " <resources vcpu='10' memory='64Gb' disk='200Gb'/>" +
+ " </nodes>" +
+ " </content>" +
+ "</services>";
+
+ int totalHosts = 23;
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts(new NodeResources(0.1, 0.2, 300), 1);// Logserver
+ tester.addHosts(new NodeResources(0.1, 0.3, 1), 2); // Slobrok
+ tester.addHosts(new NodeResources(12, 10, 30), 4); // Container
+ tester.addHosts(new NodeResources(0.8, 3, 2), 2); // Controller-foo
+ tester.addHosts(new NodeResources(8, 200, 1000), 5); // Content-foo
+ tester.addHosts(new NodeResources(0.7, 2, 2.5), 3); // Controller-bar
+ tester.addHosts(new NodeResources(10, 64, 200), 6); // Content-bar
+ VespaModel model = tester.createModel(services, true, 0);
+ assertEquals(totalHosts, model.getRoot().getHostSystem().getHosts().size());
}
@Test