summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-05-18 15:03:06 +0200
committerMartin Polden <mpolden@mpolden.no>2020-05-18 15:03:06 +0200
commitabb2756bf3f25eaf10eca4a81fec388b3e8b9a6f (patch)
tree66f6ce81ed614f064c80156cf3da6e03bae5f88b /node-repository
parentf691ef4ecf139fb5901b0b01f09c65abed46534f (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.java10
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);
+ }
+
}