summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-04-07 09:35:15 +0200
committerMartin Polden <mpolden@mpolden.no>2022-04-07 09:38:21 +0200
commitf73d4751183b4de0b09eedd2060324b20d8798db (patch)
tree206258617aa38a724527bce468b50775a1cee401 /node-repository
parent87b9dcc76a9b33f8b456d53c9aa9e19e89645ee1 (diff)
Disallow unparking of a host being rebuilt
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java5
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);
}