diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2011-06-02 18:12:17 +0100 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2011-06-02 18:12:17 +0100 |
| commit | 661c972ae8ecad260471aa61a1fb1e5cb5dba0c1 (patch) | |
| tree | 72ebf70c3bc0e9def3c34e3bacf01c15ce476330 /src | |
| parent | 75f46f88d89af44012ab16f8f77badbe7f226733 (diff) | |
| download | rabbitmq-server-git-661c972ae8ecad260471aa61a1fb1e5cb5dba0c1.tar.gz | |
Split rabbitmqctl status query
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit.erl | 23 | ||||
| -rw-r--r-- | src/rabbit_control.erl | 26 |
2 files changed, 30 insertions, 19 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index 88b1647473..9a3de988a2 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -18,7 +18,7 @@ -behaviour(application). --export([prepare/0, start/0, stop/0, stop_and_halt/0, status/0, +-export([prepare/0, start/0, stop/0, stop_and_halt/0, status/0, environment/0, rotate_logs/1]). -export([start/2, stop/1]). @@ -180,12 +180,10 @@ -spec(status/0 :: () -> [{pid, integer()} | {running_applications, [{atom(), string(), string()}]} | - {os , {atom(), atom()}} | - {erlang_version , string()} | - {memory , any()} | - {env , [{atom() | term()}]} | - {nodes, [{rabbit_mnesia:node_type(), [node()]}]} | - {running_nodes, [node()]}]). + {os, {atom(), atom()}} | + {erlang_version, string()} | + {memory, any()}]). +-spec(environment/0 :: () -> [{atom() | term()}]). -spec(log_location/1 :: ('sasl' | 'kernel') -> log_location()). -spec(maybe_insert_default_data/0 :: () -> 'ok'). @@ -225,11 +223,12 @@ status() -> {running_applications, application:which_applications()}, {os, os:type()}, {erlang_version, erlang:system_info(system_version)}, - {memory, erlang:memory()}, - {env, lists:filter(fun ({default_pass, _}) -> false; - (_) -> true - end, application:get_all_env(rabbit))}] ++ - rabbit_mnesia:status(). + {memory, erlang:memory()}]. + +environment() -> + lists:filter(fun ({default_pass, _}) -> false; + (_) -> true + end, application:get_all_env(rabbit)). rotate_logs(BinarySuffix) -> Suffix = binary_to_list(BinarySuffix), diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index 57a3fa55c0..1fcd3de0f0 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -192,11 +192,15 @@ action(wait, Node, [], _Opts, Inform) -> action(status, Node, [], _Opts, Inform) -> Inform("Status of node ~p", [Node]), - case call(Node, {rabbit, status, []}) of - {badrpc, _} = Res -> Res; - Res -> io:format("~p~n", [Res]), - ok - end; + display_call_result(Node, {rabbit, status, []}); + +action(cluster_status, Node, [], _Opts, Inform) -> + Inform("Cluster status of node ~p", [Node]), + display_call_result(Node, {rabbit_mnesia, status, []}); + +action(environment, Node, _App, _Opts, Inform) -> + Inform("Application environment of node ~p", [Node]), + display_call_result(Node, {rabbit, environment, []}); action(rotate_logs, Node, [], _Opts, Inform) -> Inform("Reopening logs for node ~p", [Node]), @@ -333,8 +337,9 @@ action(list_permissions, Node, [], Opts, Inform) -> action(report, Node, _Args, _Opts, Inform) -> io:format("Reporting server status on ~p~n", [erlang:universaltime()]), - [action(status, N, [], [], Inform) || - N <- rpc_call(Node, rabbit_mnesia, running_clustered_nodes, [])], + [ok = action(Action, N, [], [], Inform) || + N <- rpc_call(Node, rabbit_mnesia, running_clustered_nodes, []), + Action <- [status, cluster_status, environment]], VHosts = rpc_call(Node, rabbit_vhost, list, []), [print_report(Node, Q) || Q <- ?GLOBAL_QUERIES], [print_report(Node, Q, [V]) || Q <- ?VHOST_QUERIES, V <- VHosts], @@ -416,6 +421,13 @@ display_list(L) when is_list(L) -> ok; display_list(Other) -> Other. +display_call_result(Node, MFA) -> + case call(Node, MFA) of + {badrpc, _} = Res -> Res; + Res -> io:format("~p~n", [Res]), + ok + end. + call(Node, {Mod, Fun, Args}) -> rpc_call(Node, Mod, Fun, lists:map(fun list_to_binary/1, Args)). |
