summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2019-06-07 19:01:10 +0200
committerValerij Fredriksen <valerij92@gmail.com>2019-06-07 20:16:37 +0200
commit9518f88e048e3f85b709a3ad86906fab16e31b65 (patch)
treef2fa1e02aa7ee9ff910e8bfb05a901ce2907ba20
parent99c2576b1764075194255bb615fa6a45c5e8059c (diff)
Remove node-admin from pickContainerHostsForSlobrok()
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java25
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java40
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()