summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2018-04-24 14:17:23 +0200
committerMichael Klishin <michael@clojurewerkz.org>2018-04-24 14:17:23 +0200
commit178889950703434a337464d6ef08bcb6eeee31b5 (patch)
tree02435ba91fbedb31653a6253a3d88cdbf3f67434 /src
parent6429f808ec2cce74c2ad1ee1094807cd9b983e54 (diff)
downloadrabbitmq-server-git-178889950703434a337464d6ef08bcb6eeee31b5.tar.gz
One more place where a map definition must be converted to proplist before validation
Fixes rabbitmq/rabbitmq-management#565. References rabbitmq/rabbitmq-server#1493, rabbitmq/rabbitmq-federation#70, rabbitmq/rabbitmq-shovel#38, rabbitmq/rabbitmq-federation#73. [#157045132]
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_policy.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_policy.erl b/src/rabbit_policy.erl
index c03c9c5d00..d1dd301f5f 100644
--- a/src/rabbit_policy.erl
+++ b/src/rabbit_policy.erl
@@ -468,6 +468,9 @@ validation(Name, Terms) ->
validation(_Name, [], _Validator) ->
{error, "no policy provided", []};
+validation(Name, Terms0, Validator) when is_map(Terms0) ->
+ Terms = maps:to_list(Terms0),
+ validation(Name, Terms, Validator);
validation(_Name, Terms, Validator) when is_list(Terms) ->
{Keys, Modules} = lists:unzip(
rabbit_registry:lookup_all(Validator)),
@@ -481,8 +484,9 @@ validation(_Name, Terms, Validator) when is_list(Terms) ->
end;
false -> {error, "definition must be a dictionary: ~p", [Terms]}
end;
-validation(_Name, Term, _Validator) ->
- {error, "parse error while reading policy: ~p", [Term]}.
+validation(Name, Term, Validator) ->
+ {error, "parse error while reading policy ~s: ~p. Validator: ~p.",
+ [Name, Term, Validator]}.
validation0(Validators, Terms) ->
case lists:foldl(