diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-05-18 15:03:06 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-05-18 15:03:06 +0200 |
commit | abb2756bf3f25eaf10eca4a81fec388b3e8b9a6f (patch) | |
tree | 66f6ce81ed614f064c80156cf3da6e03bae5f88b /node-repository | |
parent | f691ef4ecf139fb5901b0b01f09c65abed46534f (diff) |
Handle missing history event
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveExpirer.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveExpirer.java index 21746c96411..fc68deba957 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveExpirer.java @@ -39,8 +39,7 @@ public class InactiveExpirer extends Expirer { @Override protected void expire(List<Node> expired) { expired.forEach(node -> { - if (node.status().wantToRetire() && - node.history().event(History.Event.Type.wantToRetire).get().agent() == Agent.operator) { + if (retiredByOperator(node)) { nodeRepository.park(node.hostname(), false, Agent.InactiveExpirer, "Expired by InactiveExpirer"); } else { nodeRepository.setDirty(node, Agent.InactiveExpirer, "Expired by InactiveExpirer"); @@ -54,4 +53,11 @@ public class InactiveExpirer extends Expirer { || node.allocation().get().owner().instance().isTester(); } + private static boolean retiredByOperator(Node node) { + return node.status().wantToRetire() && node.history().event(History.Event.Type.wantToRetire) + .map(History.Event::agent) + .map(agent -> agent == Agent.operator) + .orElse(false); + } + } |