diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-07 19:01:10 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-07 20:16:37 +0200 |
commit | 9518f88e048e3f85b709a3ad86906fab16e31b65 (patch) | |
tree | f2fa1e02aa7ee9ff910e8bfb05a901ce2907ba20 | |
parent | 99c2576b1764075194255bb615fa6a45c5e8059c (diff) |
Remove node-admin from pickContainerHostsForSlobrok()
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java | 25 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java | 40 |
2 files changed, 2 insertions, 63 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java index fcc8cc8fa41..aa793b3c6a2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java @@ -5,7 +5,6 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.ConfigModelContext; import com.yahoo.config.model.api.ConfigServerSpec; import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.log.LogLevel; import com.yahoo.vespa.model.HostResource; @@ -22,7 +21,6 @@ import org.w3c.dom.Element; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -33,8 +31,6 @@ import java.util.stream.Collectors; */ public class DomAdminV4Builder extends DomAdminBuilderBase { - private ApplicationId ZONE_APPLICATION_ID = ApplicationId.from("hosted-vespa", "routing", "default"); - private final Collection<ContainerModel> containerModels; private final ConfigModelContext context; @@ -134,34 +130,17 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { * @param minHostsPerContainerCluster the desired number of hosts per cluster */ private List<HostResource> pickContainerHostsForSlobrok(int count, int minHostsPerContainerCluster) { - Collection<ContainerModel> containerModelsWithSlobrok = containerModels.stream() - .filter(this::shouldHaveSlobrok) - .collect(Collectors.toList()); int hostsPerCluster = (int) Math.max(minHostsPerContainerCluster, - Math.ceil((double) count / containerModelsWithSlobrok.size())); + Math.ceil((double) count / containerModels.size())); // Pick from all container clusters to make sure we don't lose all nodes at once if some clusters are removed. // This will overshoot the desired size (due to ceil and picking at least one node per cluster). List<HostResource> picked = new ArrayList<>(); - for (ContainerModel containerModel : containerModelsWithSlobrok) + for (ContainerModel containerModel : containerModels) picked.addAll(pickContainerHostsFrom(containerModel, hostsPerCluster)); return picked; } - private boolean shouldHaveSlobrok(ContainerModel containerModel) { - // Avoid Slobroks on node-admin container cluster, as node-admin is migrating - // TODO: Remove after removing tenant hosts from zone-app - - ApplicationId applicationId = context.getDeployState().getProperties().applicationId(); - if (!applicationId.equals(ZONE_APPLICATION_ID)) { - return true; - } - - // aka clustername, aka application-model's ClusterId - String clustername = containerModel.getCluster().getName(); - return !Objects.equals(clustername, "node-admin"); - } - private List<HostResource> pickContainerHostsFrom(ContainerModel model, int count) { boolean retired = true; List<HostResource> picked = sortedContainerHostsFrom(model, count, !retired); 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 af31a09101e..82841b52984 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 @@ -16,7 +16,6 @@ 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; -import com.yahoo.vespa.model.AbstractService; import com.yahoo.vespa.model.HostResource; import com.yahoo.vespa.model.HostSystem; import com.yahoo.vespa.model.VespaModel; @@ -51,9 +50,6 @@ import java.util.stream.Collectors; import static com.yahoo.config.model.test.TestUtil.joinLines; import static com.yahoo.vespa.defaults.Defaults.getDefaults; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.collection.IsIn.isIn; -import static org.hamcrest.core.Every.everyItem; -import static org.hamcrest.core.IsNot.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -762,42 +758,6 @@ public class ModelProvisioningTest { assertEquals("Included in addition because it is retired", "default03", model.getAdmin().getSlobroks().get(5).getHostName()); } - @Test - public void testSlobroksAreSpreadOverAllContainerClustersExceptNodeAdmin() { - String services = - "<?xml version='1.0' encoding='utf-8' ?>\n" + - "<services>" + - " <admin version='4.0'/>" + - " <container version='1.0' id='routing'>" + - " <nodes count='10'/>" + - " </container>" + - " <container version='1.0' id='node-admin'>" + - " <nodes count='3'/>" + - " </container>" + - "</services>"; - - int numberOfHosts = 13; - VespaModelTester tester = new VespaModelTester(); - tester.addHosts(numberOfHosts); - tester.setApplicationId("hosted-vespa", "routing", "default"); - VespaModel model = tester.createModel(services, true); - assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts)); - - Set<String> routingHosts = getClusterHostnames(model, "routing"); - assertEquals(10, routingHosts.size()); - - Set<String> nodeAdminHosts = getClusterHostnames(model, "node-admin"); - assertEquals(3, nodeAdminHosts.size()); - - Set<String> slobrokHosts = model.getAdmin().getSlobroks().stream() - .map(AbstractService::getHostName) - .collect(Collectors.toSet()); - assertEquals(3, slobrokHosts.size()); - - assertThat(slobrokHosts, everyItem(isIn(routingHosts))); - assertThat(slobrokHosts, everyItem(not(isIn(nodeAdminHosts)))); - } - private Set<String> getClusterHostnames(VespaModel model, String clusterId) { return model.getHosts().stream() .filter(host -> host.getServices().stream() |