summaryrefslogtreecommitdiff
path: root/src/rabbit_policy.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit_policy.erl')
-rw-r--r--src/rabbit_policy.erl19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/rabbit_policy.erl b/src/rabbit_policy.erl
index 5b2e2da24b..f4a5de5ab8 100644
--- a/src/rabbit_policy.erl
+++ b/src/rabbit_policy.erl
@@ -28,7 +28,7 @@
-export([invalidate/0, recover/0]).
-export([name/1, get/2, set/1]).
-export([validate/4, notify/4, notify_clear/3]).
--export([parse_set/5, set/6, delete/2, lookup/2, list/0, list/1,
+-export([parse_set/6, set/6, delete/2, lookup/2, list/0, list/1,
list_formatted/1, info_keys/0]).
-rabbit_boot_step({?MODULE,
@@ -108,22 +108,21 @@ invalid_file() ->
%%----------------------------------------------------------------------------
-parse_set(VHost, Name, Pattern, Definition, undefined) ->
- parse_set0(VHost, Name, Pattern, Definition, 0);
-parse_set(VHost, Name, Pattern, Definition, Priority) ->
+parse_set(VHost, Name, Pattern, Definition, Priority, ApplyTo) ->
try list_to_integer(Priority) of
- Num -> parse_set0(VHost, Name, Pattern, Definition, Num)
+ Num -> parse_set0(VHost, Name, Pattern, Definition, Num, ApplyTo)
catch
error:badarg -> {error, "~p priority must be a number", [Priority]}
end.
-parse_set0(VHost, Name, Pattern, Defn, Priority) ->
+parse_set0(VHost, Name, Pattern, Defn, Priority, ApplyTo) ->
case rabbit_misc:json_decode(Defn) of
{ok, JSON} ->
set0(VHost, Name,
[{<<"pattern">>, list_to_binary(Pattern)},
{<<"definition">>, rabbit_misc:json_to_term(JSON)},
- {<<"priority">>, Priority}]);
+ {<<"priority">>, Priority},
+ {<<"apply-to">>, ApplyTo}]);
error ->
{error_string, "JSON decoding error"}
end.
@@ -141,11 +140,7 @@ set(VHost, Name, Pattern, Definition, Priority, ApplyTo) ->
end}],
set0(VHost, Name, PolicyProps).
-set0(VHost, Name, Term0) ->
- Term = case pget(<<"apply-to">>, Term0) of
- undefined -> [{<<"apply-to">>, <<"all">>} | Term0];
- _ -> Term0
- end,
+set0(VHost, Name, Term) ->
rabbit_runtime_parameters:set_any(VHost, <<"policy">>, Name, Term).
delete(VHost, Name) ->