diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2023-10-06 15:42:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-06 15:42:40 +0200 |
commit | 56263ccd8371b22e62f9db146e0c0bc3dffe7777 (patch) | |
tree | fdbf308ef6b440c642e0839b95837bcc4413deef | |
parent | 1857991cf335f31fca0a499f72fbaa83cb47dd14 (diff) | |
parent | d6e9c2fce1ff677fe942bee35db02b42e76a7e6e (diff) |
Merge pull request #28822 from vespa-engine/mpolden/require-match
Throw if no nodes are matched by restart filter
2 files changed, 7 insertions, 13 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 560abb1f0e8..c5d59e204e1 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 @@ -618,17 +618,9 @@ public class Nodes { * @return the nodes in their new state */ public List<Node> restartActive(Predicate<Node> filter) { - return restart(NodeFilter.in(Set.of(Node.State.active)).and(filter)); - } - - /** - * Increases the restart generation of the any nodes matching given filter. - * - * @return the nodes in their new state - */ - public List<Node> restart(Predicate<Node> filter) { - return performOn(filter, (node, lock) -> write(node.withRestart(node.allocation().get().restartGeneration().withIncreasedWanted()), - lock)); + return performOn(NodeFilter.in(Set.of(State.active)).and(filter), + (node, lock) -> write(node.withRestart(node.allocation().get().restartGeneration().withIncreasedWanted()), + lock)); } /** diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index 132cd0e6d67..1581577c622 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -15,7 +15,6 @@ import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.ProvisionLock; import com.yahoo.config.provision.ProvisionLogger; import com.yahoo.config.provision.Provisioner; -import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; import com.yahoo.jdisc.Metric; import com.yahoo.transaction.Mutex; @@ -145,7 +144,10 @@ public class NodeRepositoryProvisioner implements Provisioner { @Override public void restart(ApplicationId application, HostFilter filter) { - nodeRepository.nodes().restartActive(ApplicationFilter.from(application).and(NodeHostFilter.from(filter))); + List<Node> updated = nodeRepository.nodes().restartActive(ApplicationFilter.from(application).and(NodeHostFilter.from(filter))); + if (updated.isEmpty()) { + throw new IllegalArgumentException("No matching nodes found"); + } } @Override |