diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-19 15:35:39 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-19 15:35:39 +0100 |
commit | fd5012f00f242d2611a9dd9b5dea2a2d6d982ed5 (patch) | |
tree | 6fde44459b965ec1e5e49d1fae6295e014e130d6 /node-repository | |
parent | f7141d88c278996dfcf0591b678e74e63ad2676e (diff) |
Rely on markWantoToRetire to re-read node
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java index 3b8a4694e4b..7160edb96f4 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java @@ -115,10 +115,9 @@ public class Rebalancer extends Maintainer { } /** Returns true only if this operation changes the state of the wantToRetire flag */ - private boolean markWantToRetire(Optional<Node> node, boolean wantToRetire) { - if (node.isEmpty()) return false; - try (Mutex lock = nodeRepository().lock(node.get())) { - Optional<Node> nodeToMove = nodeRepository().getNode(node.get().hostname()); + private boolean markWantToRetire(Node node, boolean wantToRetire) { + try (Mutex lock = nodeRepository().lock(node)) { + Optional<Node> nodeToMove = nodeRepository().getNode(node.hostname()); if (nodeToMove.isEmpty()) return false; if (nodeToMove.get().state() != Node.State.active) return false; @@ -140,7 +139,7 @@ public class Rebalancer extends Maintainer { try (MaintenanceDeployment deployment = new MaintenanceDeployment(application, deployer, nodeRepository())) { if ( ! deployment.isValid()) return false; - boolean couldMarkRetiredNow = markWantToRetire(Optional.of(move.node), true); + boolean couldMarkRetiredNow = markWantToRetire(move.node, true); if ( ! couldMarkRetiredNow) return false; Optional<Node> expectedNewNode = Optional.empty(); @@ -158,7 +157,7 @@ public class Rebalancer extends Maintainer { return true; } finally { - markWantToRetire(nodeRepository().getNode(move.node.hostname()), false); // Necessary if this failed, no-op otherwise + markWantToRetire(move.node, false); // Necessary if this failed, no-op otherwise if (expectedNewNode.isPresent()) { // Immediately clean up if we reserved the node but could not activate Optional<Node> reservedNewNode = nodeRepository().getNode(expectedNewNode.get().hostname(), Node.State.reserved); reservedNewNode.ifPresent(reserved -> nodeRepository().setDirty(reserved, Agent.system, "Expired by Rebalancer")); |