diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2017-03-23 01:44:31 +0300 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2017-03-23 01:44:31 +0300 |
| commit | 6fa3ee4ccc71ae117492968fb89e217666deea37 (patch) | |
| tree | 8e73dd0ffda745d96b316b658bd000afb2f180b5 /src | |
| parent | 49eba46c923b472391c5528e3531c375af3fcfc2 (diff) | |
| parent | 3c19685dcdeecbf64a67612627ac2208afaa3d38 (diff) | |
| download | rabbitmq-server-git-6fa3ee4ccc71ae117492968fb89e217666deea37.tar.gz | |
Merge branch 'stable'
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mnesia.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_plugins.erl | 41 |
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), |
