summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2017-10-26 16:43:14 +0100
committerDaniil Fedotov <dfedotov@pivotal.io>2017-10-26 16:43:14 +0100
commitb60775ed006f5f621b0ce4a1e71a7c97d8ee2ff6 (patch)
treeb285d56ba1b09c1bc53f3abe1c7032f8d969a1dc /src/rabbit.erl
parent2545c1b136f4993019bf8368057def2a546ed9f8 (diff)
downloadrabbitmq-server-git-b60775ed006f5f621b0ce4a1e71a7c97d8ee2ff6.tar.gz
Start `rabbit` application as temporary in tests.
Some tests output can break when `rabbit` application failure stops the node. Make it possible to configure restart type.
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 4a9ae6ba76..8971c6456c 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -23,7 +23,7 @@
is_running/1, environment/0, rotate_logs/1, force_event_refresh/1,
start_fhc/0]).
-export([start/2, stop/1]).
--export([start_apps/1, stop_apps/1]).
+-export([start_apps/1, start_apps/2, stop_apps/1]).
-export([log_location/1, config_files/0, decrypt_config/2]). %% for testing and mgmt-agent
%%---------------------------------------------------------------------------
@@ -217,6 +217,7 @@
%%----------------------------------------------------------------------------
-type file_suffix() :: binary().
+-type restart_type() :: 'permanent' | 'transient' | 'temporary'.
%% this really should be an abstract type
-type log_location() :: 'tty' | 'undefined' | file:filename().
-type param() :: atom().
@@ -253,6 +254,7 @@
-spec boot_delegate() -> 'ok'.
-spec recover() -> 'ok'.
-spec start_apps([app_name()]) -> 'ok'.
+-spec start_apps([app_name()], [{app_name(), restart_type()}]) -> 'ok'.
-spec stop_apps([app_name()]) -> 'ok'.
%%----------------------------------------------------------------------------
@@ -474,6 +476,9 @@ stop_and_halt() ->
ok.
start_apps(Apps) ->
+ start_apps(Apps, []).
+
+start_apps(Apps, RestartTypes) ->
app_utils:load_applications(Apps),
ConfigEntryDecoder = case application:get_env(rabbit, config_entry_decoder) of
@@ -513,7 +518,8 @@ start_apps(Apps) ->
true -> ok %% will run during start of rabbit app
end,
ok = app_utils:start_applications(OrderedApps,
- handle_app_error(could_not_start)).
+ handle_app_error(could_not_start),
+ RestartTypes).
%% This function retrieves the correct IoDevice for requesting
%% input. The problem with using the default IoDevice is that