aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-01-29 09:17:06 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-01-30 12:29:11 +0100
commitcbd7ec78bea90dc7aa780019b388c8203841cd7b (patch)
treed5ee8542b3d4f7a7641598eeeb2aeba7d3a91aae /node-repository
parent884f93133e418d2f1cf66ad79507653ab9bd9fcb (diff)
Implement Iterable in NodeList
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java7
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerHostCapacity.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java4
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());