diff --git a/service/storage_service.cc b/service/storage_service.cc index effd48f462..f2b293028b 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -1090,10 +1090,14 @@ class topology_coordinator { co_return guard; } - future exec_global_command(node_to_work_on&& node, const raft_topology_cmd& cmd) { - std::unordered_set exclude_nodes = parse_ignore_nodes(node); + std::unordered_set get_excluded_nodes(const node_to_work_on& node) { + auto exclude_nodes = parse_ignore_nodes(node); exclude_nodes.insert(parse_replaced_node(node)); - auto guard = co_await exec_global_command(std::move(node.guard), cmd, exclude_nodes, drop_guard_and_retake::yes); + return exclude_nodes; + } + + future exec_global_command(node_to_work_on&& node, const raft_topology_cmd& cmd) { + auto guard = co_await exec_global_command(std::move(node.guard), cmd, get_excluded_nodes(node), drop_guard_and_retake::yes); co_return retake_node(std::move(guard), node.id); };