summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-06-23 09:12:07 +0200
committerHarald Musum <musum@yahooinc.com>2023-06-23 09:12:07 +0200
commitc5fba26586e33d33ed9fc6a12ec0c417a6fdc668 (patch)
tree5c5d54de81f4d3402ab44859192fbbaf8da430e9 /node-repository
parent9d4e9a6026439ea29618d234d2d263d0f15d8480 (diff)
Test pre-provisoning 2 hosts with same node resources except architecture
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java
index 1a97906697f..b35288d9107 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java
@@ -64,6 +64,9 @@ import java.util.Set;
import java.util.function.Supplier;
import java.util.stream.Stream;
+import static com.yahoo.config.provision.NodeResources.Architecture.arm64;
+import static com.yahoo.config.provision.NodeResources.DiskSpeed.fast;
+import static com.yahoo.config.provision.NodeResources.StorageType.remote;
import static com.yahoo.vespa.hosted.provision.testutils.MockHostProvisioner.Behaviour;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -211,10 +214,21 @@ public class HostCapacityMaintainerTest {
tester.nodeRepository.nodes().node("host101").isPresent());
}
+ // If a host with another architecture is added to preprovision capacity, a shared host should be added.
+ tester.flagSource.withListFlag(PermanentFlags.PREPROVISION_CAPACITY.id(),
+ List.of(new ClusterCapacity(1, 2.0, 30.0, 20.0, 3.0, "fast", "remote", "x86_64"),
+ new ClusterCapacity(1, 2.0, 30.0, 20.0, 3.0, "fast", "remote", "arm64")),
+ ClusterCapacity.class);
+ tester.hostProvisioner.setHostFlavor("arm64");
+ tester.maintain();
+
+ assertEquals(2, tester.hostProvisioner.provisionedHosts().size());
+ assertEquals(1, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10)));
+ assertEquals(1, tester.provisionedHostsMatching(new NodeResources(2, 30, 20, 3, fast, remote, arm64)));
}
private void verifyFirstMaintain(DynamicProvisioningTester tester) {
- assertEquals(1, tester.hostProvisioner.provisionedHosts().size());
+ assertEquals(tester.hostProvisioner.provisionedHosts().toString(), 1, tester.hostProvisioner.provisionedHosts().size());
assertEquals(1, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10)));
assertEquals(8, tester.nodeRepository.nodes().list().not().state(State.deprovisioned).size()); // 2 removed, 1 added
assertSame("Failed host 'host2' is deprovisioned", State.deprovisioned, tester.nodeRepository.nodes().node("host2").get().state());
@@ -252,7 +266,7 @@ public class HostCapacityMaintainerTest {
tester.assertNodesUnchanged();
// Pretend shared-host flag has been set to host4's flavor
- var sharedHostNodeResources = new NodeResources(48, 128, 1000, 10, NodeResources.DiskSpeed.fast, NodeResources.StorageType.remote);
+ var sharedHostNodeResources = new NodeResources(48, 128, 1000, 10, fast, remote);
tester.hostProvisioner.setHostFlavor("host4");
// Next maintenance run does nothing
@@ -673,7 +687,7 @@ public class HostCapacityMaintainerTest {
private static final InfraApplication configServerHostApp = new ConfigServerHostApplication();
private static final InfraApplication configServerApp = new ConfigServerApplication();
private static final ApplicationId tenantApp = ApplicationId.from("mytenant", "myapp", "default");
- private static final NodeFlavors flavors = FlavorConfigBuilder.createDummies("default", "docker", "host2", "host3", "host4");
+ private static final NodeFlavors flavors = FlavorConfigBuilder.createDummies("default", "docker", "host2", "host3", "host4", "arm64");
private final InMemoryFlagSource flagSource = new InMemoryFlagSource();