@@ -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
6676end_per_testcase (Testcase , Config ) ->
6777 Config1 = rabbit_ct_helpers :run_steps (Config ,
@@ -75,12 +85,12 @@ end_per_testcase(Testcase, Config) ->
7585
7686maintenance_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
122132listener_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 () ->
0 commit comments