summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2017-03-23 01:44:31 +0300
committerMichael Klishin <mklishin@pivotal.io>2017-03-23 01:44:31 +0300
commit6fa3ee4ccc71ae117492968fb89e217666deea37 (patch)
tree8e73dd0ffda745d96b316b658bd000afb2f180b5 /src
parent49eba46c923b472391c5528e3531c375af3fcfc2 (diff)
parent3c19685dcdeecbf64a67612627ac2208afaa3d38 (diff)
downloadrabbitmq-server-git-6fa3ee4ccc71ae117492968fb89e217666deea37.tar.gz
Merge branch 'stable'
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mnesia.erl4
-rw-r--r--src/rabbit_plugins.erl41
2 files changed, 34 insertions, 11 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index eea9349dbc..74296783f4 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -862,12 +862,12 @@ with_running_or_clean_mnesia(Fun) ->
case IsMnesiaRunning of
true -> Fun();
false ->
- {ok, MnesiaDir} = application:get_env(mnesia, dir),
+ SavedMnesiaDir = dir(),
application:unset_env(mnesia, dir),
mnesia:start(),
Result = Fun(),
application:stop(mnesia),
- application:set_env(mnesia, dir, MnesiaDir),
+ application:set_env(mnesia, dir, SavedMnesiaDir),
Result
end.
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl
index 5165602dd9..14b1c8bcc6 100644
--- a/src/rabbit_plugins.erl
+++ b/src/rabbit_plugins.erl
@@ -71,10 +71,36 @@ ensure(FileJustChanged0) ->
{error, {enabled_plugins_mismatch, FileJustChanged, OurFile}}
end.
+-spec plugins_expand_dir() -> file:filename().
+plugins_expand_dir() ->
+ case application:get_env(rabbit, plugins_expand_dir) of
+ {ok, ExpandDir} ->
+ ExpandDir;
+ _ ->
+ filename:join([rabbit_mnesia:dir(), "plugins_expand_dir"])
+ end.
+
+-spec plugins_dist_dir() -> file:filename().
+plugins_dist_dir() ->
+ case application:get_env(rabbit, plugins_dir) of
+ {ok, PluginsDistDir} ->
+ PluginsDistDir;
+ _ ->
+ filename:join([rabbit_mnesia:dir(), "plugins_dir_stub"])
+ end.
+
+-spec enabled_plugins() -> [atom()].
+enabled_plugins() ->
+ case application:get_env(rabbit, enabled_plugins_file) of
+ {ok, EnabledFile} ->
+ read_enabled(EnabledFile);
+ _ ->
+ []
+ end.
+
%% @doc Prepares the file system and installs all enabled plugins.
setup() ->
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
-
+ ExpandDir = plugins_expand_dir(),
%% Eliminate the contents of the destination directory
case delete_recursively(ExpandDir) of
ok -> ok;
@@ -82,8 +108,7 @@ setup() ->
[ExpandDir, E1]}})
end,
- {ok, EnabledFile} = application:get_env(rabbit, enabled_plugins_file),
- Enabled = read_enabled(EnabledFile),
+ Enabled = enabled_plugins(),
prepare_plugins(Enabled).
extract_schemas(SchemaDir) ->
@@ -132,8 +157,7 @@ extract_schema(#plugin{type = dir, location = Location}, SchemaDir) ->
%% @doc Lists the plugins which are currently running.
active() ->
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
- InstalledPlugins = plugin_names(list(ExpandDir)),
+ InstalledPlugins = plugin_names(list(plugins_expand_dir())),
[App || {App, _, _} <- rabbit_misc:which_applications(),
lists:member(App, InstalledPlugins)].
@@ -244,10 +268,9 @@ running_plugins() ->
%%----------------------------------------------------------------------------
prepare_plugins(Enabled) ->
- {ok, PluginsDistDir} = application:get_env(rabbit, plugins_dir),
- {ok, ExpandDir} = application:get_env(rabbit, plugins_expand_dir),
+ ExpandDir = plugins_expand_dir(),
- AllPlugins = list(PluginsDistDir),
+ AllPlugins = list(plugins_dist_dir()),
Wanted = dependencies(false, Enabled, AllPlugins),
WantedPlugins = lookup_plugins(Wanted, AllPlugins),
{ValidPlugins, Problems} = validate_plugins(WantedPlugins),