diff options
Diffstat (limited to 'node-repository')
7 files changed, 11 insertions, 9 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java index aa9bd7ebe7f..6c143ab4bbd 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java @@ -49,9 +49,9 @@ public class AllocatableClusterResources { this.fulfilment = 1; } - public AllocatableClusterResources(List<Node> nodes, HostResourcesCalculator calculator) { + public AllocatableClusterResources(List<Node> nodes, NodeRepository nodeRepository) { this.advertisedResources = nodes.get(0).flavor().resources(); - this.realResources = calculator.realResourcesOf(nodes.get(0)); + this.realResources = nodeRepository.resourcesCalculator().realResourcesOf(nodes.get(0), nodeRepository); this.nodes = nodes.size(); this.groups = (int)nodes.stream().map(node -> node.allocation().get().membership().cluster().group()).distinct().count(); this.clusterType = nodes.get(0).allocation().get().membership().cluster().type(); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java index f3e5d72ed64..8930bf34f4a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java @@ -74,8 +74,7 @@ public class Autoscaler { if (unstable(clusterNodes)) return Optional.empty(); ClusterSpec.Type clusterType = clusterNodes.get(0).allocation().get().membership().cluster().type(); - AllocatableClusterResources currentAllocation = new AllocatableClusterResources(clusterNodes, - nodeRepository.resourcesCalculator()); + AllocatableClusterResources currentAllocation = new AllocatableClusterResources(clusterNodes, nodeRepository); Optional<Double> cpuLoad = averageLoad(Resource.cpu, clusterNodes, clusterType); Optional<Double> memoryLoad = averageLoad(Resource.memory, clusterNodes, clusterType); Optional<Double> diskLoad = averageLoad(Resource.disk, clusterNodes, clusterType); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java index 742e34998e5..da54d89b4e5 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeResources; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; import java.util.Optional; @@ -33,7 +34,7 @@ public class EmptyProvisionServiceProvider implements ProvisionServiceProvider { private static class IdentityHostResourcesCalculator implements HostResourcesCalculator { @Override - public NodeResources realResourcesOf(Node node) { + public NodeResources realResourcesOf(Node node, NodeRepository repository) { return node.flavor().resources(); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java index b26351062e6..096e58e963e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeResources; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeRepository; /** * Some cloud providers advertise that a certain amount of resources are available in a flavor @@ -16,7 +17,7 @@ import com.yahoo.vespa.hosted.provision.Node; public interface HostResourcesCalculator { /** Nodes use advertised resources. This returns the real resources for the node. */ - NodeResources realResourcesOf(Node node); + NodeResources realResourcesOf(Node node, NodeRepository nodeRepository); /** Flavors use real resources. This returns the advertised resources of the flavor. */ NodeResources advertisedResourcesOf(Flavor flavor); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index 36f97a17f56..6f026254bcd 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -157,7 +157,7 @@ public class NodeRepositoryProvisioner implements Provisioner { .asList(); AllocatableClusterResources currentResources = nodes.isEmpty() ? new AllocatableClusterResources(requested.minResources(), clusterSpec.type()) // new deployment: Use min - : new AllocatableClusterResources(nodes, nodeRepository.resourcesCalculator()); + : new AllocatableClusterResources(nodes, nodeRepository); return ensureWithin(Limits.of(requested), currentResources); } 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 c0896826502..a5b60ae6e16 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 @@ -205,7 +205,7 @@ class AutoscalingTester { } @Override - public NodeResources realResourcesOf(Node node) { + public NodeResources realResourcesOf(Node node, NodeRepository nodeRepository) { if (zone.cloud().value().equals("aws")) return node.flavor().resources().withMemoryGb(node.flavor().resources().memoryGb() - 3); else 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 685a28f7b8d..c6e50555d81 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 @@ -17,6 +17,7 @@ import com.yahoo.config.provision.Zone; import com.yahoo.vespa.flags.Flags; import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.IP; import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver; @@ -247,7 +248,7 @@ public class DynamicDockerProvisionTest { private static class MockResourcesCalculator implements HostResourcesCalculator { @Override - public NodeResources realResourcesOf(Node node) { + public NodeResources realResourcesOf(Node node, NodeRepository nodeRepository) { if (node.type() == NodeType.host) return node.flavor().resources(); return node.flavor().resources().withMemoryGb(node.flavor().resources().memoryGb() - 3); } |