diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-02-09 19:04:25 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-02-09 19:04:25 +0100 |
commit | 7a9fe3fa0024c5dd995c1f48584bc7fab5284299 (patch) | |
tree | 0c0f12225835b99a1502cc1be156e33d67c65425 /node-repository | |
parent | 893e6266501b37228d243460796d086219e79420 (diff) |
Remove getNodes(...): Always use list(...)
Diffstat (limited to 'node-repository')
26 files changed, 113 insertions, 99 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java index 19c1fa090c9..84aafa77c27 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java @@ -271,4 +271,14 @@ public class NodeList extends AbstractFilteringList<Node, NodeList> { return asList().toString(); } + @Override + public int hashCode() { return asList().hashCode(); } + + @Override + public boolean equals(Object other) { + if (other == this) return true; + if ( ! (other instanceof NodeList)) return false; + return this.asList().equals(((NodeList) other).asList()); + } + } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Expirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Expirer.java index 8ccb8980a71..5b9cd6a69e1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Expirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Expirer.java @@ -41,7 +41,7 @@ public abstract class Expirer extends NodeRepositoryMaintainer { @Override protected boolean maintain() { - List<Node> expired = nodeRepository().nodes().getNodes(fromState).stream() + List<Node> expired = nodeRepository().nodes().list(fromState).stream() .filter(this::isExpired) .collect(Collectors.toList()); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java index 08edee0be8b..7317942c045 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java @@ -68,7 +68,7 @@ public class FailedExpirer extends NodeRepositoryMaintainer { @Override protected boolean maintain() { - List<Node> remainingNodes = nodeRepository.nodes().getNodes(Node.State.failed).stream() + List<Node> remainingNodes = nodeRepository.nodes().list(Node.State.failed).stream() .filter(node -> node.type() == NodeType.tenant || node.type() == NodeType.host) .collect(Collectors.toList()); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java index 7c3e3eb4553..0591bd11eba 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java @@ -129,7 +129,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { clock().instant().minus(downTimeLimit).minus(nodeRequestInterval); Map<Node, String> nodesByFailureReason = new HashMap<>(); - for (Node node : nodeRepository().nodes().getNodes(Node.State.ready)) { + for (Node node : nodeRepository().nodes().list(Node.State.ready)) { if (expectConfigRequests(node) && ! hasNodeRequestedConfigAfter(node, oldestAcceptableRequestTime)) { nodesByFailureReason.put(node, "Not receiving config requests from node"); } else { @@ -148,7 +148,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { } private Map<Node, String> getActiveNodesByFailureReason() { - List<Node> activeNodes = nodeRepository().nodes().getNodes(Node.State.active); + NodeList activeNodes = nodeRepository().nodes().list(Node.State.active); Instant graceTimeEnd = clock().instant().minus(downTimeLimit); Map<Node, String> nodesByFailureReason = new HashMap<>(); for (Node node : activeNodes) { @@ -224,7 +224,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { } /** Is the node and all active children suspended? */ - private boolean hostSuspended(Node node, List<Node> activeNodes) { + private boolean hostSuspended(Node node, NodeList activeNodes) { if (!nodeSuspended(node)) return false; if (node.parentHostname().isPresent()) return true; // optimization return activeNodes.stream() @@ -303,7 +303,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { private boolean throttle(Node node) { if (throttlePolicy == ThrottlePolicy.disabled) return false; Instant startOfThrottleWindow = clock().instant().minus(throttlePolicy.throttleWindow); - List<Node> nodes = nodeRepository().nodes().getNodes(); + NodeList nodes = nodeRepository().nodes().list(); NodeList recentlyFailedNodes = nodes.stream() .filter(n -> n.state() == Node.State.failed) .filter(n -> n.history().hasEventAfter(History.Event.Type.failed, startOfThrottleWindow)) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java index 92131a1cd74..e9dc961ce39 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java @@ -58,7 +58,7 @@ public class NodeHealthTracker extends NodeRepositoryMaintainer { // Update node last request events through ZooKeeper to collect request to all config servers. // We do this here ("lazily") to avoid writing to zk for each config request. try (Mutex lock = nodeRepository().nodes().lockUnallocated()) { - for (Node node : nodeRepository().nodes().getNodes(Node.State.ready)) { + for (Node node : nodeRepository().nodes().list(Node.State.ready)) { Optional<Instant> lastLocalRequest = hostLivenessTracker.lastRequestFrom(node.hostname()); if (lastLocalRequest.isEmpty()) continue; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java index e2cafbb9406..6ee657beadd 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java @@ -39,7 +39,7 @@ public class NodeRebooter extends NodeRepositoryMaintainer { @Override protected boolean maintain() { // Reboot candidates: Nodes in long-term states, where we know we can safely orchestrate a reboot - List<Node> nodesToReboot = nodeRepository().nodes().getNodes(Node.State.active, Node.State.ready).stream() + List<Node> nodesToReboot = nodeRepository().nodes().list(Node.State.active, Node.State.ready).stream() .filter(node -> node.type().isHost()) .filter(this::shouldReboot) .collect(Collectors.toList()); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java index 8253b3def0a..e0f6c9d78bb 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java @@ -9,6 +9,7 @@ import com.yahoo.vespa.flags.FetchVector; import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.flags.PermanentFlags; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import java.time.Duration; @@ -75,8 +76,8 @@ public class PeriodicApplicationMaintainer extends ApplicationMaintainer { return ! skipMaintenanceDeployment.value(); } - protected List<Node> nodesNeedingMaintenance() { - return nodeRepository().nodes().getNodes(Node.State.active); + protected NodeList nodesNeedingMaintenance() { + return nodeRepository().nodes().list(Node.State.active); } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java index 337d25ca732..3064ac2d16b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirer.java @@ -7,6 +7,7 @@ import com.yahoo.config.provision.Deployer; import com.yahoo.jdisc.Metric; import com.yahoo.vespa.applicationmodel.HostName; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.History; import com.yahoo.vespa.orchestrator.OrchestrationException; @@ -45,7 +46,7 @@ public class RetiredExpirer extends NodeRepositoryMaintainer { @Override protected boolean maintain() { - List<Node> activeNodes = nodeRepository().nodes().getNodes(Node.State.active); + NodeList activeNodes = nodeRepository().nodes().list(Node.State.active); Map<ApplicationId, List<Node>> retiredNodesByApplication = activeNodes.stream() .filter(node -> node.allocation().isPresent()) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java index d61c6f38306..b235d6b0ff0 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java @@ -75,15 +75,6 @@ public class Nodes { } /** - * Returns all nodes in any of the given states. - * - * @param inState the states to return nodes from. If no states are given, all nodes of the given type are returned - * @return the node, or empty if it was not found in any of the given states - */ - public List<Node> getNodes(Node.State... inState) { - return new ArrayList<>(db.readNodes(inState)); - } - /** * Finds and returns the nodes of the given type in any of the given states. * * @param type the node type to return @@ -94,11 +85,20 @@ public class Nodes { return db.readNodes(inState).stream().filter(node -> node.type().equals(type)).collect(Collectors.toList()); } - /** Returns a filterable list of nodes in this repository in any of the given states */ + /** + * Returns a list of nodes in this repository in any of the given states + * + * @param inState the states to return nodes from. If no states are given, all nodes of the given type are returned + */ public NodeList list(Node.State... inState) { - return NodeList.copyOf(getNodes(inState)); + return NodeList.copyOf(db.readNodes(inState)); } + /** + * Returns a list of nodes in this repository for an application in any of the given states + * + * @param inState the states to return nodes from. If no states are given, all nodes of the given type are returned + */ public NodeList list(ApplicationId application, Node.State... inState) { return NodeList.copyOf(getNodes(application, inState)); } @@ -110,7 +110,7 @@ public class Nodes { /** Returns a locked list of all nodes in this repository */ public LockedNodeList list(Mutex lock) { - return new LockedNodeList(getNodes(), lock); + return new LockedNodeList(list().asList(), lock); } public List<Node> getNodes(ApplicationId id, Node.State... inState) { return db.readNodes(id, inState); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java index 696853b2992..95445ad0a66 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java @@ -261,6 +261,8 @@ public class CuratorDatabaseClient { /** * Returns all nodes which are in one of the given states. * If no states are given this returns all nodes. + * + * @return the nodes in a mutable list owned by the caller */ public List<Node> readNodes(Node.State ... states) { List<Node> nodes = new ArrayList<>(); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java index 156d1023bbc..b1bba656dc8 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java @@ -210,8 +210,7 @@ public class LoadBalancerProvisioner { /** Returns the load balanced clusters of given application and their nodes */ private Map<ClusterSpec.Id, List<Node>> loadBalancedClustersOf(ApplicationId application) { - NodeList nodes = NodeList.copyOf(nodeRepository.nodes().getNodes(Node.State.reserved, Node.State.active)) - .owner(application); + NodeList nodes = nodeRepository.nodes().list(Node.State.reserved, Node.State.active).owner(application); if (nodes.stream().anyMatch(node -> node.type() == NodeType.config)) { nodes = nodes.nodeType(NodeType.config).type(ClusterSpec.Type.admin); } else if (nodes.stream().anyMatch(node -> node.type() == NodeType.controller)) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java index e71902f908b..5ef71a6c1b1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java @@ -116,7 +116,7 @@ class NodesResponse extends HttpResponse { /** Outputs all the nodes to a node array */ private void nodesToSlime(Cursor parentObject) { Cursor nodeArray = parentObject.setArray("nodes"); - toSlime(nodeRepository.nodes().getNodes(), nodeArray); + toSlime(nodeRepository.nodes().list().asList(), nodeArray); } private void toSlime(List<Node> nodes, Cursor array) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java index 0617884d227..78835912606 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java @@ -32,19 +32,19 @@ public class NodeRepositoryTest { @Test public void add_and_remove() { NodeRepositoryTester tester = new NodeRepositoryTester(); - assertEquals(0, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(0, tester.nodeRepository().nodes().list().size()); tester.addHost("id1", "host1", "default", NodeType.host); tester.addHost("id2", "host2", "default", NodeType.host); tester.addHost("id3", "host3", "default", NodeType.host); - assertEquals(3, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(3, tester.nodeRepository().nodes().list().size()); tester.nodeRepository().nodes().park("host2", true, Agent.system, "Parking to unit test"); tester.nodeRepository().nodes().removeRecursively("host2"); - assertEquals(3, tester.nodeRepository().nodes().getNodes().size()); - assertEquals(1, tester.nodeRepository().nodes().getNodes(Node.State.deprovisioned).size()); + assertEquals(3, tester.nodeRepository().nodes().list().size()); + assertEquals(1, tester.nodeRepository().nodes().list(Node.State.deprovisioned).size()); } @Test @@ -120,7 +120,7 @@ public class NodeRepositoryTest { tester.addNode("node12", "node12", "host1", "docker", NodeType.tenant); tester.addNode("node20", "node20", "host2", "docker", NodeType.tenant); tester.setNodeState("node11", Node.State.active); - assertEquals(6, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(6, tester.nodeRepository().nodes().list().size()); try { tester.nodeRepository().nodes().removeRecursively("host1"); @@ -128,18 +128,18 @@ public class NodeRepositoryTest { } catch (IllegalArgumentException ignored) { // Expected } - assertEquals(6, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(6, tester.nodeRepository().nodes().list().size()); // Should be OK to delete host2 as both host2 and its only child, node20, are in state provisioned tester.nodeRepository().nodes().removeRecursively("host2"); - assertEquals(5, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(5, tester.nodeRepository().nodes().list().size()); assertEquals(Node.State.deprovisioned, tester.nodeRepository().nodes().getNode("host2").get().state()); // Now node10 is in provisioned, set node11 to failed and node12 to ready, and it should be OK to delete host1 tester.nodeRepository().nodes().fail("node11", Agent.system, getClass().getSimpleName()); tester.nodeRepository().nodes().setReady("node12", Agent.system, getClass().getSimpleName()); tester.nodeRepository().nodes().removeRecursively("node12"); // Remove one of the children first instead - assertEquals(4, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(4, tester.nodeRepository().nodes().list().size()); tester.nodeRepository().nodes().removeRecursively("host1"); assertEquals(Node.State.deprovisioned, tester.nodeRepository().nodes().getNode("host1").get().state()); assertEquals(IP.Config.EMPTY.primary(), tester.nodeRepository().nodes().getNode("host1").get().ipConfig().primary()); @@ -155,13 +155,13 @@ public class NodeRepositoryTest { tester.addNode("id2", cfg1, cfghost1, "docker", NodeType.config); tester.setNodeState(cfghost1, Node.State.active); tester.setNodeState(cfg1, Node.State.active); - assertEquals(2, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(2, tester.nodeRepository().nodes().list().size()); try { tester.nodeRepository().nodes().removeRecursively(cfghost1); fail("Should not be able to delete host node, one of the children is in state active"); } catch (IllegalArgumentException ignored) { } - assertEquals(2, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(2, tester.nodeRepository().nodes().list().size()); // Fail host and container tester.nodeRepository().nodes().failRecursively(cfghost1, Agent.system, getClass().getSimpleName()); @@ -225,7 +225,7 @@ public class NodeRepositoryTest { tester.setNodeState("node12", Node.State.active); tester.setNodeState("node20", Node.State.failed); - assertEquals(6, tester.nodeRepository().nodes().getNodes().size()); + assertEquals(6, tester.nodeRepository().nodes().list().size()); // Should be OK to dirty host2 as it is in provisioned and its only child is in failed tester.nodeRepository().nodes().deallocateRecursively("host2", Agent.system, NodeRepositoryTest.class.getSimpleName()); @@ -267,8 +267,8 @@ public class NodeRepositoryTest { tester.setNodeState("node1", Node.State.failed); tester.nodeRepository().nodes().breakfixRecursively("host1", Agent.system, reason); - assertEquals(1, tester.nodeRepository().nodes().getNodes().size()); - Node node = tester.nodeRepository().nodes().getNodes().get(0); + assertEquals(1, tester.nodeRepository().nodes().list().size()); + Node node = tester.nodeRepository().nodes().list().first().get(); assertEquals("host1", node.hostname()); assertEquals(Node.State.breakfixed, node.state()); } @@ -279,7 +279,7 @@ public class NodeRepositoryTest { private static Set<String> filterNodes(NodeRepositoryTester tester, Predicate<Node> filter) { return tester.nodeRepository().nodes() - .getNodes().stream() + .list().stream() .filter(filter) .map(Node::hostname) .collect(Collectors.toSet()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java index 2f735742ed5..5cc25e83415 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java @@ -20,6 +20,7 @@ import com.yahoo.vespa.flags.PermanentFlags; import com.yahoo.vespa.flags.custom.ClusterCapacity; import com.yahoo.vespa.flags.custom.SharedHost; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Address; import com.yahoo.vespa.hosted.provision.node.Agent; @@ -88,7 +89,7 @@ public class DynamicProvisioningMaintainerTest { tester.maintainer.maintain(); assertEquals(Set.of("host4", "host4-1"), - tester.nodeRepository.nodes().getNodes(Node.State.failed).stream().map(Node::hostname).collect(Collectors.toSet())); + tester.nodeRepository.nodes().list(Node.State.failed).stream().map(Node::hostname).collect(Collectors.toSet())); } @Test @@ -123,7 +124,7 @@ public class DynamicProvisioningMaintainerTest { ClusterCapacity.class); assertEquals(0, tester.hostProvisioner.provisionedHosts.size()); - assertEquals(11, tester.nodeRepository.nodes().getNodes().size()); + assertEquals(11, tester.nodeRepository.nodes().list().size()); assertTrue(tester.nodeRepository.nodes().getNode("host2").isPresent()); assertTrue(tester.nodeRepository.nodes().getNode("host2-1").isPresent()); assertTrue(tester.nodeRepository.nodes().getNode("host3").isPresent()); @@ -134,7 +135,7 @@ public class DynamicProvisioningMaintainerTest { assertEquals(2, tester.hostProvisioner.provisionedHosts.size()); assertEquals(2, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10))); - List<Node> nodesAfter = tester.nodeRepository.nodes().getNodes(); + NodeList nodesAfter = tester.nodeRepository.nodes().list(); assertEquals(11, nodesAfter.size()); // 2 removed, 2 added assertTrue("Failed host 'host2' is deprovisioned", tester.nodeRepository.nodes().getNode("host2").isEmpty()); assertTrue("Node on deprovisioned host removed", tester.nodeRepository.nodes().getNode("host2-1").isEmpty()); @@ -154,7 +155,7 @@ public class DynamicProvisioningMaintainerTest { ClusterCapacity.class); assertEquals(0, tester.hostProvisioner.provisionedHosts.size()); - assertEquals(11, tester.nodeRepository.nodes().getNodes().size()); + assertEquals(11, tester.nodeRepository.nodes().list().size()); assertTrue(tester.nodeRepository.nodes().getNode("host2").isPresent()); assertTrue(tester.nodeRepository.nodes().getNode("host2-1").isPresent()); assertTrue(tester.nodeRepository.nodes().getNode("host3").isPresent()); @@ -194,7 +195,7 @@ public class DynamicProvisioningMaintainerTest { assertEquals(2, tester.hostProvisioner.provisionedHosts.size()); assertEquals(2, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10))); - assertEquals(10, tester.nodeRepository.nodes().getNodes().size()); // 3 removed, 2 added + assertEquals(10, tester.nodeRepository.nodes().list().size()); // 3 removed, 2 added assertTrue("preprovision capacity is prefered on shared hosts", tester.nodeRepository.nodes().getNode("host3").isEmpty()); assertTrue(tester.nodeRepository.nodes().getNode("hostname100").isPresent()); assertTrue(tester.nodeRepository.nodes().getNode("hostname101").isPresent()); @@ -210,7 +211,7 @@ public class DynamicProvisioningMaintainerTest { assertEquals("one provisioned host has been deprovisioned, so there are 2 -> 1 provisioned hosts", 1, tester.hostProvisioner.provisionedHosts.size()); assertEquals(1, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10))); - assertEquals(9, tester.nodeRepository.nodes().getNodes().size()); // 4 removed, 2 added + assertEquals(9, tester.nodeRepository.nodes().list().size()); // 4 removed, 2 added if (tester.nodeRepository.nodes().getNode("hostname100").isPresent()) { assertTrue("hostname101 is superfluous and should have been deprovisioned", tester.nodeRepository.nodes().getNode("hostname101").isEmpty()); @@ -224,7 +225,7 @@ public class DynamicProvisioningMaintainerTest { private void verifyFirstMaintain(DynamicProvisioningTester tester) { assertEquals(1, tester.hostProvisioner.provisionedHosts.size()); assertEquals(1, tester.provisionedHostsMatching(new NodeResources(48, 128, 1000, 10))); - assertEquals(10, tester.nodeRepository.nodes().getNodes().size()); // 2 removed, 1 added + assertEquals(10, tester.nodeRepository.nodes().list().size()); // 2 removed, 1 added assertTrue("Failed host 'host2' is deprovisioned", tester.nodeRepository.nodes().getNode("host2").isEmpty()); assertTrue("Node on deprovisioned host removed", tester.nodeRepository.nodes().getNode("host2-1").isEmpty()); assertTrue("One 1-30-20-3 node fits on host3", tester.nodeRepository.nodes().getNode("host3").isPresent()); @@ -482,9 +483,9 @@ public class DynamicProvisioningMaintainerTest { } private void assertNodesUnchanged() { - List<Node> nodes = nodeRepository.nodes().getNodes(); + NodeList nodes = nodeRepository.nodes().list(); maintainer.maintain(); - assertEquals("Nodes are unchanged after maintenance run", nodes, nodeRepository.nodes().getNodes()); + assertEquals("Nodes are unchanged after maintenance run", nodes, nodeRepository.nodes().list()); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java index d02d08f7736..6a10b930871 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java @@ -341,7 +341,7 @@ public class FailedExpirerTest { public void assertNodesIn(Node.State state, String... hostnames) { assertEquals(Stream.of(hostnames).collect(Collectors.toSet()), nodeRepository.nodes() - .getNodes(state).stream() + .list(state).stream() .map(Node::hostname) .collect(Collectors.toSet())); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java index 4bee276af6d..0f24826f1be 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java @@ -15,6 +15,7 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.History; import com.yahoo.vespa.hosted.provision.provisioning.ProvisioningTester; @@ -65,14 +66,14 @@ public class InactiveAndFailedExpirerTest { // Inactive times out tester.advanceTime(Duration.ofMinutes(14)); new InactiveExpirer(tester.nodeRepository(), Duration.ofMinutes(10), new TestMetric()).run(); - assertEquals(0, tester.nodeRepository().nodes().getNodes(Node.State.inactive).size()); - List<Node> dirty = tester.nodeRepository().nodes().getNodes(Node.State.dirty); + assertEquals(0, tester.nodeRepository().nodes().list(Node.State.inactive).size()); + NodeList dirty = tester.nodeRepository().nodes().list(Node.State.dirty); assertEquals(2, dirty.size()); - assertFalse(dirty.get(0).allocation().isPresent()); - assertFalse(dirty.get(1).allocation().isPresent()); + assertFalse(dirty.asList().get(0).allocation().isPresent()); + assertFalse(dirty.asList().get(1).allocation().isPresent()); // One node is set back to ready - Node ready = tester.nodeRepository().nodes().setReady(Collections.singletonList(dirty.get(0)), Agent.system, getClass().getSimpleName()).get(0); + Node ready = tester.nodeRepository().nodes().setReady(Collections.singletonList(dirty.asList().get(0)), Agent.system, getClass().getSimpleName()).get(0); assertEquals("Allocated history is removed on readying", Arrays.asList(History.Event.Type.provisioned, History.Event.Type.readied), ready.history().events().stream().map(History.Event::type).collect(Collectors.toList())); @@ -108,11 +109,11 @@ public class InactiveAndFailedExpirerTest { // Inactive times out and node is moved to dirty tester.advanceTime(Duration.ofMinutes(14)); new InactiveExpirer(tester.nodeRepository(), Duration.ofMinutes(10), new TestMetric()).run(); - List<Node> dirty = tester.nodeRepository().nodes().getNodes(Node.State.dirty); + NodeList dirty = tester.nodeRepository().nodes().list(Node.State.dirty); assertEquals(2, dirty.size()); // Reboot generation is increased - assertEquals(wantedRebootGeneration + 1, dirty.get(0).status().reboot().wanted()); + assertEquals(wantedRebootGeneration + 1, dirty.first().get().status().reboot().wanted()); } @Test @@ -154,12 +155,12 @@ public class InactiveAndFailedExpirerTest { doThrow(new RuntimeException()).when(orchestrator).acquirePermissionToRemove(any()); new RetiredExpirer(tester.nodeRepository(), tester.orchestrator(), deployer, new TestMetric(), Duration.ofDays(30), Duration.ofMinutes(10)).run(); - assertEquals(1, tester.nodeRepository().nodes().getNodes(Node.State.inactive).size()); + assertEquals(1, tester.nodeRepository().nodes().list(Node.State.inactive).size()); // Inactive times out and one node is moved to parked tester.advanceTime(Duration.ofMinutes(11)); // Trigger InactiveExpirer new InactiveExpirer(tester.nodeRepository(), Duration.ofMinutes(10), new TestMetric()).run(); - assertEquals(1, tester.nodeRepository().nodes().getNodes(Node.State.parked).size()); + assertEquals(1, tester.nodeRepository().nodes().list(Node.State.parked).size()); } @Test @@ -181,11 +182,10 @@ public class InactiveAndFailedExpirerTest { // See that nodes are moved to dirty immediately. new InactiveExpirer(tester.nodeRepository(), Duration.ofMinutes(10), new TestMetric()).run(); - assertEquals(0, tester.nodeRepository().nodes().getNodes(Node.State.inactive).size()); - List<Node> dirty = tester.nodeRepository().nodes().getNodes(Node.State.dirty); + assertEquals(0, tester.nodeRepository().nodes().list(Node.State.inactive).size()); + NodeList dirty = tester.nodeRepository().nodes().list(Node.State.dirty); assertEquals(1, dirty.size()); - assertFalse(dirty.get(0).allocation().isPresent()); - + assertFalse(dirty.first().get().allocation().isPresent()); } @Test @@ -206,7 +206,7 @@ public class InactiveAndFailedExpirerTest { tester.patchNodes(inactiveNodes, (node) -> node.withWantToRetire(true, true, Agent.system, tester.clock().instant())); tester.advanceTime(Duration.ofMinutes(11)); new InactiveExpirer(tester.nodeRepository(), Duration.ofMinutes(10), new TestMetric()).run(); - assertEquals(2, tester.nodeRepository().nodes().getNodes(Node.State.parked).size()); + assertEquals(2, tester.nodeRepository().nodes().list(Node.State.parked).size()); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java index dba3ca6a92e..d21f7dfd459 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java @@ -212,7 +212,7 @@ public class NodeFailTester { } public void allNodesMakeAConfigRequestExcept(List<Node> deadNodes) { - for (Node node : nodeRepository.nodes().getNodes()) { + for (Node node : nodeRepository.nodes().list()) { if ( ! deadNodes.contains(node)) hostLivenessTracker.receivedRequestFrom(node.hostname()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java index 50b99afbca5..401b4093798 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java @@ -51,7 +51,7 @@ public class NodeFailerTest { String hostWithFailureReports = selectFirstParentHostWithNActiveNodesExcept(tester.nodeRepository, 2); // Set failure report to the parent and all its children. - tester.nodeRepository.nodes().getNodes().stream() + tester.nodeRepository.nodes().list().stream() .filter(node -> node.hostname().equals(hostWithFailureReports)) .forEach(node -> { Node updatedNode = node.with(node.reports().withReport(badTotalMemorySizeReport)); @@ -101,7 +101,7 @@ public class NodeFailerTest { tester.suspend(hostWithHwFailure); tester.runMaintainers(); assertEquals(Node.State.failed, tester.nodeRepository.nodes().getNode(hostWithHwFailure).get().state()); - assertEquals(4, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(4, tester.nodeRepository.nodes().list(Node.State.failed).size()); } @Test @@ -121,7 +121,7 @@ public class NodeFailerTest { // Set failure report to the parent and all its children. Report badTotalMemorySizeReport = Report.basicReport("badTotalMemorySize", HARD_FAIL, Instant.now(), "too low"); - tester.nodeRepository.nodes().getNodes().stream() + tester.nodeRepository.nodes().list().stream() .filter(node -> node.hostname().equals(hostWithFailureReports)) .forEach(node -> { Node updatedNode = node.with(node.reports().withReport(badTotalMemorySizeReport)); @@ -482,7 +482,7 @@ public class NodeFailerTest { tester.runMaintainers(); tester.clock.advance(Duration.ofMinutes(interval)); tester.allNodesMakeAConfigRequestExcept(); - assertEquals(3 + 1, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(3 + 1, tester.nodeRepository.nodes().list(Node.State.failed).size()); } tester.clock.advance(Duration.ofMinutes(30)); @@ -589,7 +589,7 @@ public class NodeFailerTest { tester.nodeRepository.nodes().write(readyNode.with(new Reports().withReport(badTotalMemorySizeReport)), () -> {}); tester.runMaintainers(); - assertEquals(1, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(1, tester.nodeRepository.nodes().list(Node.State.failed).size()); } @Test @@ -610,7 +610,7 @@ public class NodeFailerTest { // 2 nodes are failed (the minimum amount that are always allowed to fail) tester.runMaintainers(); - assertEquals(2, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(2, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled node failures", 2, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); @@ -620,7 +620,7 @@ public class NodeFailerTest { tester.allNodesMakeAConfigRequestExcept(deadNodes); } tester.runMaintainers(); - assertEquals(2, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(2, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled node failures", 2, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); @@ -630,7 +630,7 @@ public class NodeFailerTest { tester.allNodesMakeAConfigRequestExcept(deadNodes); } tester.runMaintainers(); - assertEquals(4, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(4, tester.nodeRepository.nodes().list(Node.State.failed).size()); // 24 more hours pass, nothing happens for (int minutes = 0, interval = 30; minutes < 24 * 60; minutes += interval) { @@ -652,7 +652,7 @@ public class NodeFailerTest { assertEquals(4 + /* already failed */ 2 + /* hosts */ (2 * 3) /* containers per host */, - tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled host failures", 1, tester.metric.values.get(NodeFailer.throttledHostFailuresMetric)); @@ -662,14 +662,14 @@ public class NodeFailerTest { tester.allNodesMakeAConfigRequestExcept(deadNodes); } tester.runMaintainers(); - assertEquals(12, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(12, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled host failures", 1, tester.metric.values.get(NodeFailer.throttledHostFailuresMetric)); // The final host and its containers are failed out tester.clock.advance(Duration.ofMinutes(30)); tester.runMaintainers(); - assertEquals(16, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(16, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is not indicated by the metric, as no throttled attempt is made", 0, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("No throttled node failures", 0, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); @@ -677,7 +677,7 @@ public class NodeFailerTest { tester.clock.advance(Duration.ofHours(25)); tester.allNodesMakeAConfigRequestExcept(deadNodes); tester.runMaintainers(); - assertEquals(16, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(16, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is not indicated by the metric", 0, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("No throttled node failures", 0, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); } @@ -695,7 +695,7 @@ public class NodeFailerTest { } tester.runMaintainers(); // 2% are allowed to fail - assertEquals(10, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(10, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric.", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled node failures", 5, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); @@ -705,7 +705,7 @@ public class NodeFailerTest { tester.allNodesMakeAConfigRequestExcept(deadNodes); } tester.runMaintainers(); - assertEquals(10, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(10, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is indicated by the metric.", 1, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("Throttled node failures", 5, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); @@ -715,7 +715,7 @@ public class NodeFailerTest { tester.allNodesMakeAConfigRequestExcept(deadNodes); } tester.runMaintainers(); - assertEquals(15, tester.nodeRepository.nodes().getNodes(Node.State.failed).size()); + assertEquals(15, tester.nodeRepository.nodes().list(Node.State.failed).size()); assertEquals("Throttling is not indicated by the metric, as no throttled attempt is made.", 0, tester.metric.values.get(NodeFailer.throttlingActiveMetric)); assertEquals("No throttled node failures", 0, tester.metric.values.get(NodeFailer.throttledNodeFailuresMetric)); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooterTest.java index b9f3985172b..cf883389225 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooterTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooterTest.java @@ -113,7 +113,7 @@ public class NodeRebooterTest { /** Set current reboot generation to the wanted reboot generation whenever it is larger (i.e record a reboot) */ private void simulateReboot(NodeRepository nodeRepository) { - for (Node node : nodeRepository.nodes().getNodes(Node.State.ready, Node.State.active)) { + for (Node node : nodeRepository.nodes().list(Node.State.ready, Node.State.active)) { if (node.status().reboot().wanted() > node.status().reboot().current()) nodeRepository.nodes().write(node.withCurrentRebootGeneration(node.status().reboot().wanted(), nodeRepository.clock().instant()), () -> {}); @@ -129,7 +129,7 @@ public class NodeRebooterTest { private void simulateOsUpgrade(NodeRepository nodeRepository) { var wantedOsVersion = nodeRepository.osVersions().targetFor(NodeType.host); if (wantedOsVersion.isEmpty()) return; - for (Node node : nodeRepository.nodes().getNodes(Node.State.ready, Node.State.active)) { + for (Node node : nodeRepository.nodes().list(Node.State.ready, Node.State.active)) { if (wantedOsVersion.get().isAfter(node.status().osVersion().current().orElse(Version.emptyVersion))) nodeRepository.nodes().write(node.withCurrentOsVersion(wantedOsVersion.get(), nodeRepository.clock().instant()), () -> {}); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java index 1f1e6a79317..ab00d098130 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java @@ -108,7 +108,7 @@ public class PeriodicApplicationMaintainerTest { fixture.activate(); // Freeze active nodes to simulate an application being deleted during a maintenance run - List<Node> frozenActiveNodes = nodeRepository.nodes().getNodes(Node.State.active); + NodeList frozenActiveNodes = nodeRepository.nodes().list(Node.State.active); // Remove one application without letting the application maintainer know about it fixture.remove(fixture.app2); @@ -261,9 +261,9 @@ public class PeriodicApplicationMaintainerTest { private static class TestablePeriodicApplicationMaintainer extends PeriodicApplicationMaintainer { - private List<Node> overriddenNodesNeedingMaintenance; + private NodeList overriddenNodesNeedingMaintenance; - void setOverriddenNodesNeedingMaintenance(List<Node> overriddenNodesNeedingMaintenance) { + void setOverriddenNodesNeedingMaintenance(NodeList overriddenNodesNeedingMaintenance) { this.overriddenNodesNeedingMaintenance = overriddenNodesNeedingMaintenance; } @@ -273,7 +273,7 @@ public class PeriodicApplicationMaintainerTest { } @Override - protected List<Node> nodesNeedingMaintenance() { + protected NodeList nodesNeedingMaintenance() { return overriddenNodesNeedingMaintenance != null ? overriddenNodesNeedingMaintenance : super.nodesNeedingMaintenance(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RebalancerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RebalancerTest.java index bc2676c0acf..4f08fa9ab9e 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RebalancerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RebalancerTest.java @@ -17,6 +17,7 @@ import com.yahoo.config.provisioning.FlavorsConfig; import com.yahoo.test.ManualClock; import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.hosted.provision.Node; +import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.provisioning.FlavorConfigBuilder; @@ -92,7 +93,7 @@ public class RebalancerTest { tester.maintain(); assertTrue("Want to retire is reset", tester.getNodes(Node.State.active).stream().noneMatch(node -> node.status().wantToRetire())); assertEquals("Reserved node was moved to dirty", 1, tester.getNodes(Node.State.dirty).size()); - String reservedHostname = tester.getNodes(Node.State.dirty).get(0).hostname(); + String reservedHostname = tester.getNodes(Node.State.dirty).first().get().hostname(); tester.nodeRepository().nodes().setReady(reservedHostname, Agent.system, "Cleanup"); tester.nodeRepository().nodes().removeRecursively(reservedHostname); @@ -185,7 +186,7 @@ public class RebalancerTest { Optional<Node> getNode(String hostname) { return tester.nodeRepository().nodes().getNode(hostname); } - List<Node> getNodes(Node.State nodeState) { return tester.nodeRepository().nodes().getNodes(nodeState); } + NodeList getNodes(Node.State nodeState) { return tester.nodeRepository().nodes().list(nodeState); } Node getNode(ApplicationId applicationId) { return tester.nodeRepository().nodes().getNodes(applicationId).get(0); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java index 7005a64127a..e6e685899a5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java @@ -107,7 +107,7 @@ public class OsVersionsTest { tester.nodeRepository().nodes().fail(host.hostname(), Agent.system, OsVersions.class.getSimpleName()); tester.nodeRepository().nodes().removeRecursively(host.hostname()); } - assertEquals(10, tester.nodeRepository().nodes().getNodes(Node.State.deprovisioned).size()); + assertEquals(10, tester.nodeRepository().nodes().list(Node.State.deprovisioned).size()); // Set target var version1 = Version.fromString("7.1"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java index 02ee41a5226..48a2d47c173 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java @@ -413,8 +413,8 @@ public class DockerProvisioningTest { } else { assertEquals(0, tester.getNodes(app1, Node.State.inactive).size()); - assertEquals(2, tester.nodeRepository().nodes().getNodes(Node.State.dirty).size()); - tester.nodeRepository().nodes().setReady(tester.nodeRepository().nodes().getNodes(Node.State.dirty), Agent.system, "test"); + assertEquals(2, tester.nodeRepository().nodes().list(Node.State.dirty).size()); + tester.nodeRepository().nodes().setReady(tester.nodeRepository().nodes().list(Node.State.dirty).asList(), Agent.system, "test"); tester.activate(app1, cluster1, Capacity.from(new ClusterResources(4, 1, r))); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java index 0c8e19e0793..a0f5fd21f2d 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerAllocationTest.java @@ -522,11 +522,10 @@ public class DynamicDockerAllocationTest { } private List<Node> findSpareCapacity(ProvisioningTester tester) { - List<Node> nodes = tester.nodeRepository().nodes().getNodes(State.values()); - NodeList nl = NodeList.copyOf(nodes); + NodeList nodes = tester.nodeRepository().nodes().list(State.values()); return nodes.stream() .filter(n -> n.type() == NodeType.host) - .filter(n -> nl.childrenOf(n).size() == 0) // Nodes without children + .filter(n -> nodes.childrenOf(n).size() == 0) // Nodes without children .collect(Collectors.toList()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java index 9b564232111..acd3311651f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java @@ -265,7 +265,7 @@ public class NodeTypeProvisioningTest { // All the nodes that were marked with wantToRetire earlier are now dirty assertEquals(nodesToRetire.stream().map(Node::hostname).collect(Collectors.toSet()), - tester.nodeRepository().nodes().getNodes(Node.State.dirty).stream().map(Node::hostname).collect(Collectors.toSet())); + tester.nodeRepository().nodes().list(Node.State.dirty).stream().map(Node::hostname).collect(Collectors.toSet())); } private List<HostSpec> deployProxies(ApplicationId application, ProvisioningTester tester) { 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 33f33836b8d..cf9b6dbd861 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 @@ -109,7 +109,7 @@ public class ProvisioningTest { tester.remove(application1); assertEquals(tester.toHostNames(previouslyActive.not().container().asList()), tester.toHostNames(tester.nodeRepository().nodes().getNodes(application1, Node.State.inactive))); - assertTrue(tester.nodeRepository().nodes().getNodes(Node.State.dirty).containsAll(previouslyActive.container().asList())); + assertTrue(tester.nodeRepository().nodes().list(Node.State.dirty).asList().containsAll(previouslyActive.container().asList())); assertEquals(0, tester.getNodes(application1, Node.State.active).size()); assertTrue(tester.nodeRepository().applications().get(application1).isEmpty()); @@ -127,7 +127,7 @@ public class ProvisioningTest { tester.activate(application2, state2App2.allHosts); // deploy first app again - tester.nodeRepository().nodes().setReady(tester.nodeRepository().nodes().getNodes(Node.State.dirty), Agent.system, "recycled"); + tester.nodeRepository().nodes().setReady(tester.nodeRepository().nodes().list(Node.State.dirty).asList(), Agent.system, "recycled"); SystemState state7 = prepare(application1, 2, 2, 3, 3, defaultResources, tester); state7.assertEquals(state1); tester.activate(application1, state7.allHosts); @@ -222,7 +222,7 @@ public class ProvisioningTest { SystemState state3 = prepare(application1, 2, 2, 3, 3, defaultResources, tester); tester.activate(application1, state3.allHosts); assertEquals("Superfluous container nodes are dirtyed", - 3-2 + 4-2, tester.nodeRepository().nodes().getNodes(Node.State.dirty).size()); + 3-2 + 4-2, tester.nodeRepository().nodes().list(Node.State.dirty).size()); assertEquals("Superfluous content nodes are retired", 4-3 + 5-3, tester.getNodes(application1, Node.State.active).retired().size()); @@ -245,7 +245,7 @@ public class ProvisioningTest { SystemState state5 = prepare(application1, 2, 2, 3, 3, defaultResources, tester); tester.activate(application1, state5.allHosts); assertEquals("Superfluous container nodes are also dirtyed", - 4-2 + 5-2 + 1 + 4-2, tester.nodeRepository().nodes().getNodes(Node.State.dirty).size()); + 4-2 + 5-2 + 1 + 4-2, tester.nodeRepository().nodes().list(Node.State.dirty).size()); assertEquals("Superfluous content nodes are retired", 5-3 + 6-3 - 1, tester.getNodes(application1, Node.State.active).retired().size()); |