summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-05-22 10:24:22 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-05-22 10:24:22 +0200
commit004903ac4897fa720899372204756a80fec833f7 (patch)
tree0d81ece2edf91c4be356f10841fa71d9109a5cf5 /node-repository
parentd20d56d510c4ec286870c1a0b4ef1b333f896f7c (diff)
Revert "Merge pull request #9485 from vespa-engine/revert-9476-bratseth/test-cd-allocation"
This reverts commit d20d56d510c4ec286870c1a0b4ef1b333f896f7c, reversing changes made to 983a9f162d9f8c083899cd75cdc327865d4918ff.
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java23
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java8
3 files changed, 29 insertions, 8 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
index 5a06eb32505..242aeefd340 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java
@@ -96,11 +96,11 @@ public class NodeRepositoryProvisioner implements Provisioner {
if (zone.environment().isManuallyDeployed() && nodeCount < requestedCapacity.nodeCount())
logger.log(Level.INFO, "Requested " + requestedCapacity.nodeCount() + " nodes for " + cluster +
", downscaling to " + nodeCount + " nodes in " + zone.environment());
- NodeResources flavor = capacityPolicies.decideNodeResources(requestedCapacity, cluster);
- log.log(LogLevel.DEBUG, () -> "Decided flavor for requested tenant nodes: " + flavor);
+ NodeResources resources = capacityPolicies.decideNodeResources(requestedCapacity, cluster);
+ log.log(LogLevel.DEBUG, () -> "Decided node resources for requested tenant nodes: " + resources);
boolean exclusive = capacityPolicies.decideExclusivity(cluster.isExclusive());
effectiveGroups = wantedGroups > nodeCount ? nodeCount : wantedGroups; // cannot have more groups than nodes
- requestedNodes = NodeSpec.from(nodeCount, flavor, exclusive, requestedCapacity.canFail());
+ requestedNodes = NodeSpec.from(nodeCount, resources, exclusive, requestedCapacity.canFail());
}
else {
requestedNodes = NodeSpec.from(requestedCapacity.type());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
index 4141161c20e..148d474e080 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java
@@ -14,6 +14,7 @@ import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.OutOfCapacityException;
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.transaction.NestedTransaction;
@@ -251,7 +252,27 @@ public class DynamicDockerAllocationTest {
tester.activate(application1, ImmutableSet.copyOf(hosts));
List<Node> initialSpareCapacity = findSpareCapacity(tester);
- assertThat(initialSpareCapacity.size(), is(0));
+ assertEquals(0, initialSpareCapacity.size());
+ }
+
+ @Test
+ public void cd_uses_slow_disk_nodes_for_docker_hosts() {
+ ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(SystemName.cd, Environment.test, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
+ tester.makeReadyNodes(4, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
+ deployZoneApp(tester);
+ ApplicationId application1 = tester.makeApplicationId();
+ List<HostSpec> hosts = tester.prepare(application1, clusterSpec("myContent.t1.a1"), 3, 1, new NodeResources(1, 1, 1));
+ tester.activate(application1, ImmutableSet.copyOf(hosts));
+ }
+
+ @Test
+ public void cd_uses_slow_disk_nodes_for_docker_hosts_with_default_flavor() {
+ ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(SystemName.cd, Environment.test, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
+ tester.makeReadyNodes(4, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
+ deployZoneApp(tester);
+ ApplicationId application1 = tester.makeApplicationId();
+ List<HostSpec> hosts = tester.prepare(application1, clusterSpec("myContent.t1.a1"), Capacity.fromCount(3, Optional.empty(), false, true), 1);
+ tester.activate(application1, ImmutableSet.copyOf(hosts));
}
@Test(expected = OutOfCapacityException.class)
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index d63da52eb49..e1ba3291bd3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -130,12 +130,12 @@ public class ProvisioningTester {
public void patchNode(Node node) { nodeRepository.write(node, () -> {}); }
- public List<HostSpec> prepare(ApplicationId application, ClusterSpec cluster, int nodeCount, int groups, NodeResources flavor) {
- return prepare(application, cluster, nodeCount, groups, false, flavor);
+ public List<HostSpec> prepare(ApplicationId application, ClusterSpec cluster, int nodeCount, int groups, NodeResources resources) {
+ return prepare(application, cluster, nodeCount, groups, false, resources);
}
- public List<HostSpec> prepare(ApplicationId application, ClusterSpec cluster, int nodeCount, int groups, boolean required, NodeResources flavor) {
- return prepare(application, cluster, Capacity.fromCount(nodeCount, Optional.ofNullable(flavor), required, true), groups);
+ public List<HostSpec> prepare(ApplicationId application, ClusterSpec cluster, int nodeCount, int groups, boolean required, NodeResources resources) {
+ return prepare(application, cluster, Capacity.fromCount(nodeCount, Optional.ofNullable(resources), required, true), groups);
}
public List<HostSpec> prepare(ApplicationId application, ClusterSpec cluster, Capacity capacity, int groups) {