aboutsummaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/test/java/com/yahoo/config
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-05-17 10:03:38 +0200
committerJon Bratseth <bratseth@vespa.ai>2023-05-17 10:03:38 +0200
commit2fbd594d9d27fd00ed1630e8158e35cdcfc7d32c (patch)
tree3722d5538edd3301ad0c54e748b6dd0af4414c33 /config-provisioning/src/test/java/com/yahoo/config
parentb7d6ca3d0dd94f33ca5793ec9b9d427da2a1623b (diff)
Better messaging when no allocation is possible
- Show nearest satisfying resources only. This avoids in general showing resources not intended by the user, such as suggesting nodes without gpu when gpu is requested, at the cost of more often not showing any nearest match. - Add missing colon after 'disk' in NodeResources toString
Diffstat (limited to 'config-provisioning/src/test/java/com/yahoo/config')
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java35
1 files changed, 32 insertions, 3 deletions
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java
index ae052c03556..230d28e04aa 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/NodeResourcesTest.java
@@ -6,6 +6,8 @@ import org.junit.jupiter.api.Test;
import java.util.function.Supplier;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
/**
@@ -20,11 +22,11 @@ public class NodeResourcesTest {
@Test
void testToString() {
- assertEquals("[vcpu: 1.0, memory: 10.0 Gb, disk 100.0 Gb, architecture: any]",
+ assertEquals("[vcpu: 1.0, memory: 10.0 Gb, disk: 100.0 Gb, architecture: any]",
new NodeResources(1., 10., 100., 0).toString());
- assertEquals("[vcpu: 0.3, memory: 3.3 Gb, disk 33.3 Gb, bandwidth: 0.3 Gbps, architecture: any]",
+ assertEquals("[vcpu: 0.3, memory: 3.3 Gb, disk: 33.3 Gb, bandwidth: 0.3 Gbps, architecture: any]",
new NodeResources(1 / 3., 10 / 3., 100 / 3., 0.3).toString());
- assertEquals("[vcpu: 0.7, memory: 9.0 Gb, disk 66.7 Gb, bandwidth: 0.7 Gbps, architecture: any]",
+ assertEquals("[vcpu: 0.7, memory: 9.0 Gb, disk: 66.7 Gb, bandwidth: 0.7 Gbps, architecture: any]",
new NodeResources(2 / 3., 8.97, 200 / 3., 0.67).toString());
}
@@ -37,6 +39,33 @@ public class NodeResourcesTest {
}
@Test
+ void testSatisfies() {
+ var hostResources = new NodeResources(1, 2, 3, 1);
+ assertTrue(hostResources.satisfies(new NodeResources(1, 2, 3, 1)));
+ assertTrue(hostResources.satisfies(new NodeResources(1, 1, 1, 1)));
+ assertFalse(hostResources.satisfies(new NodeResources(2, 2, 3, 1)));
+ assertFalse(hostResources.satisfies(new NodeResources(1, 3, 3, 1)));
+ assertFalse(hostResources.satisfies(new NodeResources(1, 2, 4, 1)));
+
+ var gpuHostResources = new NodeResources(1, 2, 3, 1,
+ NodeResources.DiskSpeed.fast,
+ NodeResources.StorageType.local,
+ NodeResources.Architecture.x86_64,
+ new NodeResources.GpuResources(1, 16));
+ assertTrue(gpuHostResources.satisfies(new NodeResources(1, 2, 3, 1,
+ NodeResources.DiskSpeed.fast,
+ NodeResources.StorageType.local,
+ NodeResources.Architecture.x86_64,
+ new NodeResources.GpuResources(1, 16))));
+ assertFalse(gpuHostResources.satisfies(new NodeResources(1, 2, 3, 1,
+ NodeResources.DiskSpeed.fast,
+ NodeResources.StorageType.local,
+ NodeResources.Architecture.x86_64,
+ new NodeResources.GpuResources(1, 32))));
+ assertFalse(hostResources.satisfies(gpuHostResources));
+ }
+
+ @Test
void benchmark() {
NodeResources [] resouces = new NodeResources[100];
for (int i = 0; i < resouces.length; i++) {