summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArnaud Cogoluègnes <acogoluegnes@gmail.com>2016-11-09 10:22:07 +0100
committerArnaud Cogoluègnes <acogoluegnes@gmail.com>2016-11-09 10:22:07 +0100
commitf3dd0f0a27313649c9ae132620efa0cfab8e77d3 (patch)
treede126db53f369d84404b6ab1dd97ce5026075a06 /src
parent2c66f2874af3ee71e33d0072691b5ebaefdde16d (diff)
downloadrabbitmq-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.erl4
-rw-r--r--src/rabbit_runtime_parameters.erl3
-rw-r--r--src/rabbit_vhost_limit.erl6
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.