summaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java41
1 files changed, 33 insertions, 8 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
index a5b60ae6e16..49bb51c1d79 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java
@@ -47,28 +47,28 @@ class AutoscalingTester {
/** Creates an autoscaling tester with a single host type ready */
public AutoscalingTester(NodeResources hostResources) {
- this(new Zone(Environment.prod, RegionName.from("us-east")), List.of(new Flavor("hostFlavor", hostResources)), null);
- provisioningTester.makeReadyNodes(20, "hostFlavor", NodeType.host, 8);
+ this(new Zone(Environment.prod, RegionName.from("us-east")), null, null, asConfig(hostResources));
+ provisioningTester.makeReadyNodes(20, "hostFlavor", NodeType.host, 8); // "hostFlavor" generated by asConfig
provisioningTester.deployZoneApp();
}
public AutoscalingTester(Zone zone, List<Flavor> flavors) {
this(zone,
flavors,
- new InMemoryFlagSource().withBooleanFlag(Flags.ENABLE_DYNAMIC_PROVISIONING.id(), true));
+ new InMemoryFlagSource().withBooleanFlag(Flags.ENABLE_DYNAMIC_PROVISIONING.id(), true),
+ asConfig(flavors));
}
- private AutoscalingTester(Zone zone, List<Flavor> flavors, FlagSource flagSource) {
+ private AutoscalingTester(Zone zone, List<Flavor> flavors, FlagSource flagSource, FlavorsConfig flavorsConfig) {
provisioningTester = new ProvisioningTester.Builder().zone(zone)
- .flavors(flavors)
- .resourcesCalculator(new MockHostResourcesCalculator(zone))
+ .flavorsConfig(flavorsConfig)
.hostProvisioner(new MockHostProvisioner(flavors))
.flagSource(flagSource)
.build();
hostResourcesCalculator = new MockHostResourcesCalculator(zone);
db = new NodeMetricsDb();
- autoscaler = new Autoscaler(db, nodeRepository());
+ autoscaler = new Autoscaler(hostResourcesCalculator, db, nodeRepository());
}
public ApplicationId applicationId(String applicationName) {
@@ -196,6 +196,31 @@ class AutoscalingTester {
public NodeMetricsDb nodeMetricsDb() { return db; }
+ private static FlavorsConfig asConfig(NodeResources hostResources) {
+ FlavorsConfig.Builder b = new FlavorsConfig.Builder();
+ b.flavor(asFlavorConfig("hostFlavor", hostResources));
+ return b.build();
+ }
+
+ private static FlavorsConfig asConfig(List<Flavor> flavors) {
+ FlavorsConfig.Builder b = new FlavorsConfig.Builder();
+ for (Flavor flavor : flavors)
+ b.flavor(asFlavorConfig(flavor.name(), flavor.resources()));
+ return b.build();
+ }
+
+ private static FlavorsConfig.Flavor.Builder asFlavorConfig(String flavorName, NodeResources resources) {
+ FlavorsConfig.Flavor.Builder flavor = new FlavorsConfig.Flavor.Builder();
+ flavor.name(flavorName);
+ flavor.minCpuCores(resources.vcpu());
+ flavor.minMainMemoryAvailableGb(resources.memoryGb());
+ flavor.minDiskAvailableGb(resources.diskGb());
+ flavor.bandwidth(resources.bandwidthGbps() * 1000);
+ flavor.fastDisk(resources.diskSpeed().compatibleWith(NodeResources.DiskSpeed.fast));
+ flavor.remoteStorage(resources.storageType().compatibleWith(NodeResources.StorageType.remote));
+ return flavor;
+ }
+
private static class MockHostResourcesCalculator implements HostResourcesCalculator {
private final Zone zone;
@@ -205,7 +230,7 @@ class AutoscalingTester {
}
@Override
- public NodeResources realResourcesOf(Node node, NodeRepository nodeRepository) {
+ public NodeResources realResourcesOf(Node node) {
if (zone.cloud().value().equals("aws"))
return node.flavor().resources().withMemoryGb(node.flavor().resources().memoryGb() - 3);
else