diff options
author | Harald Musum <musum@oath.com> | 2018-09-17 09:58:17 +0200 |
---|---|---|
committer | olaaun <ola.aunroe@gmail.com> | 2018-09-17 09:58:17 +0200 |
commit | ad5d584fd2fd1e10877d1914129385fc29f3e86e (patch) | |
tree | d181e94b06485e42a37a37bb0bab10b6053c9b8c /config-model/src/test/java/com/yahoo/config | |
parent | 75117bc46335bdd458b2468e28b0c2af9ea4a66b (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.java | 61 |
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()); + } + } |