summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2017-03-01 18:46:01 +0000
committerDiana Corbacho <diana@rabbitmq.com>2017-03-01 18:46:01 +0000
commitbcc24749ac0091877ab80de1ce9bc335e7469c52 (patch)
tree86b7bbc9968b843e7ff86d68201f6c8d099858b3
parente746abffca500d4ed5dc06e5cfb00a8a11a012a1 (diff)
downloadrabbitmq-server-git-bcc24749ac0091877ab80de1ce9bc335e7469c52.tar.gz
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..5165602dd9 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-~sx", [V, Sub]));
+ _ ->
+ V
+ end
+ end, Versions).
+
validate_plugins(Plugins) ->
application:load(rabbit),
RabbitVersion = RabbitVersion = case application:get_key(rabbit, vsn) of