summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-08-14 14:45:11 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-08-14 14:45:11 +0200
commita8ed8292f49c953bb0f01a2c9602d7bcda7c2244 (patch)
tree63f16874dec36a13c82828e4762ff6415c29e9a2 /node-repository/src/main/java/com/yahoo
parentec5201a3396ae573e6ace8660c24db18daad7791 (diff)
Remove handling of legacy flavor allocations
Diffstat (limited to 'node-repository/src/main/java/com/yahoo')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java27
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java1
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java18
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java16
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java1
6 files changed, 11 insertions, 56 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
index 6cee3005e91..64e2df78642 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
@@ -7,7 +7,6 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.Zone;
-import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.Flags;
@@ -22,12 +21,10 @@ import java.util.Optional;
public class CapacityPolicies {
private final Zone zone;
- private final NodeFlavors flavors;
private final FlagSource flagSource;
- public CapacityPolicies(Zone zone, NodeFlavors flavors, FlagSource flagSource) {
+ public CapacityPolicies(Zone zone, FlagSource flagSource) {
this.zone = zone;
- this.flavors = flavors;
this.flagSource = flagSource;
}
@@ -45,9 +42,7 @@ public class CapacityPolicies {
}
public NodeResources decideNodeResources(Optional<NodeResources> requestedResources, ClusterSpec cluster) {
- NodeResources resources = specifiedOrDefaultNodeResources(requestedResources, cluster);
-
- if (resources.allocateByLegacyName()) return resources; // Modification not possible
+ NodeResources resources = requestedResources.orElse(defaultNodeResources(cluster.type()));
// Allow slow disks in zones which are not performance sensitive
if (zone.system().isCd() || zone.environment() == Environment.dev || zone.environment() == Environment.test)
@@ -60,24 +55,6 @@ public class CapacityPolicies {
return resources;
}
- private NodeResources specifiedOrDefaultNodeResources(Optional<NodeResources> requestedResources, ClusterSpec cluster) {
- if (requestedResources.isPresent() && ! requestedResources.get().allocateByLegacyName())
- return requestedResources.get();
-
- if (requestedResources.isEmpty())
- return defaultNodeResources(cluster.type());
-
- switch (zone.environment()) {
- case dev: case test: case staging: return defaultNodeResources(cluster.type());
- default:
- flavors.getFlavorOrThrow(requestedResources.get().legacyName().get()); // verify existence
- // Return this spec containing the legacy flavor name, not the flavor's capacity object
- // which describes the flavors capacity, as the point of legacy allocation is to match
- // by name, not by resources
- return requestedResources.get();
- }
- }
-
private NodeResources defaultNodeResources(ClusterSpec.Type clusterType) {
if (clusterType == ClusterSpec.Type.admin)
return nodeResourcesForAdminCluster();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
index d4527452e9c..7dca60171a5 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
@@ -287,7 +287,6 @@ class NodeAllocation {
.filter(NodeSpec.CountNodeSpec.class::isInstance)
.map(NodeSpec.CountNodeSpec.class::cast)
.map(spec -> new FlavorCount(spec.resources(), spec.fulfilledDeficitCount(acceptedOfRequestedFlavor)))
- .filter(flavorCount -> ! flavorCount.getFlavor().allocateByLegacyName())
.filter(flavorCount -> flavorCount.getCount() > 0);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
index 6b27662448c..f6554b2dede 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
@@ -215,8 +215,7 @@ class NodePrioritizer {
private PrioritizableNode toNodePriority(Node node, boolean isSurplusNode, boolean isNewNode) {
PrioritizableNode.Builder builder = new PrioritizableNode.Builder(node)
.withSurplusNode(isSurplusNode)
- .withNewNode(isNewNode)
- .withPreferredOnFlavor(preferredOnLegacyFlavor(node));
+ .withNewNode(isNewNode);
allNodes.parentOf(node).ifPresent(parent -> {
builder.withParent(parent).withFreeParentCapacity(capacity.freeCapacityOf(parent, false));
@@ -229,18 +228,6 @@ class NodePrioritizer {
return builder.build();
}
- /** Needed to handle requests for legacy non-docker nodes only */
- private boolean preferredOnLegacyFlavor(Node node) {
- if (requestedNodes instanceof NodeSpec.CountNodeSpec) {
- NodeResources requestedNodeResources = ((NodeSpec.CountNodeSpec)requestedNodes).resources();
- if (requestedNodeResources.allocateByLegacyName()) {
- Flavor requestedFlavor = flavors.getFlavorOrThrow(requestedNodeResources.legacyName().get());
- return ! requestedFlavor.isStock() && node.flavor().equals(requestedFlavor);
- }
- }
- return false;
- }
-
static boolean isPreferredNodeToBeRelocated(List<Node> nodes, Node node, Node parent) {
NodeList list = new NodeList(nodes);
return list.childrenOf(parent).asList().stream()
@@ -261,8 +248,7 @@ class NodePrioritizer {
}
private boolean isDocker() {
- NodeResources flavor = resources(requestedNodes);
- return (flavor != null) && ! flavor.allocateByLegacyName();
+ return resources(requestedNodes) != null;
}
private static int compareForRelocation(Node a, Node b) {
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 1cf5cfbb4f3..29e37b76ac3 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
@@ -57,10 +57,10 @@ public class NodeRepositoryProvisioner implements Provisioner {
}
@Inject
- public NodeRepositoryProvisioner(NodeRepository nodeRepository, NodeFlavors flavors, Zone zone,
+ public NodeRepositoryProvisioner(NodeRepository nodeRepository, Zone zone,
ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource) {
this.nodeRepository = nodeRepository;
- this.capacityPolicies = new CapacityPolicies(zone, flavors, flagSource);
+ this.capacityPolicies = new CapacityPolicies(zone, flagSource);
this.zone = zone;
this.loadBalancerProvisioner = provisionServiceProvider.getLoadBalancerService().map(lbService -> new LoadBalancerProvisioner(nodeRepository, lbService));
this.preparer = new Preparer(nodeRepository,
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 66a8f2f8f6d..865b643b93b 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
@@ -92,19 +92,13 @@ public interface NodeSpec {
@Override
public boolean isCompatible(Flavor flavor, NodeFlavors flavors) {
- if (requestedNodeResources.allocateByLegacyName() && flavor.isConfigured()) {
- if (flavor.satisfies(flavors.getFlavorOrThrow(requestedNodeResources.legacyName().get())))
+ if (flavor.isDocker()) { // Docker nodes can satisfy a request for parts of their resources
+ if (flavor.resources().compatibleWith(requestedNodeResources))
return true;
}
- else {
- if (flavor.isDocker()) { // Docker nodes can satisfy a request for parts of their resources
- if (flavor.resources().compatibleWith(requestedNodeResources))
- return true;
- }
- else { // Other nodes must be matched exactly
- if (requestedNodeResources.equals(flavor.resources()))
- return true;
- }
+ else { // Other nodes must be matched exactly
+ if (requestedNodeResources.equals(flavor.resources()))
+ return true;
}
return requestedFlavorCanBeAchievedByResizing(flavor);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index a586bfa15c2..3da1d14541e 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -58,7 +58,6 @@ public class MockNodeRepository extends NodeRepository {
private void populate() {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(this,
- flavors,
Zone.defaultZone(),
new MockProvisionServiceProvider(),
new InMemoryFlagSource());