Skip to content

Commit 5279ee7

Browse files
dumbbellmichaelklishin
authored andcommitted
maintenance_mode_SUITE, queue_master_location_SUITE: Enable maintenance_mode_status feature flag
This is a prerequisite for the testsuites to work. The second benefit is that if the feature flag is unavailable (say, in mixed-version testing), the testcases will be skipped. While here, remove all trailing whitespaces. (cherry picked from commit 8629a1c)
1 parent 1684cf7 commit 5279ee7

File tree

2 files changed

+52
-25
lines changed

2 files changed

+52
-25
lines changed

test/maintenance_mode_SUITE.erl

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,21 @@ init_per_testcase(Testcase, Config) ->
5757
{rmq_nodename_suffix, Testcase},
5858
{tcp_ports_base, {skip_n_nodes, TestNumber * ClusterSize}}
5959
]),
60-
rabbit_ct_helpers:run_steps(Config1,
61-
rabbit_ct_broker_helpers:setup_steps() ++
62-
rabbit_ct_client_helpers:setup_steps() ++ [
63-
fun rabbit_ct_broker_helpers:set_ha_policy_all/1
64-
]).
60+
Config2 = rabbit_ct_helpers:run_steps(
61+
Config1,
62+
rabbit_ct_broker_helpers:setup_steps() ++
63+
rabbit_ct_client_helpers:setup_steps() ++
64+
[fun rabbit_ct_broker_helpers:set_ha_policy_all/1]),
65+
FFEnabled = rabbit_ct_broker_helpers:enable_feature_flag(
66+
Config2,
67+
maintenance_mode_status),
68+
case FFEnabled of
69+
ok ->
70+
Config2;
71+
Skip ->
72+
end_per_testcase(Testcase, Config2),
73+
Skip
74+
end.
6575

