summaryrefslogtreecommitdiffstats
path: root/node-repository/src/test
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-08-20 15:35:47 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-08-20 16:52:58 +0200
commit85e3fd8d395a53d74d5b1d1769d49fb40424ea90 (patch)
treeb8f1919a72791a0f5f7c3f3c8c62325f58dd43d8 /node-repository/src/test
parent8bd55fb7b53034d3b18a5b4d076d5b09c3752454 (diff)
Stop using deprecated NodeResources constructors
Diffstat (limited to 'node-repository/src/test')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTest.java53
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java24
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java18
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacityTest.java10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java62
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java103
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java12
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ResourceCapacityTest.java24
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/capacity-zone.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-2.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-3.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json2
60 files changed, 267 insertions, 262 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
index 9b9e7397323..f0f523b9b9b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
@@ -71,9 +71,9 @@ public class NodeRepositoryTester {
private FlavorsConfig createConfig() {
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("default", 2., 4., 100, Flavor.Type.BARE_METAL).cost(3);
- b.addFlavor("small", 1., 2., 50, Flavor.Type.BARE_METAL).cost(2);
- b.addFlavor("docker", 1., 2., 50, Flavor.Type.DOCKER_CONTAINER).cost(1);
+ b.addFlavor("default", 2., 4., 100, 10, Flavor.Type.BARE_METAL).cost(3);
+ b.addFlavor("small", 1., 2., 50, 5, Flavor.Type.BARE_METAL).cost(2);
+ b.addFlavor("docker", 1., 2., 50, 1, Flavor.Type.DOCKER_CONTAINER).cost(1);
return b.build();
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTest.java
index 1f2112673d1..132ab40b3de 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTest.java
@@ -7,10 +7,13 @@ import org.junit.Test;
import java.io.IOException;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.junit.Assert.*;
/**
* @author mgimle
@@ -37,8 +40,8 @@ public class CapacityCheckerTest {
@Test
public void testOvercommittedHosts() {
tester.createNodes(7, 4,
- 10, new NodeResources(-1, 10, 100), 10,
- 0, new NodeResources(1, 10, 100), 10);
+ 10, new NodeResources(-1, 10, 100, 1), 10,
+ 0, new NodeResources(1, 10, 100, 1), 10);
int overcommittedHosts = tester.capacityChecker.findOvercommittedHosts().size();
assertEquals(tester.nodeRepository.getNodes(NodeType.host).size(), overcommittedHosts);
}
@@ -46,15 +49,15 @@ public class CapacityCheckerTest {
@Test
public void testEdgeCaseFailurePaths() {
tester.createNodes(1, 1,
- 0, new NodeResources(1, 10, 100), 10,
- 0, new NodeResources(1, 10, 100), 10);
+ 0, new NodeResources(1, 10, 100, 1), 10,
+ 0, new NodeResources(1, 10, 100, 1), 10);
var failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertFalse("Computing worst case host loss with no hosts should return an empty optional.", failurePath.isPresent());
// Odd edge case that should never be able to occur in prod
tester.createNodes(1, 10,
- 10, new NodeResources(10, 1000, 10000), 100,
- 1, new NodeResources(10, 1000, 10000), 100);
+ 10, new NodeResources(10, 1000, 10000, 1), 100,
+ 1, new NodeResources(10, 1000, 10000, 1), 100);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
assertTrue("Computing worst case host loss if all hosts have to be removed should result in an non-empty failureReason with empty nodes.",
@@ -62,8 +65,8 @@ public class CapacityCheckerTest {
assertEquals(tester.nodeRepository.getNodes(NodeType.host).size(), failurePath.get().hostsCausingFailure.size());
tester.createNodes(3, 30,
- 10, new NodeResources(0, 0, 10000), 1000,
- 0, new NodeResources(0, 0, 0), 0);
+ 10, new NodeResources(0, 0, 10000, 1), 1000,
+ 0, new NodeResources(0, 0, 0, 0), 0);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -77,8 +80,8 @@ public class CapacityCheckerTest {
@Test
public void testIpFailurePaths() {
tester.createNodes(1, 10,
- 10, new NodeResources(10, 1000, 10000), 1,
- 10, new NodeResources(10, 1000, 10000), 1);
+ 10, new NodeResources(10, 1000, 10000, 1), 1,
+ 10, new NodeResources(10, 1000, 10000, 1), 1);
var failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -92,8 +95,8 @@ public class CapacityCheckerTest {
@Test
public void testNodeResourceFailurePaths() {
tester.createNodes(1, 10,
- 10, new NodeResources(1, 100, 1000), 100,
- 10, new NodeResources(0, 100, 1000), 100);
+ 10, new NodeResources(1, 100, 1000, 1), 100,
+ 10, new NodeResources(0, 100, 1000, 1), 100);
var failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -103,8 +106,8 @@ public class CapacityCheckerTest {
} else fail();
tester.createNodes(1, 10,
- 10, new NodeResources(10, 1, 1000), 100,
- 10, new NodeResources(10, 0, 1000), 100);
+ 10, new NodeResources(10, 1, 1000, 1), 100,
+ 10, new NodeResources(10, 0, 1000, 1), 100);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -114,8 +117,8 @@ public class CapacityCheckerTest {
} else fail();
tester.createNodes(1, 10,
- 10, new NodeResources(10, 100, 10), 100,
- 10, new NodeResources(10, 100, 0), 100);
+ 10, new NodeResources(10, 100, 10, 1), 100,
+ 10, new NodeResources(10, 100, 0, 1), 100);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -125,9 +128,9 @@ public class CapacityCheckerTest {
} else fail();
int emptyHostsWithSlowDisk = 10;
- tester.createNodes(1, 10, List.of(new NodeResources(1, 10, 100)),
- 10, new NodeResources(0, 0, 0), 100,
- 10, new NodeResources(10, 1000, 10000, NodeResources.DiskSpeed.slow), 100);
+ tester.createNodes(1, 10, List.of(new NodeResources(1, 10, 100, 1)),
+ 10, new NodeResources(0, 0, 0, 0), 100,
+ 10, new NodeResources(10, 1000, 10000, 1, NodeResources.DiskSpeed.slow), 100);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -142,8 +145,8 @@ public class CapacityCheckerTest {
@Test
public void testParentHostPolicyIntegrityFailurePaths() {
tester.createNodes(1, 1,
- 10, new NodeResources(1, 100, 1000), 100,
- 10, new NodeResources(10, 1000, 10000), 100);
+ 10, new NodeResources(1, 100, 1000, 1), 100,
+ 10, new NodeResources(10, 1000, 10000, 1), 100);
var failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
@@ -153,8 +156,8 @@ public class CapacityCheckerTest {
} else fail();
tester.createNodes(1, 2,
- 10, new NodeResources(10, 100, 1000), 1,
- 0, new NodeResources(0, 0, 0), 0);
+ 10, new NodeResources(10, 100, 1000, 1), 1,
+ 0, new NodeResources(0, 0, 0, 0), 0);
failurePath = tester.capacityChecker.worstCaseHostLossLeadingToFailure();
assertTrue(failurePath.isPresent());
if (failurePath.get().failureReason.tenant.isPresent()) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
index f5fd0e0526d..29523ff9296 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
@@ -7,7 +7,17 @@ import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yahoo.collections.Tuple2;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.*;
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.ClusterMembership;
+import com.yahoo.config.provision.ClusterSpec;
+import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.Environment;
+import com.yahoo.config.provision.Flavor;
+import com.yahoo.config.provision.NodeFlavors;
+import com.yahoo.config.provision.NodeResources;
+import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.RegionName;
+import com.yahoo.config.provision.Zone;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.mock.MockCurator;
@@ -21,7 +31,10 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Instant;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -149,7 +162,7 @@ public class CapacityCheckerTester {
int numHosts, NodeResources hostExcessCapacity, int hostExcessIps,
int numEmptyHosts, NodeResources emptyHostExcessCapacity, int emptyHostExcessIps) {
List<NodeResources> childResources = List.of(
- new NodeResources(1, 10, 100)
+ new NodeResources(1, 10, 100, 1)
);
createNodes(childrenPerHost, numDistinctChildren, childResources,
@@ -172,7 +185,7 @@ public class CapacityCheckerTester {
NodeResources containingNodeResources(List<NodeResources> resources, NodeResources excessCapacity) {
NodeResources usedByChildren = resources.stream()
- .reduce(new NodeResources(0, 0, 0), NodeResources::add);
+ .reduce(new NodeResources(0, 0, 0, 0), NodeResources::add);
return usedByChildren.add(excessCapacity);
}
@@ -215,6 +228,7 @@ public class CapacityCheckerTester {
@JsonProperty double minDiskAvailableGb;
@JsonProperty double minMainMemoryAvailableGb;
@JsonProperty double minCpuCores;
+ @JsonProperty double bandwidth;
@JsonProperty boolean fastDisk;
@JsonProperty Set<String> ipAddresses;
@JsonProperty Set<String> additionalIpAddresses;
@@ -249,7 +263,7 @@ public class CapacityCheckerTester {
diskSpeed = nodeModel.fastDisk ? NodeResources.DiskSpeed.fast : NodeResources.DiskSpeed.slow;
}
NodeResources nr = new NodeResources(nodeModel.minCpuCores, nodeModel.minMainMemoryAvailableGb,
- nodeModel.minDiskAvailableGb, diskSpeed);
+ nodeModel.minDiskAvailableGb, nodeModel.bandwidth * 1000, diskSpeed);
Flavor f = new Flavor(nr);
Node node = nodeRepository.createNode(nodeModel.id, nodeModel.hostname,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index 89c6ed6aa0d..737e47925f2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -261,8 +261,8 @@ public class FailedExpirerTest {
private static class FailureScenario {
private static final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default", "docker");
- public static final NodeResources defaultFlavor = new NodeResources(2, 2, 2);
- public static final NodeResources dockerFlavor = new NodeResources(1, 1, 1);
+ public static final NodeResources defaultFlavor = new NodeResources(2, 2, 2, 2);
+ public static final NodeResources dockerFlavor = new NodeResources(1, 1, 1, 1);
private final MockCurator curator = new MockCurator();
private final ManualClock clock = new ManualClock();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
index 8692c551a2c..2383f4529a7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
@@ -42,7 +42,7 @@ import static org.mockito.Mockito.mock;
*/
public class InactiveAndFailedExpirerTest {
- private final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ private final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
private final ApplicationId applicationId = ApplicationId.from(TenantName.from("foo"),
ApplicationName.from("bar"),
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirerTest.java
index 26b79ab9053..b23af955f42 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirerTest.java
@@ -4,8 +4,8 @@ package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.component.Vtag;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.HostSpec;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.transaction.NestedTransaction;
import com.yahoo.vespa.hosted.provision.lb.LoadBalancer;
import com.yahoo.vespa.hosted.provision.lb.LoadBalancerId;
@@ -128,7 +128,7 @@ public class LoadBalancerExpirerTest {
List<HostSpec> hosts = tester.prepare(application, ClusterSpec.request(ClusterSpec.Type.container, cluster,
Vtag.currentVersion, false),
2, 1,
- new NodeResources(1, 1, 1));
+ new NodeResources(1, 1, 1, 0.3));
if (activate) {
tester.activate(application, hosts);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
index 4eba95cb817..b2825a409e1 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
@@ -126,12 +126,12 @@ public class MetricsReporterTest {
nodeRepository.setReady("dockerHost", Agent.system, getClass().getSimpleName());
Node container1 = Node.createDockerNode(Set.of("::2"), Set.of(), "container1",
- Optional.of("dockerHost"), new NodeResources(1, 3, 2), NodeType.tenant);
+ Optional.of("dockerHost"), new NodeResources(1, 3, 2, 1), NodeType.tenant);
container1 = container1.with(allocation(Optional.of("app1")).get());
nodeRepository.addDockerNodes(new LockedNodeList(List.of(container1), nodeRepository.lockAllocation()));
Node container2 = Node.createDockerNode(Set.of("::3"), Set.of(), "container2",
- Optional.of("dockerHost"), new NodeResources(2, 4, 4), NodeType.tenant);
+ Optional.of("dockerHost"), new NodeResources(2, 4, 4, 1), NodeType.tenant);
container2 = container2.with(allocation(Optional.of("app2")).get());
nodeRepository.addDockerNodes(new LockedNodeList(List.of(container2), nodeRepository.lockAllocation()));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
index f4b36b12bff..d44b8ca2989 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
@@ -49,7 +49,7 @@ import static org.junit.Assert.assertEquals;
*/
public class NodeFailTester {
- public static final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ public static final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
// Immutable components
public static final ApplicationId tenantHostApp = ApplicationId.from("hosted-vespa", "tenant-host", "default");
@@ -123,8 +123,8 @@ public class NodeFailTester {
ClusterSpec clusterApp1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("6.75.0"), false);
ClusterSpec clusterApp2 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Version.fromString("6.75.0"), false);
Capacity allHosts = Capacity.fromRequiredNodeType(NodeType.host);
- Capacity capacity1 = Capacity.fromCount(3, new NodeResources(1, 1, 1), false, true);
- Capacity capacity2 = Capacity.fromCount(5, new NodeResources(1, 1, 1), false, true);
+ Capacity capacity1 = Capacity.fromCount(3, new NodeResources(1, 1, 1, 0.3), false, true);
+ Capacity capacity2 = Capacity.fromCount(5, new NodeResources(1, 1, 1, 0.3), false, true);
tester.activate(tenantHostApp, clusterNodeAdminApp, allHosts);
tester.activate(app1, clusterApp1, capacity1);
tester.activate(app2, clusterApp2, capacity2);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
index 7d1a5f50a7e..1cf5ce252d7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
@@ -301,7 +301,7 @@ public class NodeFailerTest {
NodeFailTester tester = NodeFailTester.withTwoApplications();
// Add ready docker node
- NodeResources newNodeResources = new NodeResources(3,4,5);
+ NodeResources newNodeResources = new NodeResources(3, 4, 5, 1);
tester.createReadyNodes(1, 16, newNodeResources);
// For a day all nodes work so nothing happens
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
index 95f62521628..d24bd61e9f5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
@@ -118,7 +118,7 @@ public class OperatorChangeApplicationMaintainerTest {
final NodeRepository nodeRepository;
final MockDeployer deployer;
- final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
final ApplicationId app1 = ApplicationId.from(TenantName.from("foo1"), ApplicationName.from("bar"), InstanceName.from("fuz"));
final ApplicationId app2 = ApplicationId.from(TenantName.from("foo2"), ApplicationName.from("bar"), InstanceName.from("fuz"));
final ClusterSpec clusterApp1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("6.42"), false);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
index 94e43e4f99e..cd139a1be19 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
@@ -37,7 +37,6 @@ import org.junit.Test;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -242,7 +241,7 @@ public class PeriodicApplicationMaintainerTest {
final NodeRepository nodeRepository;
final MockDeployer deployer;
- final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
final ApplicationId app1 = ApplicationId.from(TenantName.from("foo1"), ApplicationName.from("bar"), InstanceName.from("fuz"));
final ApplicationId app2 = ApplicationId.from(TenantName.from("foo2"), ApplicationName.from("bar"), InstanceName.from("fuz"));
final ClusterSpec clusterApp1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("6.42"), false);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index 3861e4ff98c..11ee6637720 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -51,8 +51,8 @@ public class ReservationExpirerTest {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(nodeRepository, Zone.defaultZone(), new MockProvisionServiceProvider(), new InMemoryFlagSource());
List<Node> nodes = new ArrayList<>(2);
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Flavor(new NodeResources(2, 8, 50)), NodeType.tenant));
- nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Flavor(new NodeResources(2, 8, 50)), NodeType.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Flavor(new NodeResources(2, 8, 50, 1)), NodeType.tenant));
+ nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), new Flavor(new NodeResources(2, 8, 50, 1)), NodeType.tenant));
nodes.add(nodeRepository.createNode(UUID.randomUUID().toString(), UUID.randomUUID().toString(), Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.host));
nodes = nodeRepository.addNodes(nodes);
nodes = nodeRepository.setDirty(nodes, Agent.system, getClass().getSimpleName());
@@ -62,7 +62,7 @@ public class ReservationExpirerTest {
nodeRepository.setReady(nodes, Agent.system, getClass().getSimpleName());
ApplicationId applicationId = new ApplicationId.Builder().tenant("foo").applicationName("bar").instanceName("fuz").build();
ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Version.fromString("6.42"), false);
- provisioner.prepare(applicationId, cluster, Capacity.fromCount(2, new NodeResources(2, 8, 50)), 1, null);
+ provisioner.prepare(applicationId, cluster, Capacity.fromCount(2, new NodeResources(2, 8, 50, 1)), 1, null);
assertEquals(2, nodeRepository.getNodes(NodeType.tenant, Node.State.reserved).size());
// Reservation times out
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index 7e471a81cf8..4646459e37e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -57,7 +57,7 @@ import static org.mockito.Mockito.verify;
*/
public class RetiredExpirerTest {
- private final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ private final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
private Curator curator = new MockCurator();
private final ManualClock clock = new ManualClock();
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
index be1c138de54..6da72f6ebdd 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
@@ -6,8 +6,8 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.HostSpec;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.node.NodeAcl;
@@ -34,7 +34,7 @@ import static org.junit.Assert.assertFalse;
*/
public class AclProvisioningTest {
- private final NodeResources nodeResources = new NodeResources(2, 8, 50);
+ private final NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
private ProvisioningTester tester = new ProvisioningTester.Builder().build();
@@ -134,7 +134,7 @@ public class AclProvisioningTest {
// Populate repo
List<Node> dockerHostNodes = tester.makeReadyNodes(2, "default", NodeType.host);
Node dockerHostNodeUnderTest = dockerHostNodes.get(0);
- List<Node> dockerNodes = tester.makeReadyVirtualDockerNodes(5, new NodeResources(1, 1, 1),
+ List<Node> dockerNodes = tester.makeReadyVirtualDockerNodes(5, new NodeResources(1, 1, 1, 1),
dockerHostNodeUnderTest.hostname());
List<NodeAcl> acls = tester.nodeRepository().getNodeAcls(dockerHostNodeUnderTest, true);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java
index 76d988a291b..1343335d131 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java
@@ -17,7 +17,7 @@ import com.yahoo.vespa.hosted.provision.node.IP;
import com.yahoo.vespa.hosted.provision.node.Reports;
import com.yahoo.vespa.hosted.provision.node.Status;
-import javax.swing.JFrame;
+import javax.swing.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -44,14 +44,14 @@ public class AllocationSimulator {
// Setup flavors
//
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("host-large", 8., 8., 8, Flavor.Type.BARE_METAL);
- b.addFlavor("host-small", 5., 5., 5, Flavor.Type.BARE_METAL);
- b.addFlavor("d-1", 1, 1., 1, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-2", 2, 2., 2, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3", 3, 3., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-disk", 3, 3., 5, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-mem", 3, 5., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-cpu", 5, 3., 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("host-large", 8., 8., 8, 8, Flavor.Type.BARE_METAL);
+ b.addFlavor("host-small", 5., 5., 5, 8, Flavor.Type.BARE_METAL);
+ b.addFlavor("d-1", 1, 1., 1, 1, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-2", 2, 2., 2, 2, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3", 3, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-disk", 3, 3., 5, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-mem", 3, 5., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-cpu", 5, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
flavors = new NodeFlavors(b.build());
//
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacityTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacityTest.java
index 60a31f1c804..3ccbd257b3c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacityTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacityTest.java
@@ -91,16 +91,16 @@ public class DockerHostCapacityTest {
@Test
public void freeCapacityOf() {
- assertEquals(new NodeResources(5, 4, 8), capacity.freeCapacityOf(host1, false));
- assertEquals(new NodeResources(5, 6, 8), capacity.freeCapacityOf(host3, false));
+ assertEquals(new NodeResources(5, 4, 8, 2), capacity.freeCapacityOf(host1, false));
+ assertEquals(new NodeResources(5, 6, 8, 4.5), capacity.freeCapacityOf(host3, false));
doAnswer(invocation -> {
NodeResources totalHostResources = (NodeResources) invocation.getArguments()[0];
- return totalHostResources.subtract(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.any));
+ return totalHostResources.subtract(new NodeResources(1, 2, 3, 0.5, NodeResources.DiskSpeed.any));
}).when(hostResourcesCalculator).availableCapacityOf(any());
- assertEquals(new NodeResources(4, 2, 5), capacity.freeCapacityOf(host1, false));
- assertEquals(new NodeResources(4, 4, 5), capacity.freeCapacityOf(host3, false));
+ assertEquals(new NodeResources(4, 2, 5, 1.5), capacity.freeCapacityOf(host1, false));
+ assertEquals(new NodeResources(4, 4, 5, 4), capacity.freeCapacityOf(host3, false));
}
private Set<String> generateIPs(int start, int count) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
index eeb90a06951..38651a77949 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
@@ -36,7 +36,7 @@ import static org.junit.Assert.fail;
*/
public class DockerProvisioningTest {
- private static final NodeResources dockerFlavor = new NodeResources(1, 1, 1);
+ private static final NodeResources dockerFlavor = new NodeResources(1, 1, 1, 1);
@Test
public void docker_application_deployment() {
@@ -74,7 +74,7 @@ public class DockerProvisioningTest {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build();
ApplicationId zoneApplication = tester.makeApplicationId();
- List<Node> parents = tester.makeReadyNodes(10, new NodeResources(2, 2, 2), NodeType.host, 1);
+ List<Node> parents = tester.makeReadyNodes(10, new NodeResources(2, 2, 2, 2), NodeType.host, 1);
for (Node parent : parents)
tester.makeReadyVirtualDockerNodes(1, dockerFlavor, parent.hostname());
@@ -204,7 +204,7 @@ public class DockerProvisioningTest {
}
catch (Exception e) {
assertEquals("No room for 3 nodes as 2 of 4 hosts are exclusive",
- "Could not satisfy request for 3 nodes with [vcpu: 1.0, memory: 1.0 Gb, disk 1.0 Gb] for container cluster 'myContainer' group 0 6.39 in tenant1.app1: Not enough nodes available due to host exclusivity constraints.",
+ "Could not satisfy request for 3 nodes with [vcpu: 1.0, memory: 1.0 Gb, disk 1.0 Gb, bandwidth: 1.0 Gbps] for container cluster 'myContainer' group 0 6.39 in tenant1.app1: Not enough nodes available due to host exclusivity constraints.",
e.getMessage());
}
@@ -225,7 +225,7 @@ public class DockerProvisioningTest {
NodeList nodes = tester.getNodes(application1, Node.State.active);
assertEquals(1, nodes.size());
- assertEquals("[vcpu: 1.0, memory: 1.0 Gb, disk 1.0 Gb]", nodes.asList().get(0).flavor().name());
+ assertEquals("[vcpu: 1.0, memory: 1.0 Gb, disk 1.0 Gb, bandwidth: 1.0 Gbps]", nodes.asList().get(0).flavor().name());
}
private Set<String> hostsOf(NodeList nodes) {
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 d543856f71c..670473ff238 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
@@ -65,7 +65,7 @@ public class DynamicDockerAllocationTest {
tester.makeReadyNodes(4, "host-small", NodeType.host, 32);
deployZoneApp(tester);
List<Node> dockerHosts = tester.nodeRepository().getNodes(NodeType.host, Node.State.active);
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
// Application 1
ApplicationId application1 = makeApplicationId("t1", "a1");
@@ -108,7 +108,7 @@ public class DynamicDockerAllocationTest {
tester.makeReadyNodes(5, "host-small", NodeType.host, 32);
deployZoneApp(tester);
List<Node> dockerHosts = tester.nodeRepository().getNodes(NodeType.host, Node.State.active);
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 0.3);
// Application 1
ApplicationId application1 = makeApplicationId("t1", "a1");
@@ -165,7 +165,7 @@ public class DynamicDockerAllocationTest {
tester.makeReadyNodes(2, "host-small", NodeType.host, 32);
deployZoneApp(tester);
List<Node> dockerHosts = tester.nodeRepository().getNodes(NodeType.host, Node.State.active);
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
// Application 1
ApplicationId application1 = makeApplicationId("t1", "a1");
@@ -194,7 +194,7 @@ public class DynamicDockerAllocationTest {
//Deploy an application having 6 nodes (3 nodes in 2 groups). We only have 5 docker hosts available
ApplicationId application1 = tester.makeApplicationId();
- tester.prepare(application1, clusterSpec("myContent.t1.a1"), 6, 2, new NodeResources(1, 1, 1));
+ tester.prepare(application1, clusterSpec("myContent.t1.a1"), 6, 2, new NodeResources(1, 1, 1, 1));
fail("Two groups have been allocated to the same parent host");
}
@@ -212,7 +212,7 @@ public class DynamicDockerAllocationTest {
ApplicationId application1 = tester.makeApplicationId();
tester.makeReadyNodes(5, "host-small", NodeType.host, 32);
deployZoneApp(tester);
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
// Deploy initial state (can max deploy 3 nodes due to redundancy requirements)
ClusterSpec clusterSpec = clusterSpec("myContent.t1.a1");
@@ -242,7 +242,7 @@ public class DynamicDockerAllocationTest {
tester.makeReadyNodes(3, "host-small", NodeType.host, 32);
deployZoneApp(tester);
ApplicationId application1 = tester.makeApplicationId();
- List<HostSpec> hosts = tester.prepare(application1, clusterSpec("myContent.t1.a1"), 3, 1, new NodeResources(1, 1, 1));
+ List<HostSpec> hosts = tester.prepare(application1, clusterSpec("myContent.t1.a1"), 3, 1, new NodeResources(1, 1, 1, 1));
tester.activate(application1, ImmutableSet.copyOf(hosts));
List<Node> initialSpareCapacity = findSpareCapacity(tester);
@@ -252,10 +252,10 @@ public class DynamicDockerAllocationTest {
@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);
+ tester.makeReadyNodes(4, new Flavor(new NodeResources(1, 2, 3, 1, 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));
+ List<HostSpec> hosts = tester.prepare(application1, clusterSpec("myContent.t1.a1"), 3, 1, new NodeResources(1, 1, 1, 1));
tester.activate(application1, ImmutableSet.copyOf(hosts));
}
@@ -266,7 +266,7 @@ public class DynamicDockerAllocationTest {
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
- tester.prepare(application, clusterSpec("myContent.t2.a2"), 2, 1, new NodeResources(1, 1, 1));
+ tester.prepare(application, clusterSpec("myContent.t2.a2"), 2, 1, new NodeResources(1, 1, 1, 1));
}
@Test
@@ -276,7 +276,7 @@ public class DynamicDockerAllocationTest {
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
- List<HostSpec> hosts = tester.prepare(application, clusterSpec("myContent.t1.a1"), 2, 1, new NodeResources(1, 1, 1));
+ List<HostSpec> hosts = tester.prepare(application, clusterSpec("myContent.t1.a1"), 2, 1, new NodeResources(1, 1, 1, 1));
tester.activate(application, hosts);
List<Node> activeNodes = tester.nodeRepository().getNodes(application);
@@ -302,13 +302,13 @@ public class DynamicDockerAllocationTest {
@Test
public void slow_disk_nodes_are_preferentially_allocated() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("1"), false);
- NodeResources resources = new NodeResources(1, 1, 1, NodeResources.DiskSpeed.any);
+ NodeResources resources = new NodeResources(1, 1, 1, 1, NodeResources.DiskSpeed.any);
List<HostSpec> hosts = tester.prepare(application, cluster, 2, 1, resources);
assertEquals(2, hosts.size());
@@ -319,13 +319,13 @@ public class DynamicDockerAllocationTest {
private void provisionFastAndSlowThenDeploy(NodeResources.DiskSpeed requestDiskSpeed, boolean expectOutOfCapacity) {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("1"), false);
- NodeResources resources = new NodeResources(1, 1, 1, requestDiskSpeed);
+ NodeResources resources = new NodeResources(1, 1, 1, 1, requestDiskSpeed);
try {
List<HostSpec> hosts = tester.prepare(application, cluster, 4, 1, resources);
@@ -341,13 +341,13 @@ public class DynamicDockerAllocationTest {
@Test
public void nodeResourcesAreRelaxedInDev() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
- tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.slow)), NodeType.host, 10, true);
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Version.fromString("1"), false);
- NodeResources resources = new NodeResources(1, 1, 1, NodeResources.DiskSpeed.fast);
+ NodeResources resources = new NodeResources(1, 1, 1, 1, NodeResources.DiskSpeed.fast);
List<HostSpec> hosts = tester.prepare(application, cluster, 4, 1, resources);
assertEquals(1, hosts.size());
@@ -360,7 +360,7 @@ public class DynamicDockerAllocationTest {
@Test
public void testSwitchingFromLegacyFlavorSyntaxToResourcesDoesNotCauseReallocation() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).flavorsConfig(flavorsConfig()).build();
- tester.makeReadyNodes(2, new Flavor(new NodeResources(5, 20, 140)), NodeType.host, 10, true);
+ tester.makeReadyNodes(2, new Flavor(new NodeResources(5, 20, 140, 3)), NodeType.host, 10, true);
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
@@ -369,7 +369,7 @@ public class DynamicDockerAllocationTest {
List<HostSpec> hosts1 = tester.prepare(application, cluster, Capacity.fromNodeCount(2, Optional.of("d-2-8-50"), false, true), 1);
tester.activate(application, hosts1);
- NodeResources resources = new NodeResources(1.5, 8, 50);
+ NodeResources resources = new NodeResources(1.5, 8, 50, 0.3);
List<HostSpec> hosts2 = tester.prepare(application, cluster, Capacity.fromCount(2, resources), 1);
tester.activate(application, hosts2);
@@ -408,16 +408,16 @@ public class DynamicDockerAllocationTest {
private FlavorsConfig flavorsConfig() {
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("host-large", 6., 6., 6, Flavor.Type.BARE_METAL);
- b.addFlavor("host-small", 3., 3., 3, Flavor.Type.BARE_METAL);
- b.addFlavor("host-medium", 4., 4., 4, Flavor.Type.BARE_METAL);
- b.addFlavor("d-1", 1, 1., 1, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-2", 2, 2., 2, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3", 3, 3., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-disk", 3, 3., 5, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-mem", 3, 5., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-cpu", 5, 3., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-2-8-50", 2, 8, 50, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("host-large", 6., 6., 6, 6, Flavor.Type.BARE_METAL);
+ b.addFlavor("host-small", 3., 3., 3, 3, Flavor.Type.BARE_METAL);
+ b.addFlavor("host-medium", 4., 4., 4, 4, Flavor.Type.BARE_METAL);
+ b.addFlavor("d-1", 1, 1., 1, 1, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-2", 2, 2., 2, 2, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3", 3, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-disk", 3, 3., 5, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-mem", 3, 5., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-cpu", 5, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-2-8-50", 2, 8, 50, 1, Flavor.Type.DOCKER_CONTAINER);
return b.build();
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
index a497afc9fc9..ee5568b9b76 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisionTest.java
@@ -45,7 +45,7 @@ public class DynamicDockerProvisionTest {
assertEquals(0, tester.nodeRepository().list().size());
ApplicationId application1 = tester.makeApplicationId();
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
mockHostProvisioner(hostProvisioner, tester.nodeRepository().getAvailableFlavors().getFlavorOrThrow("small"));
List<HostSpec> hostSpec = tester.prepare(application1, clusterSpec("myContent.t1.a1"), 4, 1, flavor);
@@ -65,7 +65,7 @@ public class DynamicDockerProvisionTest {
deployZoneApp(tester);
ApplicationId application = tester.makeApplicationId();
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
mockHostProvisioner(hostProvisioner, tester.nodeRepository().getAvailableFlavors().getFlavorOrThrow("small"));
tester.prepare(application, clusterSpec("myContent.t2.a2"), 2, 1, flavor);
@@ -75,7 +75,7 @@ public class DynamicDockerProvisionTest {
@Test
public void allocates_to_hosts_already_hosting_nodes_by_this_tenant() {
ApplicationId application = tester.makeApplicationId();
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
List<Integer> expectedProvisionIndexes = List.of(100, 101);
mockHostProvisioner(hostProvisioner, tester.nodeRepository().getAvailableFlavors().getFlavorOrThrow("large"));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
index 77273f98f76..d058832ba17 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
@@ -140,7 +140,7 @@ public class LoadBalancerProvisionerTest {
@Test
public void provision_load_balancers_with_dynamic_node_provisioning() {
- var nodes = prepare(app1, Capacity.fromCount(2, new NodeResources(1, 1, 1), false, true),
+ var nodes = prepare(app1, Capacity.fromCount(2, new NodeResources(1, 1, 1, 0.3), false, true),
true,
clusterRequest(ClusterSpec.Type.container, ClusterSpec.Id.from("qrs")));
Supplier<LoadBalancer> lb = () -> tester.nodeRepository().loadBalancers().owner(app1).asList().get(0);
@@ -158,7 +158,7 @@ public class LoadBalancerProvisionerTest {
assertSame("Load balancer is deactivated", LoadBalancer.State.inactive, lb.get().state());
// Application is redeployed
- nodes = prepare(app1, Capacity.fromCount(2, new NodeResources(1, 1, 1), false, true),
+ nodes = prepare(app1, Capacity.fromCount(2, new NodeResources(1, 1, 1, 0.3), false, true),
true,
clusterRequest(ClusterSpec.Type.container, ClusterSpec.Id.from("qrs")));
assertTrue("Load balancer is reconfigured with empty reals", tester.loadBalancerService().instances().get(lb.get().id()).reals().isEmpty());
@@ -190,7 +190,7 @@ public class LoadBalancerProvisionerTest {
}
private Set<HostSpec> prepare(ApplicationId application, ClusterSpec... specs) {
- return prepare(application, Capacity.fromCount(2, new NodeResources(1, 1, 1), false, true), false, specs);
+ return prepare(application, Capacity.fromCount(2, new NodeResources(1, 1, 1, 0.3), false, true), false, specs);
}
private Set<HostSpec> prepare(ApplicationId application, Capacity capacity, boolean dynamicDockerNodes, ClusterSpec... specs) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
index 0523a1f7f72..a10f0bc5f23 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
@@ -140,7 +140,7 @@ public class MultigroupProvisioningTest {
new RetiredExpirer(tester.nodeRepository(), tester.orchestrator(), deployer, tester.clock(), Duration.ofDays(30),
Duration.ofHours(12)).run();
- assertEquals(8, tester.getNodes(application1, Node.State.inactive).resources(new NodeResources(1, 1, 1)).size());
+ assertEquals(8, tester.getNodes(application1, Node.State.inactive).resources(new NodeResources(1, 1, 1, 0.3)).size());
deploy(application1, 8, 8, "d-3-3-3", tester);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java
index b65c4d8b4f6..43a045705c8 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizerTest.java
@@ -32,20 +32,20 @@ public class NodePrioritizerTest {
public void relocated_nodes_are_preferred() {
List<Node> nodes = new ArrayList<>();
Node parent = createParent("parent");
- Node b = createNode(parent, "b", new NodeResources(2, 2, 2));
+ Node b = createNode(parent, "b", new NodeResources(2, 2, 2, 2));
nodes.add(b);
// Only one node - should be obvious what to prefer
Assert.assertTrue(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, b, parent));
// Two equal nodes - choose lexically
- Node a = createNode(parent, "a", new NodeResources(2, 2, 2));
+ Node a = createNode(parent, "a", new NodeResources(2, 2, 2, 2));
nodes.add(a);
Assert.assertTrue(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, a, parent));
Assert.assertFalse(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, b, parent));
// Smallest node should be preferred
- Node c = createNode(parent, "c", new NodeResources(1, 1, 1));
+ Node c = createNode(parent, "c", new NodeResources(1, 1, 1, 1));
nodes.add(c);
Assert.assertTrue(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, c, parent));
@@ -54,7 +54,7 @@ public class NodePrioritizerTest {
c = c.allocate(ApplicationId.defaultId(), ClusterMembership.from(spec, 0), Instant.now());
nodes.remove(c);
nodes.add(c);
- Node d = createNode(parent, "d", new NodeResources(1, 1, 1));
+ Node d = createNode(parent, "d", new NodeResources(1, 1, 1, 1));
nodes.add(d);
Assert.assertTrue(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, d, parent));
Assert.assertFalse(NodePrioritizer.isPreferredNodeToBeRelocated(nodes, c, parent));
@@ -80,7 +80,7 @@ public class NodePrioritizerTest {
private static FlavorsConfig flavorsConfig() {
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("host-large", 6., 6., 6, Flavor.Type.BARE_METAL);
+ b.addFlavor("host-large", 6., 6., 6, 6, Flavor.Type.BARE_METAL);
return b.build();
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
index 2f97cd13234..89edb9cf579 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
@@ -3,32 +3,22 @@ package com.yahoo.vespa.hosted.provision.provisioning;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
-import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.HostSpec;
-import com.yahoo.config.provision.InstanceName;
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.TenantName;
import com.yahoo.config.provision.Zone;
-import com.yahoo.config.provisioning.FlavorsConfig;
import com.yahoo.transaction.NestedTransaction;
-import com.yahoo.vespa.curator.Curator;
-import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
-import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.maintenance.ReservationExpirer;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.History;
-import com.yahoo.vespa.hosted.provision.persistence.NameResolver;
-import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
import org.junit.Ignore;
import org.junit.Test;
@@ -39,7 +29,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import java.util.UUID;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -68,34 +57,34 @@ public class ProvisioningTest {
tester.makeReadyNodes(21, "d-1-1-1");
// deploy
- SystemState state1 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state1 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state1.allHosts);
// redeploy
- SystemState state2 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state2 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
state2.assertEquals(state1);
tester.activate(application1, state2.allHosts);
// deploy another application
- SystemState state1App2 = prepare(application2, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state1App2 = prepare(application2, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
assertFalse("Hosts to different apps are disjunct", state1App2.allHosts.removeAll(state1.allHosts));
tester.activate(application2, state1App2.allHosts);
// prepare twice
- SystemState state3 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
- SystemState state4 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state3 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
+ SystemState state4 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
state3.assertEquals(state2);
state4.assertEquals(state3);
tester.activate(application1, state4.allHosts);
// remove nodes before deploying
- SystemState state5 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state5 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
HostSpec removed = tester.removeOne(state5.allHosts);
tester.activate(application1, state5.allHosts);
assertEquals(removed.hostname(), tester.nodeRepository().getNodes(application1, Node.State.inactive).get(0).hostname());
// remove some of the clusters
- SystemState state6 = prepare(application1, 0, 2, 0, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state6 = prepare(application1, 0, 2, 0, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state6.allHosts);
assertEquals(5, tester.getNodes(application1, Node.State.active).size());
assertEquals(5, tester.getNodes(application1, Node.State.inactive).size());
@@ -114,14 +103,14 @@ public class ProvisioningTest {
HostSpec failed = tester.removeOne(state1App2.allHosts);
tester.fail(failed);
assertEquals(9, tester.getNodes(application2, Node.State.active).size());
- SystemState state2App2 = prepare(application2, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state2App2 = prepare(application2, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
assertFalse("Hosts to different apps are disjunct", state2App2.allHosts.removeAll(state1.allHosts));
assertEquals("A new node was reserved to replace the failed one", 10, state2App2.allHosts.size());
assertFalse("The new host is not the failed one", state2App2.allHosts.contains(failed));
tester.activate(application2, state2App2.allHosts);
// deploy first app again
- SystemState state7 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state7 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
state7.assertEquals(state1);
tester.activate(application1, state7.allHosts);
assertEquals(0, tester.getNodes(application1, Node.State.inactive).size());
@@ -143,12 +132,12 @@ public class ProvisioningTest {
public void nodeVersionIsReturnedIfSet() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).build();
- tester.makeReadyNodes(4, new NodeResources(1, 1, 1), NodeType.host, 1);
+ tester.makeReadyNodes(4, new NodeResources(1, 1, 1, 0.3), NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tester.makeApplicationId(), NodeType.host);
// deploy
ApplicationId application1 = tester.makeApplicationId();
- SystemState state1 = prepare(application1, 1, 1, 1, 1, new NodeResources(1, 1, 1), tester);
+ SystemState state1 = prepare(application1, 1, 1, 1, 1, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state1.allHosts);
HostSpec host1 = state1.container0.iterator().next();
@@ -157,7 +146,7 @@ public class ProvisioningTest {
tester.nodeRepository().write(node1.with(node1.status().withVespaVersion(Version.fromString("1.2.3"))), () -> {});
// redeploy
- SystemState state2 = prepare(application1, 1, 1, 1, 1, new NodeResources(1, 1, 1), tester);
+ SystemState state2 = prepare(application1, 1, 1, 1, 1, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state2.allHosts);
host1 = state2.container0.iterator().next();
@@ -173,17 +162,17 @@ public class ProvisioningTest {
tester.makeReadyNodes(24, "d-1-1-1");
// deploy
- SystemState state1 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state1 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state1.allHosts);
// redeploy with increased sizes
- SystemState state2 = prepare(application1, 3, 4, 4, 5, new NodeResources(1, 1, 1), tester);
+ SystemState state2 = prepare(application1, 3, 4, 4, 5, new NodeResources(1, 1, 1, 0.3), tester);
state2.assertExtends(state1);
assertEquals("New nodes are reserved", 6, tester.getNodes(application1, Node.State.reserved).size());
tester.activate(application1, state2.allHosts);
// decrease again
- SystemState state3 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state3 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state3.allHosts);
assertEquals("Superfluous container nodes are deactivated",
3-2 + 4-2, tester.getNodes(application1, Node.State.inactive).size());
@@ -191,7 +180,7 @@ public class ProvisioningTest {
4-3 + 5-3, tester.getNodes(application1, Node.State.active).retired().size());
// increase even more, and remove one node before deploying
- SystemState state4 = prepare(application1, 4, 5, 5, 6, new NodeResources(1, 1, 1), tester);
+ SystemState state4 = prepare(application1, 4, 5, 5, 6, new NodeResources(1, 1, 1, 0.3), tester);
assertEquals("Inactive nodes are reused", 0, tester.getNodes(application1, Node.State.inactive).size());
assertEquals("Earlier retired nodes are not unretired before activate",
4-3 + 5-3, tester.getNodes(application1, Node.State.active).retired().size());
@@ -207,7 +196,7 @@ public class ProvisioningTest {
0, tester.getNodes(application1, Node.State.active).retired().size());
// decrease again
- SystemState state5 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state5 = prepare(application1, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state5.allHosts);
assertEquals("Superfluous container nodes are also deactivated",
4-2 + 5-2 + 1, tester.getNodes(application1, Node.State.inactive).size()); //
@@ -215,13 +204,13 @@ public class ProvisioningTest {
5-3 + 6-3 - 1, tester.getNodes(application1, Node.State.active).retired().size());
// increase content slightly
- SystemState state6 = prepare(application1, 2, 2, 4, 3, new NodeResources(1, 1, 1), tester);
+ SystemState state6 = prepare(application1, 2, 2, 4, 3, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state6.allHosts);
assertEquals("One content node is unretired",
5-4 + 6-3 - 1, tester.getNodes(application1, Node.State.active).retired().size());
// Then reserve more
- SystemState state7 = prepare(application1, 8, 2, 2, 2, new NodeResources(1, 1, 1), tester);
+ SystemState state7 = prepare(application1, 8, 2, 2, 2, new NodeResources(1, 1, 1, 0.3), tester);
// delete app
NestedTransaction removeTransaction = new NestedTransaction();
@@ -239,8 +228,8 @@ public class ProvisioningTest {
tester.makeReadyNodes(12, "d-1-1-1");
- NodeResources small = new NodeResources(1, 1, 1);
- NodeResources large = new NodeResources(2, 2, 2);
+ NodeResources small = new NodeResources(1, 1, 1, 0.3);
+ NodeResources large = new NodeResources(2, 2, 2, 0.3);
// deploy
SystemState state1 = prepare(application1, 2, 2, 4, 4, small, tester);
@@ -275,11 +264,11 @@ public class ProvisioningTest {
tester.makeReadyNodes(14, "d-2-2-2", NodeType.host);
// deploy
- SystemState state1 = prepare(application1, 2, 2, 4, 4, new NodeResources(2, 2, 2), tester);
+ SystemState state1 = prepare(application1, 2, 2, 4, 4, new NodeResources(2, 2, 2, 2), tester);
tester.activate(application1, state1.allHosts);
// redeploy with smaller docker flavor - causes in-place flavor change
- SystemState state2 = prepare(application1, 2, 2, 4, 4, new NodeResources(1, 1, 1), tester);
+ SystemState state2 = prepare(application1, 2, 2, 4, 4, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state2.allHosts);
assertEquals(12, tester.getNodes(application1, Node.State.active).size());
@@ -299,13 +288,13 @@ public class ProvisioningTest {
// deploy
SystemState state1 = prepare(application1, 2, 0, 3, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state1.allHosts);
// redeploy a too large application
try {
SystemState state2 = prepare(application1, 3, 0, 3, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
fail("Expected out of capacity exception");
}
catch (OutOfCapacityException expected) {
@@ -313,7 +302,7 @@ public class ProvisioningTest {
// deploy first state again
SystemState state3 = prepare(application1, 2, 0, 3, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state3.allHosts);
}
@@ -321,12 +310,12 @@ public class ProvisioningTest {
public void dev_deployment_node_size() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).build();
- tester.makeReadyNodes(4, new NodeResources(1, 1, 1), NodeType.host, 1);
+ tester.makeReadyNodes(4, new NodeResources(1, 1, 1, 0.3), NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tester.makeApplicationId(), NodeType.host);
ApplicationId application = tester.makeApplicationId();
SystemState state = prepare(application, 2, 2, 3, 3,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
assertEquals(4, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -335,11 +324,11 @@ public class ProvisioningTest {
public void deploy_specific_vespa_version() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).build();
- tester.makeReadyNodes(4, new NodeResources(1, 1, 1), NodeType.host, 1);
+ tester.makeReadyNodes(4, new NodeResources(1, 1, 1, 0.3), NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tester.makeApplicationId(), NodeType.host);
ApplicationId application = tester.makeApplicationId();
- SystemState state = prepare(application, 2, 2, 3, 3, new NodeResources(1, 1, 1), Version.fromString("6.91"), tester);
+ SystemState state = prepare(application, 2, 2, 3, 3, new NodeResources(1, 1, 1, 0.3), Version.fromString("6.91"), tester);
assertEquals(4, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -351,7 +340,7 @@ public class ProvisioningTest {
ApplicationId application = tester.makeApplicationId();
tester.makeReadyNodes(4, "d-1-1-1");
SystemState state = prepare(application, 2, 2, 3, 3,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
assertEquals(4, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -363,7 +352,7 @@ public class ProvisioningTest {
ApplicationId application = tester.makeApplicationId();
tester.makeReadyNodes(10, "d-1-1-1");
prepare(application, 1, 2, 3, 3,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
}
/** Dev always uses the zone default flavor */
@@ -371,12 +360,12 @@ public class ProvisioningTest {
public void dev_deployment_flavor() {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).build();
- tester.makeReadyNodes(4, new NodeResources(2, 2, 2), NodeType.host, 1);
+ tester.makeReadyNodes(4, new NodeResources(2, 2, 2, 2), NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tester.makeApplicationId(), NodeType.host);
ApplicationId application = tester.makeApplicationId();
SystemState state = prepare(application, 2, 2, 3, 3,
- new NodeResources(2, 2, 2), tester);
+ new NodeResources(2, 2, 2, 2), tester);
assertEquals(4, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -389,7 +378,7 @@ public class ProvisioningTest {
ApplicationId application = tester.makeApplicationId();
tester.makeReadyNodes(4, "d-2-2-2");
SystemState state = prepare(application, 2, 2, 3, 3,
- new NodeResources(2, 2, 2), tester);
+ new NodeResources(2, 2, 2, 0.3), tester);
assertEquals(4, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -401,7 +390,7 @@ public class ProvisioningTest {
ApplicationId application = tester.makeApplicationId();
tester.makeReadyNodes(14, "d-1-1-1");
SystemState state = prepare(application, 1, 1, 1, 64,
- new NodeResources(1, 1, 1), tester); // becomes 1, 1, 1, 6
+ new NodeResources(1, 1, 1, 0.3), tester); // becomes 1, 1, 1, 1, 6
assertEquals(9, state.allHosts.size());
tester.activate(application, state.allHosts);
}
@@ -413,7 +402,7 @@ public class ProvisioningTest {
tester.makeReadyNodes(10, "d-1-1-1");
ApplicationId application = tester.makeApplicationId();
SystemState state = prepare(application, 2, 2, 3, 3,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
// Simulate expiry
NestedTransaction deactivateTransaction = new NestedTransaction();
@@ -437,7 +426,7 @@ public class ProvisioningTest {
ApplicationId application = tester.makeApplicationId();
try {
prepare(application, 2, 2, 3, 3,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
fail("Expected exception");
}
catch (OutOfCapacityException e) {
@@ -469,7 +458,7 @@ public class ProvisioningTest {
try {
prepare(application, 2, 0, 2, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
fail("Expected exception");
} catch (OutOfCapacityException e) {
assertTrue(e.getMessage().startsWith("Could not satisfy request"));
@@ -485,11 +474,11 @@ public class ProvisioningTest {
tester.makeReadyNodes(14, "d-1-1-1");
// deploy
- SystemState state1 = prepare(application1, 3, 3, 4, 4, new NodeResources(1, 1, 1), tester);
+ SystemState state1 = prepare(application1, 3, 3, 4, 4, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state1.allHosts);
// decrease cluster sizes
- SystemState state2 = prepare(application1, 2, 2, 2, 2, new NodeResources(1, 1, 1), tester);
+ SystemState state2 = prepare(application1, 2, 2, 2, 2, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application1, state2.allHosts);
// content0
@@ -515,7 +504,7 @@ public class ProvisioningTest {
// Deploy application
{
SystemState state = prepare(application, 2, 0, 2, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application, state.allHosts);
assertEquals(4, tester.getNodes(application, Node.State.active).size());
}
@@ -525,7 +514,7 @@ public class ProvisioningTest {
List<Node> nodesToRetire = tester.getNodes(application, Node.State.active).asList().subList(0, 2);
nodesToRetire.forEach(node -> tester.patchNode(node.with(node.status().withWantToRetire(true))));
- SystemState state = prepare(application, 2, 0, 2, 0, new NodeResources(1, 1, 1), tester);
+ SystemState state = prepare(application, 2, 0, 2, 0, new NodeResources(1, 1, 1, 0.3), tester);
tester.activate(application, state.allHosts);
List<Node> retiredNodes = tester.getNodes(application).retired().asList();
@@ -544,7 +533,7 @@ public class ProvisioningTest {
// Deploy fails with out of capacity
try {
prepare(application, 2, 0, 2, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
fail("Expected exception");
} catch (OutOfCapacityException ignored) {}
assertEquals("Reserved a subset of required nodes", 2,
@@ -556,7 +545,7 @@ public class ProvisioningTest {
// Deploy is retried after a few minutes
tester.clock().advance(Duration.ofMinutes(2));
SystemState state = prepare(application, 2, 0, 2, 0,
- new NodeResources(1, 1, 1), tester);
+ new NodeResources(1, 1, 1, 0.3), tester);
List<Node> reserved = tester.getNodes(application, Node.State.reserved).asList();
assertEquals("Reserved required nodes", 4, reserved.size());
assertTrue("Time of event is updated for all nodes",
@@ -582,7 +571,7 @@ public class ProvisioningTest {
ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build();
ApplicationId application = tester.makeApplicationId();
try {
- prepare(application, 1, 0, 1, 0, true, new NodeResources(1, 1, 1), Version.fromString("6.42"), tester);
+ prepare(application, 1, 0, 1, 0, true, new NodeResources(1, 1, 1, 0.3), Version.fromString("6.42"), tester);
fail("Expected exception");
} catch (IllegalArgumentException ignored) {}
}
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 942492bb790..6bc7c5774ab 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
@@ -98,12 +98,12 @@ public class ProvisioningTester {
public static FlavorsConfig createConfig() {
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("default", 2., 4., 100, Flavor.Type.BARE_METAL).cost(3);
- b.addFlavor("small", 1., 2., 50, Flavor.Type.BARE_METAL).cost(2);
- b.addFlavor("dockerSmall", 1., 1., 10, Flavor.Type.DOCKER_CONTAINER).cost(1);
- b.addFlavor("dockerLarge", 2., 1., 20, Flavor.Type.DOCKER_CONTAINER).cost(3);
- b.addFlavor("v-4-8-100", 4., 8., 100, Flavor.Type.VIRTUAL_MACHINE).cost(4);
- b.addFlavor("large", 4., 8., 100, Flavor.Type.BARE_METAL).cost(10);
+ b.addFlavor("default", 2., 4., 100, 10, Flavor.Type.BARE_METAL).cost(3);
+ b.addFlavor("small", 1., 2., 50, 5, Flavor.Type.BARE_METAL).cost(2);
+ b.addFlavor("dockerSmall", 1., 1., 10, 1, Flavor.Type.DOCKER_CONTAINER).cost(1);
+ b.addFlavor("dockerLarge", 2., 1., 20, 1, Flavor.Type.DOCKER_CONTAINER).cost(3);
+ b.addFlavor("v-4-8-100", 4., 8., 100, 10, Flavor.Type.VIRTUAL_MACHINE).cost(4);
+ b.addFlavor("large", 4., 8., 100, 10, Flavor.Type.BARE_METAL).cost(10);
return b.build();
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ResourceCapacityTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ResourceCapacityTest.java
index c2f2e6efda0..f3fbe1555eb 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ResourceCapacityTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ResourceCapacityTest.java
@@ -18,14 +18,14 @@ public class ResourceCapacityTest {
@Test
public void basic_capacity_and_compare_operations() {
FlavorConfigBuilder b = new FlavorConfigBuilder();
- b.addFlavor("host-large", 6., 6., 6, Flavor.Type.BARE_METAL);
- b.addFlavor("host-small", 3., 3., 3, Flavor.Type.BARE_METAL);
- b.addFlavor("d-1", 1, 1., 1, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-2", 2, 2., 2, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3", 3, 3., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-disk", 3, 3., 5, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-mem", 3, 5., 3, Flavor.Type.DOCKER_CONTAINER);
- b.addFlavor("d-3-cpu", 5, 3., 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("host-large", 6., 6., 6, 6, Flavor.Type.BARE_METAL);
+ b.addFlavor("host-small", 3., 3., 3, 3, Flavor.Type.BARE_METAL);
+ b.addFlavor("d-1", 1, 1., 1, 1, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-2", 2, 2., 2, 2, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3", 3, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-disk", 3, 3., 5, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-mem", 3, 5., 3, 3, Flavor.Type.DOCKER_CONTAINER);
+ b.addFlavor("d-3-cpu", 5, 3., 3, 3, Flavor.Type.DOCKER_CONTAINER);
FlavorsConfig flavors = b.build();
Flavor hostLargeFlavor = new Flavor(flavors.flavor(0));
@@ -73,10 +73,10 @@ public class ResourceCapacityTest {
assertEquals(-1, compare(d3CPUFlavor.resources(), d3MemFlavor.resources()));
assertEquals(1, compare(d3MemFlavor.resources(), d3DiskFlavor.resources()));
- assertEquals(-1, compare(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow),
- new NodeResources(1, 2, 3, NodeResources.DiskSpeed.fast)));
- assertEquals(1, compare(new NodeResources(1, 2, 3, NodeResources.DiskSpeed.fast),
- new NodeResources(1, 2, 3, NodeResources.DiskSpeed.slow)));
+ assertEquals(-1, compare(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.slow),
+ new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast)));
+ assertEquals(1, compare(new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.fast),
+ new NodeResources(1, 2, 3, 1, NodeResources.DiskSpeed.slow)));
}
private int compare(NodeResources a, NodeResources b) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
index 5badf9246ab..1712b9448b1 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertNotNull;
// to remove these tests
public class VirtualNodeProvisioningTest {
- private static final NodeResources flavor = new NodeResources(4, 8, 100);
+ private static final NodeResources flavor = new NodeResources(4, 8, 100, 1);
private static final ClusterSpec contentClusterSpec = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"), Version.fromString("6.42"), false);
private static final ClusterSpec containerClusterSpec = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("myContainer"), Version.fromString("6.42"), false);
@@ -82,7 +82,7 @@ public class VirtualNodeProvisioningTest {
// Allowed to use same parent host for several nodes in same cluster in dev
{
- NodeResources flavor = new NodeResources(1, 1, 1);
+ NodeResources flavor = new NodeResources(1, 1, 1, 1);
tester = new ProvisioningTester.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east"))).build();
tester.makeReadyNodes(4, flavor, NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tester.makeApplicationId(), NodeType.host);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/capacity-zone.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/capacity-zone.json
index 9895948e69d..42948678c55 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/capacity-zone.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/capacity-zone.json
@@ -3,7 +3,7 @@
"couldLoseHosts": 4,
"failedTenantParent": "dockerhost1.yahoo.com",
"failedTenant": "host4.yahoo.com",
- "failedTenantResources": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "failedTenantResources": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
"failedTenantAllocation": "allocated to tenant3.application3.instance3 as 'content/id3/0/0'",
"hostCandidateRejectionReasons": {
"singularReasonFailures": {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json
index fd553a97ea4..92f77c997fa 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 16.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 10000.0,
"environment": "BARE_METAL",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json
index aa818a9cf42..d2c4e133ab7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 16.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 10000.0,
"environment": "BARE_METAL",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json
index bfa34bc0517..19051e27152 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 16.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 10000.0,
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json
index 7540f7065dc..08f8f4469ee 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-container1.json
@@ -6,13 +6,13 @@
"hostname": "test-node-pool-101-2",
"parentHostname": "dockerhost2.yahoo.com",
"openStackId": "fake-test-node-pool-101-2",
- "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
- "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 100.0,
"minMainMemoryAvailableGb": 1.0,
"minCpuCores": 1.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant3",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json
index fc91c883441..09eea4113a9 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json
index fc91c883441..09eea4113a9 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json
index f59af799f37..3f20e2b0e7b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json
index a01f4372fd8..4f9d0a89f4e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json
index 44a11c98da2..bdfba9cc629 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json
index b3ec9aa0093..c3081480fe3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json
index 963d485ac70..b779f8127df 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth":0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json
index efecd510266..1d7daebf10a 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 32.0,
"minCpuCores": 4.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 20000.0,
"environment": "BARE_METAL",
"owner": {
"tenant": "zoneapp",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json
index c7c8a26c331..59477bc2e80 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node1.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host1.yahoo.com",
"openStackId": "node1",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant1",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json
index 8cca8e910c2..2072839aca2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node10.json
@@ -6,13 +6,13 @@
"hostname": "host10.yahoo.com",
"parentHostname": "parent1.yahoo.com",
"openStackId": "node10",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant1",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
index 9ea0fdcbfe5..e089af13632 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
@@ -6,13 +6,13 @@
"hostname": "host11.yahoo.com",
"parentHostname": "parent.host.yahoo.com",
"openStackId": "host11.yahoo.com",
- "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
- "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 0.3 Gbps]",
+ "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 0.3 Gbps]",
"minDiskAvailableGb": 100.0,
"minMainMemoryAvailableGb": 1.0,
"minCpuCores": 1.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 300.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json
index d9d26ece91f..068dfc777b3 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node13.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host13.yahoo.com",
"openStackId": "node13",
- "flavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb]",
- "canonicalFlavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb]",
+ "flavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 500.0,
"minMainMemoryAvailableGb": 48.0,
"minCpuCores": 10.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant4",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json
index 56a3a75161d..a75b2b6d745 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node14.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host14.yahoo.com",
"openStackId": "node14",
- "flavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb]",
- "canonicalFlavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb]",
+ "flavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 10.0, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 500.0,
"minMainMemoryAvailableGb": 48.0,
"minCpuCores": 10.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant4",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json
index fe651e4fcc2..93adcaf0246 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node2.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host2.yahoo.com",
"openStackId": "node2",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json
index 10439678650..8a5cb53b545 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node3.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host3.yahoo.com",
"openStackId": "node3",
- "flavor": "[vcpu: 0.5, memory: 48.0 Gb, disk 500.0 Gb]",
- "canonicalFlavor": "[vcpu: 0.5, memory: 48.0 Gb, disk 500.0 Gb]",
+ "flavor": "[vcpu: 0.5, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 0.5, memory: 48.0 Gb, disk 500.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 500.0,
"minMainMemoryAvailableGb": 48.0,
"minCpuCores": 0.5,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
index 63773027a42..6865bd560bb 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json
@@ -12,7 +12,7 @@
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant3",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json
index a9b09756020..f288d560d5e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4.json
@@ -6,13 +6,13 @@
"hostname": "host4.yahoo.com",
"parentHostname": "dockerhost1.yahoo.com",
"openStackId": "node4",
- "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
- "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 100.0,
"minMainMemoryAvailableGb": 1.0,
"minCpuCores": 1.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant3",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json
index ad94495121c..6ee0ba07f06 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5-after-changes.json
@@ -6,13 +6,13 @@
"hostname": "host5.yahoo.com",
"parentHostname": "dockerhost2.yahoo.com",
"openStackId": "node5",
- "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
- "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 100.0,
"minMainMemoryAvailableGb": 1.0,
"minCpuCores": 1.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json
index 95fe01c90a4..725c6403ff5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node5.json
@@ -6,13 +6,13 @@
"hostname": "host5.yahoo.com",
"parentHostname": "dockerhost2.yahoo.com",
"openStackId": "node5",
- "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
- "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb]",
+ "flavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 1.0, memory: 1.0 Gb, disk 100.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 100.0,
"minMainMemoryAvailableGb": 1.0,
"minCpuCores": 1.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json
index 197d500bcfe..1712d02e6a5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node55.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host55.yahoo.com",
"openStackId": "node55",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 1,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json
index 23329ecdc1c..0472d1d62a4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-after-changes.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host6.yahoo.com",
"openStackId": "node6",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-2.json
index f75caf08961..061967ed105 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-2.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host6.yahoo.com",
"openStackId": "node6",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-3.json
index 802e815450e..8f11e308615 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports-3.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host6.yahoo.com",
"openStackId": "node6",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports.json
index 8e9fea80796..6aa88495010 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6-reports.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host6.yahoo.com",
"openStackId": "node6",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json
index d7a16b94fb5..15cc3920c10 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node6.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host6.yahoo.com",
"openStackId": "node6",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"owner": {
"tenant": "tenant2",
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json
index 6e0d5dcf3b0..8ec4f4e45f2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node7.json
@@ -5,13 +5,13 @@
"type": "tenant",
"hostname": "host7.yahoo.com",
"openStackId": "node7",
- "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
- "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb]",
+ "flavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
+ "canonicalFlavor": "[vcpu: 2.0, memory: 8.0 Gb, disk 50.0 Gb, bandwidth: 1.0 Gbps]",
"minDiskAvailableGb": 50.0,
"minMainMemoryAvailableGb": 8.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 1000.0,
"environment": "DOCKER_CONTAINER",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json
index aa471419333..0e87d3d67eb 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 16.0,
"minCpuCores": 2.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 10000.0,
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json
index ee658e310b0..465e29472d4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 128.0,
"minCpuCores": 64.0,
"fastDisk": true,
- "bandwidth": 0.0,
+ "bandwidth": 15000.0,
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json
index 7d8b48232b5..cfd28084393 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json
@@ -11,7 +11,7 @@
"minMainMemoryAvailableGb": 128.0,
"minCpuCores": 64.0,
"fastDisk":true,
- "bandwidth":0.0,
+ "bandwidth": 15000.0,
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,