@@ -1372,7 +1372,7 @@ def test_cephfs_mirror_cancel_mirroring_and_readd(self):
13721372 self .mount_b .umount_wait ()
13731373 self .mount_b .mount_wait (cephfs_name = self .secondary_fs_name )
13741374
1375- # create a bunch of files in a directory to snap
1375+ # create some large files in 3 directories to snap
13761376 self .mount_a .run_shell (["mkdir" , "d0" ])
13771377 self .mount_a .run_shell (["mkdir" , "d1" ])
13781378 self .mount_a .run_shell (["mkdir" , "d2" ])
@@ -1395,30 +1395,38 @@ def test_cephfs_mirror_cancel_mirroring_and_readd(self):
13951395 vbefore = res [TestMirroring .PERF_COUNTER_KEY_NAME_CEPHFS_MIRROR_PEER ][0 ]
13961396 # take snapshots
13971397 log .debug ('taking snapshots' )
1398- self .mount_a .run_shell (["mkdir" , "d0/.snap/snap0" ])
1399- self .mount_a .run_shell (["mkdir" , "d1/.snap/snap0" ])
1400- self .mount_a .run_shell (["mkdir" , "d2/.snap/snap0" ])
1398+ snap_name = "snap0"
1399+ self .mount_a .run_shell (["mkdir" , f"d0/.snap/{ snap_name } " ])
1400+ self .mount_a .run_shell (["mkdir" , f"d1/.snap/{ snap_name } " ])
1401+ self .mount_a .run_shell (["mkdir" , f"d2/.snap/{ snap_name } " ])
14011402
1402- time .sleep (10 )
14031403 log .debug ('checking snap in progress' )
1404- self .check_peer_snap_in_progress (self .primary_fs_name , self .primary_fs_id ,
1405- "client.mirror_remote@ceph" , '/d0' , 'snap0' )
1406- self .check_peer_snap_in_progress (self .primary_fs_name , self .primary_fs_id ,
1407- "client.mirror_remote@ceph" , '/d1' , 'snap0' )
1408- self .check_peer_snap_in_progress (self .primary_fs_name , self .primary_fs_id ,
1409- "client.mirror_remote@ceph" , '/d2' , 'snap0' )
1404+ peer_spec = "client.mirror_remote@ceph"
1405+ peer_uuid = self .get_peer_uuid (peer_spec )
1406+ with safe_while (sleep = 3 , tries = 100 , action = f'wait for status: { peer_spec } ' ) as proceed :
1407+ while proceed ():
1408+ res = self .mirror_daemon_command (f'peer status for fs: { self .primary_fs_name } ' ,
1409+ 'fs' , 'mirror' , 'peer' , 'status' ,
1410+ f'{ self .primary_fs_name } @{ self .primary_fs_id } ' ,
1411+ peer_uuid )
1412+ if ('syncing' == res ["/d0" ]['state' ] and 'syncing' == res ["/d1" ]['state' ] and \
1413+ 'syncing' == res ["/d2" ]['state' ]):
1414+ break
14101415
1411- log .debug ('removing directories 1' )
1416+ log .debug ('removing directory 1' )
14121417 self .remove_directory (self .primary_fs_name , self .primary_fs_id , '/d0' )
1413- log .debug ('removing directories 2' )
1418+ log .debug ('removing directory 2' )
14141419 self .remove_directory (self .primary_fs_name , self .primary_fs_id , '/d1' )
1415- log .debug ('removing directories 3' )
1420+ log .debug ('removing directory 3' )
14161421 self .remove_directory (self .primary_fs_name , self .primary_fs_id , '/d2' )
14171422
1423+ # Wait a while for the sync backoff
1424+ time .sleep (500 )
1425+
14181426 log .debug ('removing snapshots' )
1419- self .mount_a .run_shell (["rmdir" , "d0/.snap/snap0 " ])
1420- self .mount_a .run_shell (["rmdir" , "d1/.snap/snap0 " ])
1421- self .mount_a .run_shell (["rmdir" , "d2/.snap/snap0 " ])
1427+ self .mount_a .run_shell (["rmdir" , f "d0/.snap/{ snap_name } " ])
1428+ self .mount_a .run_shell (["rmdir" , f "d1/.snap/{ snap_name } " ])
1429+ self .mount_a .run_shell (["rmdir" , f "d2/.snap/{ snap_name } " ])
14221430
14231431 for i in range (4 ):
14241432 filename = f'file.{ i } '
@@ -1438,26 +1446,27 @@ def test_cephfs_mirror_cancel_mirroring_and_readd(self):
14381446 self .add_directory (self .primary_fs_name , self .primary_fs_id , '/d2' )
14391447
14401448 log .debug ('creating new snapshots...' )
1441- self .mount_a .run_shell (["mkdir" , "d0/.snap/snap0" ])
1442- self .mount_a .run_shell (["mkdir" , "d1/.snap/snap0" ])
1443- self .mount_a .run_shell (["mkdir" , "d2/.snap/snap0" ])
1449+ self .mount_a .run_shell (["mkdir" , f"d0/.snap/{ snap_name } " ])
1450+ self .mount_a .run_shell (["mkdir" , f"d1/.snap/{ snap_name } " ])
1451+ self .mount_a .run_shell (["mkdir" , f"d2/.snap/{ snap_name } " ])
1452+
1453+ # Wait for the threads to finish
1454+ time .sleep (500 )
14441455
1445- time .sleep (60 )
14461456 self .check_peer_status (self .primary_fs_name , self .primary_fs_id ,
1447- "client.mirror_remote@ceph" , '/d0' , 'snap0 ' , 1 )
1448- self .verify_snapshot ('d0' , 'snap0 ' )
1457+ "client.mirror_remote@ceph" , '/d0' , f' { snap_name } ' , 1 )
1458+ self .verify_snapshot ('d0' , f' { snap_name } ' )
14491459
14501460 self .check_peer_status (self .primary_fs_name , self .primary_fs_id ,
1451- "client.mirror_remote@ceph" , '/d1' , 'snap0 ' , 1 )
1452- self .verify_snapshot ('d1' , 'snap0 ' )
1461+ "client.mirror_remote@ceph" , '/d1' , f' { snap_name } ' , 1 )
1462+ self .verify_snapshot ('d1' , f' { snap_name } ' )
14531463
14541464 self .check_peer_status (self .primary_fs_name , self .primary_fs_id ,
1455- "client.mirror_remote@ceph" , '/d2' , 'snap0 ' , 1 )
1456- self .verify_snapshot ('d2' , 'snap0 ' )
1465+ "client.mirror_remote@ceph" , '/d2' , f' { snap_name } ' , 1 )
1466+ self .verify_snapshot ('d2' , f' { snap_name } ' )
14571467 res = self .mirror_daemon_command (f'counter dump for fs: { self .primary_fs_name } ' , 'counter' , 'dump' )
14581468 vafter = res [TestMirroring .PERF_COUNTER_KEY_NAME_CEPHFS_MIRROR_PEER ][0 ]
14591469 self .assertGreater (vafter ["counters" ]["snaps_synced" ], vbefore ["counters" ]["snaps_synced" ])
1460- self .assertGreater (vafter ["counters" ]["snaps_deleted" ], vbefore ["counters" ]["snaps_deleted" ])
14611470
14621471 self .disable_mirroring (self .primary_fs_name , self .primary_fs_id )
14631472
0 commit comments