summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-09-29 12:40:24 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-09-29 12:40:24 +0200
commit258781c41e178a66e144226f678a294f8ae28e00 (patch)
tree501138466a157682b53ac4ba7b807ce9d011249a /node-repository/src/main/java
parenta17b4180447a046643f7bd893307c5b5739789b7 (diff)
Parent is optional
Diffstat (limited to 'node-repository/src/main/java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodesAndHosts.java9
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMover.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java13
3 files changed, 12 insertions, 12 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodesAndHosts.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodesAndHosts.java
index dd9c7021b9e..5cf9d297c15 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodesAndHosts.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodesAndHosts.java
@@ -5,9 +5,10 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
/**
- * Wraps a NodeList and builds a host -> children mapping for faster access
+ * Wraps a NodeList and builds a host to children mapping for faster access
* as that is done very frequently.
*
* @author baldersheim
@@ -38,11 +39,11 @@ public class NodesAndHosts<NL extends NodeList> {
return hostAndNodes != null ? NodeList.copyOf(hostAndNodes.children) : NodeList.of();
}
- public Node parentOf(Node node) {
- if (node.parentHostname().isEmpty()) return null;
+ public Optional<Node> parentOf(Node node) {
+ if (node.parentHostname().isEmpty()) return Optional.empty();
HostAndNodes hostAndNodes = host2Nodes.get(node.parentHostname().get());
- return hostAndNodes != null ? hostAndNodes.host : null;
+ return hostAndNodes != null ? Optional.ofNullable(hostAndNodes.host) : Optional.empty();
}
private static class HostAndNodes {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMover.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMover.java
index fef6713b072..a3dff2f8290 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMover.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMover.java
@@ -77,7 +77,7 @@ public abstract class NodeMover<MOVE> extends NodeRepositoryMaintainer {
if (spares.contains(toHost.node)) continue; // Do not offer spares as a valid move as they are reserved for replacement of failed nodes
if ( ! toHost.hasCapacity(node.resources())) continue;
- MOVE suggestedMove = suggestedMove(node, allNodes.parentOf(node), toHost.node, allNodes);
+ MOVE suggestedMove = suggestedMove(node, allNodes.parentOf(node).get(), toHost.node, allNodes);
bestMove = bestMoveOf(bestMove, suggestedMove);
}
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
index 64d0fd9942f..e506216f13d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodePrioritizer.java
@@ -179,8 +179,9 @@ public class NodePrioritizer {
/** Create a candidate from given pre-existing node */
private NodeCandidate candidateFrom(Node node, boolean isSurplus) {
- Node parent = allNodes.parentOf(node);
- if (parent != null) {
+ Optional<Node> optionalParent = allNodes.parentOf(node);
+ if (optionalParent.isPresent()) {
+ Node parent = optionalParent.get();
return NodeCandidate.createChild(node,
capacity.availableCapacityOf(parent),
parent,
@@ -192,8 +193,7 @@ public class NodePrioritizer {
capacity.availableCapacityOf(parent),
topologyChange,
currentClusterSize));
- }
- else {
+ } else {
return NodeCandidate.createStandalone(node, isSurplus, false);
}
}
@@ -216,9 +216,8 @@ public class NodePrioritizer {
*/
private boolean canStillAllocate(Node node) {
if (node.type() != NodeType.tenant || node.parentHostname().isEmpty()) return true;
- Node parent = allNodes.parentOf(node);
- if (parent == null) return false;
- return Nodes.canAllocateTenantNodeTo(parent, dynamicProvisioning);
+ Optional<Node> parent = allNodes.parentOf(node);
+ return parent.isPresent() ? Nodes.canAllocateTenantNodeTo(parent.get(), dynamicProvisioning) : null;
}
}