From 77e7af5899369f77eca302614b3adae465ca5db5 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Mon, 13 Jan 2020 11:39:35 +0100 Subject: Remove NodeSpec::assignRequestedFlavor --- .../provision/provisioning/NodeAllocation.java | 2 -- .../hosted/provision/provisioning/NodeSpec.java | 28 +++------------------- .../provision/provisioning/ProvisioningTest.java | 26 -------------------- 3 files changed, 3 insertions(+), 53 deletions(-) (limited to 'node-repository') 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 1c8857be139..1b8f5f27a97 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 @@ -321,8 +321,6 @@ class NodeAllocation { } for (PrioritizableNode node : nodes) { - node.node = requestedNodes.assignRequestedFlavor(node.node); - // Set whether the node is exclusive Allocation allocation = node.node.allocation().get(); node.node = node.node.with(allocation.with(allocation.membership() 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 a2414174a8c..c0b67956716 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 @@ -54,13 +54,6 @@ public interface NodeSpec { /** Returns a specification of a fraction of all the nodes of this. It is assumed the argument is a valid divisor. */ NodeSpec fraction(int divisor); - /** - * Assigns the flavor requested by this to the given node and returns it, - * if one is requested and it is allowed to change. - * Otherwise, the node is returned unchanged. - */ - Node assignRequestedFlavor(Node node); - /** Returns the resources requested by this or empty if none are explicitly requested */ Optional resources(); @@ -101,14 +94,10 @@ public interface NodeSpec { @Override public boolean isCompatible(Flavor flavor, NodeFlavors flavors) { 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; + return flavor.resources().compatibleWith(requestedNodeResources); + } else { // Other nodes must be matched exactly + return requestedNodeResources.equals(flavor.resources()); } - return requestedFlavorCanBeAchievedByResizing(flavor); } @Override @@ -147,14 +136,6 @@ public interface NodeSpec { @Override public String toString() { return "request for " + count + " nodes with " + requestedNodeResources; } - /** Docker nodes can be downsized in place */ - private boolean requestedFlavorCanBeAchievedByResizing(Flavor flavor) { - // TODO: Enable this when we can do it safely - // Then also re-enable ProvisioningTest.application_deployment_with_inplace_downsize() - // return flavor.isDocker() && requestedFlavor.isDocker() && flavor.isLargerThan(requestedFlavor); - return false; - } - } /** A node spec specifying a node type. This will accept all nodes of this type. */ @@ -200,9 +181,6 @@ public interface NodeSpec { @Override public NodeSpec fraction(int divisor) { return this; } - @Override - public Node assignRequestedFlavor(Node node) { return node; } - @Override public Optional resources() { return Optional.empty(); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index 8fde8cae399..a54afd1c229 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -21,7 +21,6 @@ import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.maintenance.ReservationExpirer; import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.History; -import org.junit.Ignore; import org.junit.Test; import java.time.Duration; @@ -257,31 +256,6 @@ public class ProvisioningTest { 0, tester.getNodes(application1, Node.State.active).retired().resources(large).size()); } - // TODO: Enable when this feature is re-enabled - @Ignore - @Test - public void application_deployment_with_inplace_downsize() { - ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build(); - - ApplicationId application1 = tester.makeApplicationId(); - - tester.makeReadyNodes(14, "d-2-2-2", NodeType.host); - - // deploy - SystemState state1 = prepare(application1, 2, 2, 4, 4, new NodeResources(2, 2, 2, 2), tester); - tester.activate(application1, state1.allHosts); - - // redeploy with smaller docker flavor - causes in-place flavor change - SystemState state2 = prepare(application1, 2, 2, 4, 4, new NodeResources(1, 1, 1, 0.3), tester); - tester.activate(application1, state2.allHosts); - - assertEquals(12, tester.getNodes(application1, Node.State.active).size()); - for (Node node : tester.getNodes(application1, Node.State.active)) - assertEquals("Node changed flavor in place", "dockerSmall", node.flavor().name()); - assertEquals("No nodes are retired", - 0, tester.getNodes(application1, Node.State.active).retired().size()); - } - @Test public void application_deployment_above_then_at_capacity_limit() { ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Environment.prod, RegionName.from("us-east"))).build(); -- cgit v1.2.3