Skip to content

Commit 212ae64

Browse files
committed
Local shovels: place behind rabbitmq_4.0.0 feature flag
1 parent d475a0e commit 212ae64

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

deps/rabbitmq_shovel/src/rabbit_local_shovel.erl

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ parse(_Name, {destination, Dest}) ->
8585
connect_source(State = #{source := Src = #{resource_decl := {M, F, MFArgs},
8686
queue := QName0,
8787
uris := [Uri | _]}}) ->
88+
case rabbit_feature_flags:is_enabled('rabbitmq_4.0.0') of
89+
true ->
90+
ok;
91+
false ->
92+
exit({shutdown, feature_flag_rabbitmq_4_0_0_is_disabled})
93+
end,
8894
QState = rabbit_queue_type:init(),
8995
{User, VHost} = get_user_vhost_from_amqp_param(Uri),
9096
%% We handle the most recently declared queue to use anonymous functions
@@ -106,7 +112,12 @@ connect_source(State = #{source := Src = #{resource_decl := {M, F, MFArgs},
106112
connect_dest(State = #{dest := Dest = #{resource_decl := {M, F, MFArgs},
107113
uris := [Uri | _]},
108114
ack_mode := AckMode}) ->
109-
%% Shall we get the user from an URI or something else?
115+
case rabbit_feature_flags:is_enabled('rabbitmq_4.0.0') of
116+
true ->
117+
ok;
118+
false ->
119+
exit({shutdown, feature_flag_rabbitmq_4_0_0_is_disabled})
120+
end,
110121
{User, VHost} = get_user_vhost_from_amqp_param(Uri),
111122
apply(M, F, MFArgs ++ [VHost, User]),
112123

@@ -137,13 +148,7 @@ init_source(State = #{source := #{queue_r := QName,
137148
vhost := VHost} = Current} = Src,
138149
name := Name,
139150
ack_mode := AckMode}) ->
140-
%% TODO put this shovel behind the rabbitmq_4.0.0 feature flag
141-
Mode = case rabbit_feature_flags:is_enabled('rabbitmq_4.0.0') of
142-
true ->
143-
{credited, ?INITIAL_DELIVERY_COUNT};
144-
false ->
145-
{credited, credit_api_v1}
146-
end,
151+
Mode = {credited, ?INITIAL_DELIVERY_COUNT},
147152
MaxLinkCredit = max_link_credit(),
148153
CTag = consumer_tag(Name),
149154
case rabbit_amqqueue:with(
@@ -501,10 +506,6 @@ expand_routing_key_shortcut(<<>>, <<>>, MRDQ) ->
501506
expand_routing_key_shortcut(_QueueNameBin, RoutingKey, _) ->
502507
RoutingKey.
503508

504-
%% TODO A missing queue stops the shovel but because the error reason
505-
%% the failed status is not stored. Would not be it more useful to
506-
%% report it??? This is a rabbit_shovel_worker issues, last terminate
507-
%% clause
508509
check_fun(QName, VHost, User) ->
509510
Method = #'queue.declare'{queue = QName,
510511
passive = true},

0 commit comments

Comments
 (0)