diff options
| author | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2016-11-09 10:22:07 +0100 |
|---|---|---|
| committer | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2016-11-09 10:22:07 +0100 |
| commit | f3dd0f0a27313649c9ae132620efa0cfab8e77d3 (patch) | |
| tree | de126db53f369d84404b6ab1dd97ce5026075a06 /src | |
| parent | 2c66f2874af3ee71e33d0072691b5ebaefdde16d (diff) | |
| download | rabbitmq-server-git-f3dd0f0a27313649c9ae132620efa0cfab8e77d3.tar.gz | |
Fix JSON arguments parsing in CLI
See rabbitmq/rabbitmq-common#46
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_policy.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_runtime_parameters.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_vhost_limit.erl | 6 |
3 files changed, 7 insertions, 6 deletions
diff --git a/src/rabbit_policy.erl b/src/rabbit_policy.erl index da09c5d535..1a28c26a1e 100644 --- a/src/rabbit_policy.erl +++ b/src/rabbit_policy.erl @@ -212,11 +212,11 @@ parse_set(Type, VHost, Name, Pattern, Definition, Priority, ApplyTo) -> end. parse_set0(Type, VHost, Name, Pattern, Defn, Priority, ApplyTo) -> - case rabbit_json:try_decode(Defn) of + case rabbit_json:try_decode(list_to_binary(Defn)) of {ok, Term} -> set0(Type, VHost, Name, [{<<"pattern">>, list_to_binary(Pattern)}, - {<<"definition">>, Term}, + {<<"definition">>, maps:to_list(Term)}, {<<"priority">>, Priority}, {<<"apply-to">>, ApplyTo}]); error -> diff --git a/src/rabbit_runtime_parameters.erl b/src/rabbit_runtime_parameters.erl index c2ac4651fe..567291fd7e 100644 --- a/src/rabbit_runtime_parameters.erl +++ b/src/rabbit_runtime_parameters.erl @@ -97,7 +97,8 @@ parse_set(_, <<"policy">>, _, _, _) -> {error_string, "policies may not be set using this method"}; parse_set(VHost, Component, Name, String, User) -> - case rabbit_json:try_decode(String) of + case rabbit_json:try_decode(list_to_binary(String)) of + {ok, Term} when is_map(Term) -> set(VHost, Component, Name, maps:to_list(Term), User); {ok, Term} -> set(VHost, Component, Name, Term, User); error -> {error_string, "JSON decoding error"} end. diff --git a/src/rabbit_vhost_limit.erl b/src/rabbit_vhost_limit.erl index b933c31402..7eac51e745 100644 --- a/src/rabbit_vhost_limit.erl +++ b/src/rabbit_vhost_limit.erl @@ -124,9 +124,9 @@ is_over_queue_limit(VirtualHost) -> %%---------------------------------------------------------------------------- parse_set(VHost, Defn) -> - case rabbit_misc:json_decode(Defn) of - {ok, JSON} -> - set(VHost, rabbit_misc:json_to_term(JSON)); + case rabbit_json:try_decode(list_to_binary(Defn)) of + {ok, Term} -> + set(VHost, maps:to_list(Term)); error -> {error_string, "JSON decoding error"} end. |
