Skip to content

Commit b8b4b5d

Browse files
committed
rabbitmq_cli: Handle absence of the rabbit_db* modules in older versions
1 parent dd5275b commit b8b4b5d

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,13 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ForgetClusterNodeCommand do
3939
become(node_name, opts),
4040
RabbitMQ.CLI.Core.Helpers.defer(fn ->
4141
_ = :rabbit_event.start_link()
42-
:rabbit_db_cluster.forget_member(to_atom(node_to_remove), true)
42+
43+
try do
44+
:rabbit_db_cluster.forget_member(to_atom(node_to_remove), true)
45+
catch
46+
:error, :undef ->
47+
:rabbit_mnesia.forget_cluster_node(to_atom(node_to_remove), true)
48+
end
4349
end)
4450
])
4551
end
@@ -66,6 +72,9 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ForgetClusterNodeCommand do
6672
{:error,
6773
"RabbitMQ on node #{node_to_remove} must be stopped with 'rabbitmqctl -n #{node_to_remove} stop_app' before it can be removed"}
6874

75+
{:error, {:failed_to_remove_node, ^atom_name, unavailable}} ->
76+
{:error, "Node #{node_to_remove} must be running before it can be removed"}
77+
6978
{:error, _} = error ->
7079
error
7180

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,17 @@ defmodule RabbitMQ.CLI.Ctl.Commands.UpdateClusterNodesCommand do
1717
long_or_short_names = Config.get_option(:longnames, options)
1818
seed_node_normalised = Helpers.normalise_node(seed_node, long_or_short_names)
1919

20-
:rabbit_misc.rpc_call(
21-
node_name,
22-
:rabbit_mnesia,
23-
:update_cluster_nodes,
24-
[seed_node_normalised]
25-
)
20+
case :rabbit_misc.rpc_call(node_name, :rabbit_db_cluster, :update_cluster_nodes, [
21+
seed_node_normalised
22+
]) do
23+
{:badrpc, {:EXIT, {:undef, _}}} ->
24+
:rabbit_misc.rpc_call(node_name, :rabbit_mnesia, :update_cluster_nodes, [
25+
seed_node_normalised
26+
])
27+
28+
ret0 ->
29+
ret0
30+
end
2631
end
2732

2833
def usage() do

deps/rabbitmq_cli/mix.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ defmodule RabbitMQCtl.MixfileBase do
3030
:rabbit,
3131
:rabbit_control_misc,
3232
:rabbit_data_coercion,
33+
:rabbit_db_cluster,
3334
:rabbit_env,
3435
:rabbit_event,
3536
:rabbit_file,

0 commit comments

Comments
 (0)