6676
end_per_testcase(Testcase, Config) ->
6777
Config1 = rabbit_ct_helpers:run_steps(Config,
@@ -75,12 +85,12 @@ end_per_testcase(Testcase, Config) ->
7585

7686
maintenance_mode_status(Config) ->
7787
Nodes = [A, B, C] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
78-
88+
7989
[begin
8090
?assertNot(rabbit_ct_broker_helpers:is_being_drained_local_read(Config, Node)),
8191
?assertNot(rabbit_ct_broker_helpers:is_being_drained_consistent_read(Config, Node))
8292
end || Node <- Nodes],
83-
93+
8494
[begin
8595
[begin
8696
?assertNot(rabbit_ct_broker_helpers:is_being_drained_consistent_read(Config, TargetNode, NodeToCheck))
@@ -91,38 +101,38 @@ maintenance_mode_status(Config) ->
91101
rabbit_ct_helpers:await_condition(
92102
fun () -> rabbit_ct_broker_helpers:is_being_drained_local_read(Config, B) end,
93103
10000),
94-
104+
95105
[begin
96106
?assert(rabbit_ct_broker_helpers:is_being_drained_consistent_read(Config, TargetNode, B))
97107
end || TargetNode <- Nodes],
98-
108+
99109
?assertEqual(
100110
lists:usort([A, C]),
101111
lists:usort(rabbit_ct_broker_helpers:rpc(Config, B,
102112
rabbit_maintenance, primary_replica_transfer_candidate_nodes, []))),
103-
113+
104114
rabbit_ct_broker_helpers:unmark_as_being_drained(Config, B),
105115
rabbit_ct_helpers:await_condition(
106116
fun () -> not rabbit_ct_broker_helpers:is_being_drained_local_read(Config, B) end,
107117
10000),
108-
118+
109119
[begin
110120
?assertNot(rabbit_ct_broker_helpers:is_being_drained_local_read(Config, TargetNode, B)),
111121
?assertNot(rabbit_ct_broker_helpers:is_being_drained_consistent_read(Config, TargetNode, B))
112122
end || TargetNode <- Nodes],
113-
123+
114124
?assertEqual(
115125
lists:usort([A, C]),
116126
lists:usort(rabbit_ct_broker_helpers:rpc(Config, B,
117127
rabbit_maintenance, primary_replica_transfer_candidate_nodes, []))),
118-
128+
119129
ok.
120130

121131

122132
listener_suspension_status(Config) ->
123133
Nodes = [A | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
124134
ct:pal("Picked node ~s for maintenance tests...", [A]),
125-
135+
126136
rabbit_ct_helpers:await_condition(
127137
fun () -> not rabbit_ct_broker_helpers:is_being_drained_local_read(Config, A) end, 10000),
128138

@@ -208,14 +218,14 @@ quorum_queue_leadership_transfer(Config) ->
208218
amqp_channel:call(Ch, #'queue.declare'{queue = QName, durable = true, arguments = [
209219
{<<"x-queue-type">>, longstr, <<"quorum">>}
210220
]}),
211-
221+
212222
%% we cannot assert on the number of local leaders here: declaring a QQ on node A
213223
%% does not guarantee that the leader will be hosted on node A
214-
224+
215225
rabbit_ct_broker_helpers:drain_node(Config, A),
216226
rabbit_ct_helpers:await_condition(
217227
fun () -> rabbit_ct_broker_helpers:is_being_drained_local_read(Config, A) end, 10000),
218-
228+
219229
%% quorum queue leader election is asynchronous
220230
rabbit_ct_helpers:await_condition(
221231
fun () ->

test/queue_master_location_SUITE.erl

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ groups() ->
5353
calculate_random,
5454
calculate_client_local
5555
]},
56-
56+
5757
{maintenance_mode, [], [
5858
declare_with_min_masters_and_some_nodes_under_maintenance,
5959
declare_with_min_masters_and_all_nodes_under_maintenance,
60-
60+
6161
declare_with_random_and_some_nodes_under_maintenance,
6262
declare_with_random_and_all_nodes_under_maintenance
6363
]}
@@ -101,9 +101,26 @@ init_per_testcase(Testcase, Config) ->
101101
{rmq_nodename_suffix, Testcase},
102102
{tcp_ports_base, {skip_n_nodes, TestNumber * ClusterSize}}
103103
]),
104-
rabbit_ct_helpers:run_steps(Config1,
105-
rabbit_ct_broker_helpers:setup_steps() ++
106-
rabbit_ct_client_helpers:setup_steps()).
104+
Config2 = rabbit_ct_helpers:run_steps(
105+
Config1,
106+
rabbit_ct_broker_helpers:setup_steps() ++
107+
rabbit_ct_client_helpers:setup_steps()),
108+
Group = proplists:get_value(name, ?config(tc_group_properties, Config)),
109+
FFEnabled = case Group of
110+
maintenance_mode ->
111+
rabbit_ct_broker_helpers:enable_feature_flag(
112+
Config2,
113+
maintenance_mode_status);
114+
_ ->
115+
ok
116+
end,
117+
case FFEnabled of
118+
ok ->
119+
Config2;
120+
Skip ->
121+
end_per_testcase(Testcase, Config2),
122+
Skip
123+
end.
107124

108125
end_per_testcase(Testcase, Config) ->
109126
Config1 = rabbit_ct_helpers:run_steps(Config,
@@ -226,7 +243,7 @@ declare_with_min_masters_and_some_nodes_under_maintenance(Config) ->
226243
set_location_policy(Config, ?POLICY, <<"min-masters">>),
227244
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 0),
228245
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 1),
229-
246+
230247
QName = <<"qm.tests.min_masters.maintenance.case1">>,
231248
Resource = rabbit_misc:r(<<"/">>, queue, QName),
232249
Record = declare(Config, Resource, false, false, _Args = [], none),
@@ -244,7 +261,7 @@ declare_with_random_and_some_nodes_under_maintenance(Config) ->
244261
set_location_policy(Config, ?POLICY, <<"random">>),
245262
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 0),
246263
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 2),
247-
264+
248265
QName = <<"qm.tests.random.maintenance.case1">>,
249266
Resource = rabbit_misc:r(<<"/">>, queue, QName),
250267
Record = declare(Config, Resource, false, false, _Args = [], none),
@@ -263,7 +280,7 @@ declare_with_all_nodes_under_maintenance(Config, Locator) ->
263280
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 0),
264281
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 1),
265282
rabbit_ct_broker_helpers:mark_as_being_drained(Config, 2),
266-
283+
267284
QName = rabbit_data_coercion:to_binary(
268285
rabbit_misc:format("qm.tests.~s.maintenance.case2", [Locator])),
269286
Resource = rabbit_misc:r(<<"/">>, queue, QName),

0 commit comments

Comments
 (0)