summaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/config
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-09-17 09:58:17 +0200
committerolaaun <ola.aunroe@gmail.com>2018-09-17 09:58:17 +0200
commitad5d584fd2fd1e10877d1914129385fc29f3e86e (patch)
treed181e94b06485e42a37a37bb0bab10b6053c9b8c /config-model/src/test/java/com/yahoo/config
parent75117bc46335bdd458b2468e28b0c2af9ea4a66b (diff)
Call prepare() on logserver container cluster (#6970)
Diffstat (limited to 'config-model/src/test/java/com/yahoo/config')
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java61
1 files changed, 61 insertions, 0 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 85c75309d23..121863f454f 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
@@ -6,8 +6,13 @@ import com.yahoo.config.model.api.HostInfo;
import com.yahoo.config.model.deploy.DeployProperties;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.ClusterMembership;
+import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
+import com.yahoo.config.provision.RegionName;
+import com.yahoo.config.provision.SystemName;
+import com.yahoo.config.provision.Zone;
import com.yahoo.config.provisioning.FlavorsConfig;
+import com.yahoo.container.core.ApplicationMetadataConfig;
import com.yahoo.search.config.QrStartConfig;
import com.yahoo.searchdefinition.parser.ParseException;
import com.yahoo.vespa.config.search.core.ProtonConfig;
@@ -16,6 +21,7 @@ import com.yahoo.vespa.model.HostResource;
import com.yahoo.vespa.model.HostSystem;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.admin.Admin;
+import com.yahoo.vespa.model.admin.Logserver;
import com.yahoo.vespa.model.admin.Slobrok;
import com.yahoo.vespa.model.container.Container;
import com.yahoo.vespa.model.container.ContainerCluster;
@@ -927,6 +933,36 @@ public class ModelProvisioningTest {
}
@Test
+ public void testLogserverContainerWhenDedicatedLogserver() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<services>" +
+ " <admin version='4.0'>" +
+ " <logservers>" +
+ " <nodes count='1' dedicated='true'/>" +
+ " </logservers>" +
+ " </admin>" +
+ " <container version='1.0' id='foo'>" +
+ " <nodes count='1'/>" +
+ " </container>" +
+ "</services>";
+ testContainerOnLogserverHost(services);
+ }
+
+ @Test
+ @Ignore // Ignore until we create container on logserver implicitly
+ public void testImplicitLogserverContainer() {
+ String services =
+ "<?xml version='1.0' encoding='utf-8' ?>\n" +
+ "<services>" +
+ " <container version='1.0' id='foo'>" +
+ " <nodes count='1'/>" +
+ " </container>" +
+ "</services>";
+ testContainerOnLogserverHost(services);
+ }
+
+ @Test
public void testUsingNodesAndGroupCountAttributesAndGettingTooFewNodes() {
String services =
"<?xml version='1.0' encoding='utf-8' ?>" +
@@ -1712,4 +1748,29 @@ public class ModelProvisioningTest {
return new ProtonConfig(builder);
}
+ // Tests that a container is allocated on logserver host and that
+ // it is able to get config
+ private void testContainerOnLogserverHost(String services) {
+ int numberOfHosts = 2;
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts(numberOfHosts);
+ Zone zone = new Zone(SystemName.cd, Environment.prod, RegionName.defaultName());
+
+ VespaModel model = tester.createModel(zone, services, true);
+ assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts));
+
+ Admin admin = model.getAdmin();
+ Logserver logserver = admin.getLogserver();
+ HostResource hostResource = logserver.getHostResource();
+ assertNotNull(hostResource.getService("logserver"));
+ assertNotNull(hostResource.getService("container"));
+
+ // Test that the container gets config
+ String configId = admin.getLogserver().getHostResource().getService("container").getConfigId();
+ ApplicationMetadataConfig.Builder builder = new ApplicationMetadataConfig.Builder();
+ model.getConfig(builder, configId);
+ ApplicationMetadataConfig cfg = new ApplicationMetadataConfig(builder);
+ assertEquals(1, cfg.generation());
+ }
+
}