diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-22 18:54:22 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-22 18:54:22 +0100 |
| commit | 005d9e704129f3c59b9c2a3ecf1a776c350fe45e (patch) | |
| tree | ce26a1984cbc998ea7852150892bb2b0cef4b92f /src | |
| parent | 3bb75c177cfbbef998dab297682ba8e1468b6add (diff) | |
| download | rabbitmq-server-git-005d9e704129f3c59b9c2a3ecf1a776c350fe45e.tar.gz | |
warn when a RabbitMQ restart is necessary
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_plugins.erl | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl index 3264925e18..ca86b618a3 100644 --- a/src/rabbit_plugins.erl +++ b/src/rabbit_plugins.erl @@ -84,7 +84,9 @@ action(list, [Pat], Opts) -> action(enable, ToEnable0, _Opts) -> AllPlugins = find_plugins(), - EnabledPlugins = lookup_plugins(read_enabled_plugins(), AllPlugins), + Enabled = read_enabled_plugins(), + EnabledPlugins = lookup_plugins(Enabled, AllPlugins), + ImplicitlyEnabled = calculate_required_plugins(Enabled, AllPlugins), ToEnable = [list_to_atom(Name) || Name <- ToEnable0], ToEnablePlugins = lookup_plugins(ToEnable, AllPlugins), Missing = ToEnable -- plugin_names(ToEnablePlugins), @@ -93,8 +95,13 @@ action(enable, ToEnable0, _Opts) -> _ -> io:format("Warning: the following plugins could not be found: ~p~n", [Missing]) end, - NewEnabledPlugins = merge_plugin_lists(EnabledPlugins, ToEnablePlugins), - update_enabled_plugins(plugin_names(NewEnabledPlugins)); + NewEnabled = plugin_names(merge_plugin_lists(EnabledPlugins, ToEnablePlugins)), + update_enabled_plugins(NewEnabled), + case NewEnabled -- ImplicitlyEnabled of + [] -> ok; + _ -> io:format("Plugin configuration has changed. " + "You should restart RabbitMQ.~n") + end; action(disable, ToDisable0, _Opts) -> ToDisable = [list_to_atom(Name) || Name <- ToDisable0], @@ -117,7 +124,13 @@ action(disable, ToDisable0, _Opts) -> "because their dependencies are no longer met: ~p~n", [AlsoDisabled]) end, - update_enabled_plugins(Enabled -- ToDisable2). + NewEnabled = Enabled -- ToDisable2, + case length(Enabled) =:= length(NewEnabled) of + true -> ok; + false -> update_enabled_plugins(NewEnabled), + io:format("Plugin configuration has changed. " + "You should restart RabbitMQ.~n") + end. %%---------------------------------------------------------------------------- |
