summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-02 16:06:44 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-02 16:06:44 +0100
commit4c735cdfcd26e654a6506f1823d354b9f840dffb (patch)
tree70cc83b240e2f5cdc4d3ad28edd84623e5550a99
parente2c57c78fcc0281eeb78dd1914287e539265244c (diff)
downloadrabbitmq-server-4c735cdfcd26e654a6506f1823d354b9f840dffb.tar.gz
log rabbitmqctl invocations on the remote node
-rw-r--r--src/rabbit_control.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 6eb1aaba..8b20ad51 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -17,7 +17,7 @@
-module(rabbit_control).
-include("rabbit.hrl").
--export([start/0, stop/0, action/5, diagnostics/1]).
+-export([start/0, stop/0, action/5, diagnostics/1, log_anytime/2]).
-define(RPC_TIMEOUT, infinity).
-define(WAIT_FOR_VM_ATTEMPTS, 5).
@@ -51,6 +51,7 @@
-> 'ok').
-spec(diagnostics/1 :: (node()) -> [{string(), [any()]}]).
-spec(usage/0 :: () -> no_return()).
+-spec(log_anytime/2 :: (string(), [term()]) -> ok).
-endif.
@@ -73,6 +74,9 @@ start() ->
Command = list_to_atom(Command0),
Quiet = proplists:get_bool(?QUIET_OPT, Opts1),
Node = proplists:get_value(?NODE_OPT, Opts1),
+ rpc_call(Node, rabbit_control, log_anytime,
+ ["~p executing 'rabbitmqctl ~p'~n",
+ [node(), init:get_plain_arguments()]]),
Inform = case Quiet of
true -> fun (_Format, _Args1) -> ok end;
false -> fun (Format, Args1) ->
@@ -109,6 +113,14 @@ start() ->
fmt_stderr(Format, Args) -> rabbit_misc:format_stderr(Format ++ "~n", Args).
+%% Log an info item on a remote node regardless of whether rabbit is
+%% running there or not: first change the group leader to that of the
+%% remote node, then use the standard error logger, because rabbit's
+%% might not be running.
+log_anytime(Format, Args) ->
+ group_leader(whereis(user), self()),
+ error_logger:info_msg(Format, Args).
+
print_report(Node, {Descr, Module, InfoFun, KeysFun}) ->
io:format("~s:~n", [Descr]),
print_report0(Node, {Module, InfoFun, KeysFun}, []).