diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-04 16:29:31 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-04 16:29:31 +0100 |
commit | 8f02974459651f94ac9c576d9d21171a22d7e7a1 (patch) | |
tree | 374742537d743bc1e0db31314a9c60b4ec71430a /node-repository | |
parent | bd372b2cb06a89c5427523be0080324883a0602b (diff) |
Preserve resources decided implicitly by policies as requested
Diffstat (limited to 'node-repository')
2 files changed, 6 insertions, 6 deletions
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 f78eaf40f60..53222d25dd8 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 @@ -88,23 +88,23 @@ public class NodeRepositoryProvisioner implements Provisioner { int effectiveGroups; NodeSpec requestedNodes; + Optional<NodeResources> resources = requestedCapacity.nodeResources(); if ( requestedCapacity.type() == NodeType.tenant) { int nodeCount = application.instance().isTester() ? 1 : capacityPolicies.decideSize(requestedCapacity, cluster.type()); if (zone.environment().isManuallyDeployed() && nodeCount < requestedCapacity.nodeCount()) logger.log(Level.INFO, "Requested " + requestedCapacity.nodeCount() + " nodes for " + cluster + ", downscaling to " + nodeCount + " nodes in " + zone.environment()); - NodeResources resources = capacityPolicies.decideNodeResources(requestedCapacity.nodeResources(), cluster); + resources = Optional.of(capacityPolicies.decideNodeResources(requestedCapacity.nodeResources(), cluster)); boolean exclusive = capacityPolicies.decideExclusivity(cluster.isExclusive()); effectiveGroups = wantedGroups > nodeCount ? nodeCount : wantedGroups; // cannot have more groups than nodes - requestedNodes = NodeSpec.from(nodeCount, resources, exclusive, requestedCapacity.canFail()); + requestedNodes = NodeSpec.from(nodeCount, resources.get(), exclusive, requestedCapacity.canFail()); } else { requestedNodes = NodeSpec.from(requestedCapacity.type()); effectiveGroups = 1; // type request with multiple groups is not supported } - return asSortedHosts(preparer.prepare(application, cluster, requestedNodes, effectiveGroups), - requestedCapacity.nodeResources()); + return asSortedHosts(preparer.prepare(application, cluster, requestedNodes, effectiveGroups), resources); } @Override diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java index 8eaa6662187..17297fa357d 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java @@ -80,9 +80,9 @@ public interface NodeSpec { private final boolean exclusive; private final boolean canFail; - CountNodeSpec(int count, NodeResources flavor, boolean exclusive, boolean canFail) { + CountNodeSpec(int count, NodeResources resources, boolean exclusive, boolean canFail) { this.count = count; - this.requestedNodeResources = Objects.requireNonNull(flavor, "A flavor must be specified"); + this.requestedNodeResources = Objects.requireNonNull(resources, "Resources must be specified"); this.exclusive = exclusive; this.canFail = canFail; } |