summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-08-26 14:45:19 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-08-26 14:45:19 +0100
commit9caf767835d9166059d5c5469e6b72a9a2c1f169 (patch)
treec621096a571044c0be667191852e468a78e2a56a
parent68304bc1e6d99c8989e8d94ee9711999937cfc6d (diff)
parent4456a1a46b36b472cc29641cee5fe7e15da5393a (diff)
downloadrabbitmq-server-9caf767835d9166059d5c5469e6b72a9a2c1f169.tar.gz
Merge bug24377
-rw-r--r--src/rabbit.erl15
-rw-r--r--src/rabbit_control.erl8
-rw-r--r--src/rabbit_direct.erl2
-rw-r--r--src/rabbit_upgrade.erl8
4 files changed, 16 insertions, 17 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 8cae7fde..b8dbccc7 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -18,7 +18,8 @@
-behaviour(application).
--export([prepare/0, start/0, stop/0, stop_and_halt/0, status/0, environment/0,
+-export([prepare/0, start/0, stop/0, stop_and_halt/0, status/0,
+ is_running/0 , is_running/1, environment/0,
rotate_logs/1, force_event_refresh/0]).
-export([start/2, stop/1]).
@@ -196,6 +197,8 @@
{os, {atom(), atom()}} |
{erlang_version, string()} |
{memory, any()}]).
+-spec(is_running/0 :: () -> boolean()).
+-spec(is_running/1 :: (node()) -> boolean()).
-spec(environment/0 :: () -> [{atom() | term()}]).
-spec(log_location/1 :: ('sasl' | 'kernel') -> log_location()).
@@ -233,11 +236,19 @@ stop_and_halt() ->
status() ->
[{pid, list_to_integer(os:getpid())},
- {running_applications, application:which_applications()},
+ {running_applications, application:which_applications(infinity)},
{os, os:type()},
{erlang_version, erlang:system_info(system_version)},
{memory, erlang:memory()}].
+is_running() -> is_running(node()).
+
+is_running(Node) ->
+ case rpc:call(Node, application, which_applications, [infinity]) of
+ {badrpc, _} -> false;
+ Apps -> proplists:is_defined(rabbit, Apps)
+ end.
+
environment() ->
lists:keysort(
1, [P || P = {K, _} <- application:get_all_env(rabbit),
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 6b9faf9b..1163ae9d 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -360,7 +360,7 @@ wait_for_application(Node, PidFile, Inform) ->
wait_for_application(Node, Pid) ->
case process_up(Pid) of
- true -> case node_up(Node) of
+ true -> case rabbit:is_running(Node) of
true -> ok;
false -> timer:sleep(1000),
wait_for_application(Node, Pid)
@@ -376,12 +376,6 @@ wait_and_read_pid_file(PidFile) ->
{error, _} = E -> exit({error, {could_not_read_pid, E}})
end.
-node_up(Node) ->
- case rpc_call(Node, application, which_applications, [infinity]) of
- {badrpc, _} -> false;
- Apps -> proplists:is_defined(rabbit, Apps)
- end.
-
% Test using some OS clunkiness since we shouldn't trust
% rpc:call(os, getpid, []) at this point
process_up(Pid) ->
diff --git a/src/rabbit_direct.erl b/src/rabbit_direct.erl
index 68afaf5d..6f9a4650 100644
--- a/src/rabbit_direct.erl
+++ b/src/rabbit_direct.erl
@@ -72,7 +72,7 @@ list() ->
%%----------------------------------------------------------------------------
connect(Username, VHost, Protocol, Pid, Infos) ->
- case lists:keymember(rabbit, 1, application:which_applications()) of
+ case rabbit:is_running() of
true ->
case rabbit_access_control:check_user_login(Username, []) of
{ok, User} ->
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 9739f6b7..e7a302f8 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -228,13 +228,7 @@ secondary_upgrade(AllNodes) ->
ok.
nodes_running(Nodes) ->
- [N || N <- Nodes, node_running(N)].
-
-node_running(Node) ->
- case rpc:call(Node, application, which_applications, []) of
- {badrpc, _} -> false;
- Apps -> lists:keysearch(rabbit, 1, Apps) =/= false
- end.
+ [N || N <- Nodes, rabbit:is_running(N)].
%% -------------------------------------------------------------------