diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-01-29 09:17:06 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-01-30 12:29:11 +0100 |
commit | cbd7ec78bea90dc7aa780019b388c8203841cd7b (patch) | |
tree | d5ee8542b3d4f7a7641598eeeb2aeba7d3a91aae /node-repository | |
parent | 884f93133e418d2f1cf66ad79507653ab9bd9fcb (diff) |
Implement Iterable in NodeList
Diffstat (limited to 'node-repository')
8 files changed, 20 insertions, 15 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 cbce0f38c43..601ef555cab 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 @@ -7,6 +7,7 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.NodeType; import java.util.Collection; +import java.util.Iterator; import java.util.List; import java.util.Optional; import java.util.function.Predicate; @@ -20,7 +21,7 @@ import static java.util.stream.Collectors.collectingAndThen; * @author bratseth * @author mpolden */ -public class NodeList { +public class NodeList implements Iterable<Node> { private final List<Node> nodes; @@ -103,4 +104,8 @@ public class NodeList { return nodes.stream().filter(predicate).collect(collectingAndThen(Collectors.toList(), NodeList::new)); } + @Override + public Iterator<Node> iterator() { + return nodes.iterator(); + } } 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 17351ab3c10..80f6f5ccea5 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 @@ -298,7 +298,7 @@ public class NodeFailer extends Maintainer { // the children nodes running on it before we fail the host boolean allTenantNodesFailedOutSuccessfully = true; String reasonForChildFailure = "Failing due to parent host " + node.hostname() + " failure: " + reason; - for (Node failingTenantNode : nodeRepository().list().childrenOf(node).asList()) { + for (Node failingTenantNode : nodeRepository().list().childrenOf(node)) { if (failingTenantNode.state() == Node.State.active) { allTenantNodesFailedOutSuccessfully &= failActive(failingTenantNode, reasonForChildFailure); } else { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacity.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacity.java index c7bfb9178ce..2fcb26ea25b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacity.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacity.java @@ -117,7 +117,7 @@ public class DockerHostCapacity { if (!dockerHost.type().equals(NodeType.host)) return new ResourceCapacity(); ResourceCapacity hostCapacity = new ResourceCapacity(dockerHost); - for (Node container : allNodes.childrenOf(dockerHost).asList()) { + for (Node container : allNodes.childrenOf(dockerHost)) { boolean isUsedCapacity = !(treatInactiveOrRetiredAsUnusedCapacity && isInactiveOrRetired(container)); if (isUsedCapacity) { hostCapacity.subtract(container); 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 5e98466fd7c..990cc575178 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 @@ -161,7 +161,7 @@ class NodeAllocation { */ private boolean exclusiveTo(TenantName tenant, Optional<String> parentHostname) { if ( ! parentHostname.isPresent()) return true; - for (Node nodeOnHost : nodeRepository.list().childrenOf(parentHostname.get()).asList()) { + for (Node nodeOnHost : nodeRepository.list().childrenOf(parentHostname.get())) { if ( ! nodeOnHost.allocation().isPresent()) continue; if ( nodeOnHost.allocation().get().membership().cluster().isExclusive() && @@ -174,7 +174,7 @@ class NodeAllocation { private boolean hostsOnly(TenantName tenant, Optional<String> parentHostname) { if ( ! parentHostname.isPresent()) return true; // yes, as host is exclusive - for (Node nodeOnHost : nodeRepository.list().childrenOf(parentHostname.get()).asList()) { + for (Node nodeOnHost : nodeRepository.list().childrenOf(parentHostname.get())) { if ( ! nodeOnHost.allocation().isPresent()) continue; if ( ! nodeOnHost.allocation().get().owner().tenant().equals(tenant)) return false; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java index 24011bd4b49..61e14be53d8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java @@ -76,14 +76,14 @@ public class AllocationVisualizer extends JPanel { // Draw the docker hosts - and color each container according to application AllocationSnapshot simStep = steps.get(step); NodeList hosts = simStep.nodes.nodeType(NodeType.host); - for (Node host : hosts.asList()) { + for (Node host : hosts) { // Paint the host paintNode(host, g, nodeX, nodeY, true); // Paint containers NodeList containers = simStep.nodes.childrenOf(host); - for (Node container : containers.asList()) { + for (Node container : containers) { nodeY = paintNode(container, g, nodeX, nodeY, false); } 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 85ecf9c5073..0003e4f23cc 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 @@ -166,17 +166,17 @@ public class DockerProvisioningTest { ApplicationId application1 = tester.makeApplicationId(); prepareAndActivate(application1, 2, false, tester); - for (Node node : tester.getNodes(application1, Node.State.active).asList()) + for (Node node : tester.getNodes(application1, Node.State.active)) assertFalse(node.allocation().get().membership().cluster().isExclusive()); prepareAndActivate(application1, 2, true, tester); assertEquals(setOf("host1", "host2"), hostsOf(tester.getNodes(application1, Node.State.active))); - for (Node node : tester.getNodes(application1, Node.State.active).asList()) + for (Node node : tester.getNodes(application1, Node.State.active)) assertTrue(node.allocation().get().membership().cluster().isExclusive()); prepareAndActivate(application1, 2, false, tester); assertEquals(setOf("host1", "host2"), hostsOf(tester.getNodes(application1, Node.State.active))); - for (Node node : tester.getNodes(application1, Node.State.active).asList()) + for (Node node : tester.getNodes(application1, Node.State.active)) assertFalse(node.allocation().get().membership().cluster().isExclusive()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java index 86daf636875..308127c7f39 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java @@ -166,7 +166,7 @@ public class MultigroupProvisioningTest { // Check invariants for all nodes Set<Integer> allIndexes = new HashSet<>(); - for (Node node : tester.getNodes(application, Node.State.active).asList()) { + for (Node node : tester.getNodes(application, Node.State.active)) { // Node indexes must be unique int index = node.allocation().get().membership().index(); assertFalse("Node indexes are unique", allIndexes.contains(index)); @@ -178,7 +178,7 @@ public class MultigroupProvisioningTest { // Count unretired nodes and groups of the requested flavor Set<Integer> indexes = new HashSet<>(); Map<ClusterSpec.Group, Integer> nonretiredGroups = new HashMap<>(); - for (Node node : tester.getNodes(application, Node.State.active).nonretired().flavor(flavor).asList()) { + for (Node node : tester.getNodes(application, Node.State.active).nonretired().flavor(flavor)) { indexes.add(node.allocation().get().membership().index()); ClusterSpec.Group group = node.allocation().get().membership().cluster().group().get(); @@ -193,7 +193,7 @@ public class MultigroupProvisioningTest { assertEquals("Group size", (long)nodeCount / wantedGroups, (long)groupSize); Map<ClusterSpec.Group, Integer> allGroups = new HashMap<>(); - for (Node node : tester.getNodes(application, Node.State.active).flavor(flavor).asList()) { + for (Node node : tester.getNodes(application, Node.State.active).flavor(flavor)) { ClusterSpec.Group group = node.allocation().get().membership().cluster().group().get(); allGroups.put(group, nonretiredGroups.getOrDefault(group, 0) + 1); } 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 0f86b072d4d..fabc842c377 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 @@ -279,8 +279,8 @@ public class ProvisioningTest { SystemState state2 = prepare(application1, 2, 2, 4, 4, "dockerSmall", tester); tester.activate(application1, state2.allHosts); - assertEquals(12, tester.getNodes(application1, Node.State.active).asList().size()); - for (Node node : tester.getNodes(application1, Node.State.active).asList()) + 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()); |