Skip to content

Commit 9662f35

Browse files
Merge pull request #14976 from rabbitmq/su_aws/default_oper_policy_apply_to
Add apply_to to default oper policy, and fix boot steps
2 parents c7a2b5d + 37b6203 commit 9662f35

File tree

6 files changed

+24
-16
lines changed

6 files changed

+24
-16
lines changed

deps/rabbit/priv/schema/rabbit.schema

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,10 @@ end}.
749749
{datatype, string}
750750
]}.
751751

752+
{mapping, "default_policies.operator.$id.apply_to", "rabbit.default_policies.operator", [
753+
{datatype, string}
754+
]}.
755+
752756
{mapping, "default_policies.operator.$id.expires", "rabbit.default_policies.operator", [
753757
{datatype, {duration, ms}}
754758
]}.
@@ -815,7 +819,9 @@ end}.
815819
end,
816820
{["default_policies","operator",ID|T], NewV};
817821
({["default_policies","operator",ID, "queue_pattern"], V}) ->
818-
{["default_policies","operator",ID,"queue_pattern"], list_to_binary(V)};
822+
{["default_policies","operator",ID, "queue_pattern"], list_to_binary(V)};
823+
({["default_policies","operator",ID, "apply_to"], V}) ->
824+
{["default_policies","operator",ID, "apply_to"], list_to_binary(V)};
819825
(E) -> E
820826
end),
821827
case Props of

deps/rabbit/src/rabbit_classic_queue.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
{cleanup, {rabbit_registry, unregister,
9292
[queue, <<"classic">>]}},
9393
{requires, rabbit_registry},
94-
{enables, ?MODULE}]}).
94+
{enables, [?MODULE, rabbit_policy]}]}).
9595

9696
-rabbit_boot_step(
9797
{?MODULE,

deps/rabbit/src/rabbit_db_vhost_defaults.erl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
-record(seeding_policy, {
1919
name :: binary(),
2020
queue_pattern = <<".*">> :: binary(),
21-
definition = [] :: definitions()
21+
definition = [] :: definitions(),
22+
apply_to = <<"all">>
2223
}).
2324

2425
-type seeded_user_properties() :: #{
@@ -43,9 +44,9 @@ apply(VHost, ActingUser) ->
4344
end,
4445
lists:foreach(
4546
fun(P) ->
46-
ok = rabbit_policy:set_op(VHost, P#seeding_policy.name, P#seeding_policy.queue_pattern, P#seeding_policy.definition,
47-
undefined, undefined, ActingUser),
48-
?LOG_INFO("Applied default operator policy to vhost '~tp': ~tp", [VHost, P])
47+
ok = rabbit_policy:set_op(VHost, P#seeding_policy.name, P#seeding_policy.queue_pattern, P#seeding_policy.definition,
48+
undefined, P#seeding_policy.apply_to, ActingUser),
49+
?LOG_INFO("Applied default operator policy to vhost '~tp': ~tp", [VHost, P])
4950
end,
5051
list_operator_policies(VHost)
5152
),
@@ -93,12 +94,15 @@ list_operator_policies(VHost) ->
9394
case re:run(VHost, RE, [{capture, none}]) of
9495
match ->
9596
QPattern = proplists:get_value(<<"queue_pattern">>, Ss, <<".*">>),
97+
ApplyTo = proplists:get_value(<<"apply_to">>, Ss, <<"all">>),
9698
Ss1 = proplists:delete(<<"queue_pattern">>, Ss),
9799
Ss2 = proplists:delete(<<"vhost_pattern">>, Ss1),
100+
Ss3 = proplists:delete(<<"apply_to">>, Ss2),
98101
{true, #seeding_policy{
99102
name = PolicyName,
100103
queue_pattern = QPattern,
101-
definition = underscore_to_dash(Ss2)
104+
apply_to = ApplyTo,
105+
definition = underscore_to_dash(Ss3)
102106
}};
103107
_ ->
104108
false

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@
112112
[queue, <<"quorum">>, ?MODULE]}},
113113
{cleanup, {rabbit_registry, unregister,
114114
[queue, <<"quorum">>]}},
115-
{requires, rabbit_registry}]}).
115+
{requires, rabbit_registry},
116+
{enables, rabbit_policy}]}).
116117

117118
-type msg_id() :: non_neg_integer().
118119
-type qmsg() :: {rabbit_types:r('queue'), pid(), msg_id(), boolean(),

deps/rabbit/src/rabbit_stream_queue.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@
126126
[queue, <<"stream">>, ?MODULE]}},
127127
{cleanup, {rabbit_registry, unregister,
128128
[queue, <<"stream">>]}},
129-
{requires, rabbit_registry}
129+
{requires, rabbit_registry},
130+
{enables, rabbit_policy}
130131
]}).
131132

132133
-type client() :: #stream_client{}.

deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,17 +199,13 @@ ssl_options.fail_if_no_peer_cert = true",
199199
default_policies.operator.a.expires = 1h
200200
default_policies.operator.a.queue_pattern = apple
201201
default_policies.operator.a.vhost_pattern = banana
202-
default_policies.operator.a.classic_queues.ha_mode = exactly
203-
default_policies.operator.a.classic_queues.ha_params = 2
204-
default_policies.operator.a.classic_queues.ha_sync_mode = automatic
202+
default_policies.operator.a.apply_to = quorum_queues
205203
default_policies.operator.a.classic_queues.queue_version = 2
206204
207205
",
208206
[{rabbit, [{default_policies, [{operator, [
209-
{<<"a">>, [{<<"expires">>, 3600000},
210-
{<<"ha_mode">>, <<"exactly">>},
211-
{<<"ha_params">>, 2},
212-
{<<"ha_sync_mode">>, <<"automatic">>},
207+
{<<"a">>, [{<<"apply_to">>,<<"quorum_queues">>},
208+
{<<"expires">>, 3600000},
213209
{<<"queue_pattern">>, <<"apple">>},
214210
{<<"queue_version">>, 2},
215211
{<<"vhost_pattern">>, "banana"}]}]}]}]}],

0 commit comments

Comments
 (0)