diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2018-04-24 14:17:23 +0200 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2018-04-24 14:17:23 +0200 |
| commit | 178889950703434a337464d6ef08bcb6eeee31b5 (patch) | |
| tree | 02435ba91fbedb31653a6253a3d88cdbf3f67434 | |
| parent | 6429f808ec2cce74c2ad1ee1094807cd9b983e54 (diff) | |
| download | rabbitmq-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]
| -rw-r--r-- | src/rabbit_policy.erl | 8 |
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( |
