diff options
author | Hubert Plociniczak <hubert@lshift.net> | 2008-09-10 11:39:19 +0100 |
---|---|---|
committer | Hubert Plociniczak <hubert@lshift.net> | 2008-09-10 11:39:19 +0100 |
commit | f389cf21e9a5bc101f905f1f5623c7205aa906e0 (patch) | |
tree | 8c886aa62177a3605e1ccd891104e89b90790e7e | |
parent | c3a66f9ea0d91556fa10af3c2cd34de97eedb53d (diff) | |
download | rabbitmq-server-f389cf21e9a5bc101f905f1f5623c7205aa906e0.tar.gz |
Refactoring of call_all_nodes/1
-rw-r--r-- | src/rabbit_multi.erl | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl index bf1d2d99..2b117717 100644 --- a/src/rabbit_multi.erl +++ b/src/rabbit_multi.erl @@ -90,9 +90,16 @@ action(start_all, [NodeCount], RpcTimeout) -> action(stop_all, [], RpcTimeout) -> io:format("Stopping all nodes...~n", []), - call_all_nodes(fun(NodePids) -> - stop_nodes(NodePids, RpcTimeout), - delete_pids_file() end); + call_all_nodes(fun({Node, Pid}) -> + io:format("Stopping node ~p~n", [Node]), + rpc:call(Node, rabbit, stop_and_halt, []), + case kill_wait(Pid, RpcTimeout, false) of + false -> kill_wait(Pid, RpcTimeout, true); + true -> ok + end, + io:format("OK~n", []) + end), + delete_pids_file(); action(rotate_logs, [], RpcTimeout) -> action(rotate_logs, [""], RpcTimeout); @@ -101,15 +108,13 @@ action(rotate_logs, [Suffix], RpcTimeout) -> io:format("Rotating logs for all nodes...~n", []), BinarySuffix = list_to_binary(Suffix), call_all_nodes( - fun(NodePids) -> - lists:foreach(fun ({Node, _}) -> - io:format("Rotating logs for node ~p", [Node]), - case rpc:call(Node, rabbit, rotate_logs, - [BinarySuffix], RpcTimeout) of - {badrpc, Error} -> io:format(": ~p.~n", [Error]); - ok -> io:format(": ok.~n", []) - end - end, NodePids) + fun ({Node, _}) -> + io:format("Rotating logs for node ~p", [Node]), + case rpc:call(Node, rabbit, rotate_logs, + [BinarySuffix], RpcTimeout) of + {badrpc, Error} -> io:format(": ~p.~n", [Error]); + ok -> io:format(": ok.~n", []) + end end). %% PNodePid is the list of PIDs @@ -239,21 +244,6 @@ read_pids_file() -> FileName, Reason}}) end. -stop_nodes([],_) -> ok; - -stop_nodes([NodePid | Rest], RpcTimeout) -> - stop_node(NodePid, RpcTimeout), - stop_nodes(Rest, RpcTimeout). - -stop_node({Node, Pid}, RpcTimeout) -> - io:format("Stopping node ~p~n", [Node]), - rpc:call(Node, rabbit, stop_and_halt, []), - case kill_wait(Pid, RpcTimeout, false) of - false -> kill_wait(Pid, RpcTimeout, true); - true -> ok - end, - io:format("OK~n", []). - kill_wait(Pid, TimeLeft, Forceful) when TimeLeft < 0 -> Cmd = with_os([{unix, fun () -> if Forceful -> "kill -9"; true -> "kill" @@ -292,7 +282,7 @@ is_dead(Pid) -> call_all_nodes(Func) -> case read_pids_file() of [] -> throw(no_nodes_running); - NodePids -> Func(NodePids) + NodePids -> lists:foreach(Func, NodePids) end. getenv(Var) -> |