Skip to content

Commit 1409faa

Browse files
Merge pull request #14988 from rabbitmq/mergify/bp/v4.2.x/pr-14976
Add apply_to to default oper policy, and fix boot steps (backport #14976)
2 parents a309cce + 24fd830 commit 1409faa

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
@@ -94,7 +94,7 @@
9494
{cleanup, {rabbit_registry, unregister,
9595
[queue, <<"classic">>]}},
9696
{requires, rabbit_registry},
97-
{enables, ?MODULE}]}).
97+
{enables, [?MODULE, rabbit_policy]}]}).
9898

9999
-rabbit_boot_step(
100100
{?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
@@ -114,7 +114,8 @@
114114
[queue, <<"quorum">>, ?MODULE]}},
115115
{cleanup, {rabbit_registry, unregister,
116116
[queue, <<"quorum">>]}},
117-
{requires, rabbit_registry}]}).
117+
{requires, rabbit_registry},
118+
{enables, rabbit_policy}]}).
118119

119120
-type msg_id() :: non_neg_integer().
120121
-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
@@ -129,7 +129,8 @@
129129
[queue, <<"stream">>, ?MODULE]}},
130130
{cleanup, {rabbit_registry, unregister,
131131
[queue, <<"stream">>]}},
132-
{requires, rabbit_registry}
132+
{requires, rabbit_registry},
133+
{enables, rabbit_policy}
133134
]}).
134135

135136
-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)