diff options
-rw-r--r-- | src/rabbit_control.erl | 12 |
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)). |