diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-04-29 12:12:25 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-04-29 12:12:25 +0200 |
commit | 825686155680d77314ccf5c024e9b09662844f3c (patch) | |
tree | 76770af7760d7008cfe7c7ecb6270de25599b7d4 /config-model/src/test/java/com | |
parent | 46fb92423a8c93366319ae12755766be99197300 (diff) |
Assign Slobroks only on cluster controllers
Diffstat (limited to 'config-model/src/test/java/com')
-rw-r--r-- | config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java | 53 |
1 files changed, 39 insertions, 14 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 10019b00f61..96e228ca1f7 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 @@ -495,9 +495,8 @@ public class ModelProvisioningTest { Set<HostResource> clusterControllerHosts = admin.getClusterControllers().getContainers() .stream().map(cc -> cc.getHostResource()).collect(Collectors.toSet()); Set<HostResource> slobrokHosts = admin.getSlobroks().stream().map(Slobrok::getHost).collect(Collectors.toSet()); - assertEquals(6, slobrokHosts.size()); - assertTrue("Slobroks are assigned from container and cluster controller nodes", - union(containerHosts, clusterControllerHosts).containsAll(slobrokHosts)); + assertEquals(3, slobrokHosts.size()); + assertTrue("Slobroks are assigned on cluster controller nodes", clusterControllerHosts.containsAll(slobrokHosts)); assertTrue("Logserver is assigned from container nodes", containerHosts.contains(admin.getLogserver().getHost())); assertEquals("No in-cluster config servers in a hosted environment", 0, admin.getConfigservers().size()); assertEquals("Dedicated admin cluster controllers when hosted", 3, admin.getClusterControllers().getContainers().size()); @@ -561,6 +560,40 @@ public class ModelProvisioningTest { } @Test + public void testSlobroksOnContainersIfNoContentClusters() { + String services = + "<?xml version='1.0' encoding='utf-8' ?>\n" + + "<services>" + + " <admin version='4.0'/>" + + " <container version='1.0' id='foo'>" + + " <nodes count='10'/>" + + " </container>" + + "</services>"; + + int numberOfHosts = 10; + VespaModelTester tester = new VespaModelTester(); + tester.addHosts(numberOfHosts); + VespaModel model = tester.createModel(services, true); + assertEquals(numberOfHosts, model.getRoot().hostSystem().getHosts().size()); + + // Check container cluster + assertEquals(1, model.getContainerClusters().size()); + Set<HostResource> containerHosts = model.getContainerClusters().get("foo").getContainers().stream() + .map(Container::getHost) + .collect(Collectors.toSet()); + assertEquals(10, containerHosts.size()); + + // Check admin clusters + Admin admin = model.getAdmin(); + Set<HostResource> slobrokHosts = admin.getSlobroks().stream().map(Slobrok::getHost).collect(Collectors.toSet()); + assertEquals(3, slobrokHosts.size()); + assertTrue("Slobroks are assigned from container nodes", + containerHosts.containsAll(slobrokHosts)); + assertTrue("Logserver is assigned from container nodes", containerHosts.contains(admin.getLogserver().getHost())); + assertEquals("No in-cluster config servers in a hosted environment", 0, admin.getConfigservers().size()); + } + + @Test public void testUsingNodesAndGroupCountAttributesWithoutDedicatedClusterControllers() { String services = "<?xml version='1.0' encoding='utf-8' ?>\n" + @@ -603,9 +636,8 @@ public class ModelProvisioningTest { Set<HostResource> clusterControllerHosts = admin.getClusterControllers().getContainers() .stream().map(cc -> cc.getHostResource()).collect(Collectors.toSet()); Set<HostResource> slobrokHosts = admin.getSlobroks().stream().map(Slobrok::getHost).collect(Collectors.toSet()); - assertEquals(6, slobrokHosts.size()); - assertTrue("Slobroks are assigned from container and cluster controller nodes", - union(containerHosts, clusterControllerHosts).containsAll(slobrokHosts)); + assertEquals(3, slobrokHosts.size()); + assertTrue("Slobroks are assigned on cluster controller nodes", clusterControllerHosts.containsAll(slobrokHosts)); assertTrue("Logserver is assigned from container nodes", containerHosts.contains(admin.getLogserver().getHost())); assertEquals("No in-cluster config servers in a hosted environment", 0, admin.getConfigservers().size()); assertEquals(3, admin.getClusterControllers().getContainers().size()); @@ -1502,7 +1534,7 @@ public class ModelProvisioningTest { tester.addHosts(6); VespaModel model = tester.createModel(services, true); assertEquals(6, model.getRoot().hostSystem().getHosts().size()); - assertEquals(5, model.getAdmin().getSlobroks().size()); + assertEquals(3, model.getAdmin().getSlobroks().size()); assertEquals(2, model.getContainerClusters().get("foo").getContainers().size()); assertEquals(1, model.getContentClusters().get("bar").getRootGroup().countNodes()); } @@ -2027,11 +2059,4 @@ public class ModelProvisioningTest { assertProvisioned(nodeCount, id, null, type, model); } - private Set<HostResource> union(Set<HostResource> a, Set<HostResource> b) { - Set<HostResource> union = new HashSet<>(); - union.addAll(a); - union.addAll(b); - return union; - } - } |