@@ -1195,6 +1195,40 @@ def run_repair():
1195
1195
else :
1196
1196
node1 .nodetool ('repair keyspace1 standard1 -inc -par' )
1197
1197
1198
+ @since ('3.0' )
1199
+ def test_repair_one_node_cluster (self ):
1200
+ options = []
1201
+ fix_STAR582 = self .cluster .version () >= "4.0"
1202
+ if not fix_STAR582 :
1203
+ options = ['--ignore-unreplicated-keyspaces' ] + options
1204
+ self ._repair_abort_test (options = options , nodes = 1 , rf = 2 )
1205
+
1206
+ @since ('3.0' )
1207
+ def test_repair_one_node_in_local_dc (self ):
1208
+ self ._repair_abort_test (options = ['--ignore-unreplicated-keyspaces' , '--in-local-dc' ], nodes = [1 , 1 ], rf = {'dc1' : 1 , 'dc2' : 1 }, no_common_range = True )
1209
+
1210
+ def _repair_abort_test (self , options = [], nodes = 1 , rf = 1 , no_common_range = False ):
1211
+ cluster = self .cluster
1212
+ logger .debug ("Starting cluster.." )
1213
+ cluster .populate (nodes ).start (wait_for_binary_proto = True )
1214
+
1215
+ node1 = self .cluster .nodelist ()[0 ]
1216
+ session = self .patient_cql_connection (node1 )
1217
+ create_ks (session , 'ks' , rf = rf )
1218
+
1219
+ support_preview = self .cluster .version () >= "4.0"
1220
+ if support_preview :
1221
+ logger .debug ("Preview repair" )
1222
+ out = node1 .repair (["--preview" ] + options )
1223
+ if no_common_range :
1224
+ assert "Nothing to repair for " in str (out ), "Expect 'Nothing to repair for '"
1225
+
1226
+ logger .debug ("Full repair" )
1227
+ node1 .repair (["--full" ] + options )
1228
+
1229
+ logger .debug ("Incremental repair" )
1230
+ node1 .repair (options )
1231
+
1198
1232
@since ('2.2' )
1199
1233
def test_dead_sync_initiator (self ):
1200
1234
"""
0 commit comments