summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2017-03-03 23:37:42 +0300
committerGitHub <noreply@github.com>2017-03-03 23:37:42 +0300
commit94658b1d42f5ea5a02b20f223e344156ffb356f8 (patch)
treee16f7a8a3e41caffa9df000a2d70139a0408c2b3
parent8d48dc496316121d808c87e06c8b117b140fb605 (diff)
parent89bbe009cbbbd4dcacfc9bbdeca9c352d828a000 (diff)
downloadrabbitmq-server-git-94658b1d42f5ea5a02b20f223e344156ffb356f8.tar.gz
Merge pull request #1132 from rabbitmq/rabbitmq-server-1131
Better message for plugin version requirement
-rw-r--r--src/rabbit_plugins.erl13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl
index 5640aa474f..3a822c3381 100644
--- a/src/rabbit_plugins.erl
+++ b/src/rabbit_plugins.erl
@@ -284,7 +284,8 @@ format_invalid_plugin_error({missing_dependency, Dep}) ->
%% a plugin doesn't support the effective broker version
format_invalid_plugin_error({broker_version_mismatch, Version, Required}) ->
io_lib:format(" Plugin doesn't support current server version."
- " Actual broker version: ~p, supported by the plugin: ~p~n", [Version, Required]);
+ " Actual broker version: ~p, supported by the plugin: ~p~n",
+ [Version, format_required_versions(Required)]);
%% one of dependencies of a plugin doesn't match its version requirements
format_invalid_plugin_error({{dependency_version_mismatch, Version, Required}, Name}) ->
io_lib:format(" Version '~p' of dependency '~p' is unsupported."
@@ -293,6 +294,16 @@ format_invalid_plugin_error({{dependency_version_mismatch, Version, Required}, N
format_invalid_plugin_error(Err) ->
io_lib:format(" Unknown error ~p~n", [Err]).
+format_required_versions(Versions) ->
+ lists:map(fun(V) ->
+ case re:run(V, "^[0-9]*\.[0-9]*\.", [{capture, all, list}]) of
+ {match, [Sub]} ->
+ lists:flatten(io_lib:format("~s.0-~s.x", [V, Sub]));
+ _ ->
+ V
+ end
+ end, Versions).
+
validate_plugins(Plugins) ->
application:load(rabbit),
RabbitVersion = RabbitVersion = case application:get_key(rabbit, vsn) of