diff options
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java index fc0da672e6f..d544ea76983 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java @@ -323,8 +323,9 @@ public class Nodes { return park(node.hostname(), false, agent, reason, transaction); } else { Node.State toState = Node.State.dirty; - if (node.state() == Node.State.parked && node.status().wantToDeprovision()) { - throw new IllegalArgumentException("Cannot move " + node + " to " + toState + ": It's being deprovisioned"); + if (node.state() == Node.State.parked) { + if (node.status().wantToDeprovision()) throw new IllegalArgumentException("Cannot move " + node + " to " + toState + ": It's being deprovisioned"); + if (node.status().wantToRebuild()) throw new IllegalArgumentException("Cannot move " + node + " to " + toState + ": It's being rebuilt"); } return db.writeTo(toState, List.of(node), agent, Optional.of(reason), transaction).get(0); } |