summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_control.erl12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 5f8d9f97..be1c08d8 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -343,9 +343,9 @@ action(list_permissions, Node, [], Opts, Inform) ->
action(report, Node, _Args, _Opts, Inform) ->
io:format("Reporting server status on ~p~n~n", [erlang:universaltime()]),
[begin ok = action(Action, N, [], [], Inform), io:nl() end ||
- N <- rpc_call(Node, rabbit_mnesia, running_clustered_nodes, []),
+ N <- unsafe_rpc(Node, rabbit_mnesia, running_clustered_nodes, []),
Action <- [status, cluster_status, environment]],
- VHosts = rpc_call(Node, rabbit_vhost, list, []),
+ VHosts = unsafe_rpc(Node, rabbit_vhost, list, []),
[print_report(Node, Q) || Q <- ?GLOBAL_QUERIES],
[print_report(Node, Q, [V]) || Q <- ?VHOST_QUERIES, V <- VHosts],
io:format("End of server status report~n"),
@@ -428,11 +428,17 @@ display_list(Other) -> Other.
display_call_result(Node, MFA) ->
case call(Node, MFA) of
- {badrpc, _} = Res -> Res;
+ {badrpc, _} = Res -> throw(Res);
Res -> io:format("~p~n", [Res]),
ok
end.
+unsafe_rpc(Node, Mod, Fun, Args) ->
+ case rpc_call(Node, Mod, Fun, Args) of
+ {badrpc, _} = Res -> throw(Res);
+ Normal -> Normal
+ end.
+
call(Node, {Mod, Fun, Args}) ->
rpc_call(Node, Mod, Fun, lists:map(fun list_to_binary/1, Args)).