diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-02-24 17:03:00 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-02-24 17:03:00 +0100 |
commit | 4c12b3aa80e7a08590727adcf11718b45821cb3b (patch) | |
tree | 1fb48d12cd48d779f1857aaf9ce4fda3fb14decd /node-repository/src | |
parent | 28bc4276f6e6ba8f4ed1f081d2cf902b33c521e3 (diff) |
Skip redundant filter, and actually add test
Diffstat (limited to 'node-repository/src')
2 files changed, 73 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java index e36554b3600..2eee3c3f01c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java @@ -61,7 +61,7 @@ class Preparer { private List<Node> prepareNodes(ApplicationId application, ClusterSpec cluster, NodeSpec requestedNodes, int wantedGroups) { List<Node> surplusNodes = findNodesInRemovableGroups(application, cluster, wantedGroups); - List<Integer> usedIndices = nodeRepository.nodes().list(Node.State.allocatedStates().toArray(new Node.State[0])) + List<Integer> usedIndices = nodeRepository.nodes().list() .owner(application) .cluster(cluster.id()) .mapToList(node -> node.allocation().get().membership().index()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeIncidesTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeIncidesTest.java new file mode 100644 index 00000000000..eee9c2ffc01 --- /dev/null +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeIncidesTest.java @@ -0,0 +1,72 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.provision.provisioning; + +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.assertEquals; + +/** + * @author jonmv + */ +public class NodeIncidesTest { + + @Test + public void testNonCompactIndices() { + NodeIndices indices = new NodeIndices(List.of(1, 3, 4), false); + assertEquals(5, indices.probeNext()); + assertEquals(6, indices.probeNext()); + + indices.resetProbe(); + assertEquals(5, indices.probeNext()); + assertEquals(6, indices.probeNext()); + + indices.commitProbe(); + assertEquals(7, indices.probeNext()); + assertEquals(8, indices.probeNext()); + + indices.resetProbe(); + assertEquals(7, indices.next()); + assertEquals(8, indices.next()); + + assertEquals(9, indices.probeNext()); + try { + indices.next(); + } + catch (IllegalStateException e) { + assertEquals("Must commit ongoing probe before calling 'next'", e.getMessage()); + } + } + + + @Test + public void testCompactIndices() { + NodeIndices indices = new NodeIndices(List.of(1, 3, 4), true); + assertEquals(0, indices.probeNext()); + assertEquals(2, indices.probeNext()); + assertEquals(5, indices.probeNext()); + assertEquals(6, indices.probeNext()); + + indices.resetProbe(); + assertEquals(0, indices.probeNext()); + assertEquals(2, indices.probeNext()); + + indices.commitProbe(); + assertEquals(5, indices.probeNext()); + assertEquals(6, indices.probeNext()); + + indices.resetProbe(); + assertEquals(5, indices.next()); + assertEquals(6, indices.next()); + + assertEquals(7, indices.probeNext()); + try { + indices.next(); + } + catch (IllegalStateException e) { + assertEquals("Must commit ongoing probe before calling 'next'", e.getMessage()); + } + } + +} |