Skip to content

Commit dbc9816

Browse files
committed
Merge PR ceph#57619 into main
* refs/pull/57619/head: qa/cephfs: use wait_for_daemon() instead of sleep()-ing qa/cephfs: mark file system joinable for fs rename tests before unmounting clients Reviewed-by: Rishabh Dave <[email protected]>
2 parents f38a5de + 3005495 commit dbc9816

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

qa/tasks/cephfs/test_admin.py

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -891,10 +891,12 @@ def test_fs_rename(self):
891891
self.run_ceph_cmd(f'fs fail {self.fs.name}')
892892
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
893893
sleep(5)
894+
894895
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
896+
895897
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
896898
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
897-
sleep(5)
899+
self.fs.wait_for_daemons()
898900

899901
# authorize a cephx ID access to the renamed file system.
900902
# use the ID to write to the file system.
@@ -930,11 +932,13 @@ def test_fs_rename_idempotency(self):
930932
self.run_ceph_cmd(f'fs fail {self.fs.name}')
931933
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
932934
sleep(5)
935+
933936
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
934937
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
938+
935939
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
936940
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
937-
sleep(5)
941+
self.fs.wait_for_daemons()
938942

939943
# original file system name does not appear in `fs ls` command
940944
self.assertFalse(self.fs.exists())
@@ -953,13 +957,16 @@ def test_fs_rename_fs_new_fails_with_old_fsname_existing_pools(self):
953957
new_fs_name = 'new_cephfs'
954958
data_pool = self.fs.get_data_pool_name()
955959
metadata_pool = self.fs.get_metadata_pool_name()
960+
956961
self.run_ceph_cmd(f'fs fail {self.fs.name}')
957962
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
958963
sleep(5)
964+
959965
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
966+
960967
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
961968
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
962-
sleep(5)
969+
self.fs.wait_for_daemons()
963970

964971
try:
965972
self.run_ceph_cmd(f"fs new {orig_fs_name} {metadata_pool} {data_pool}")
@@ -999,6 +1006,7 @@ def test_fs_rename_fails_without_yes_i_really_mean_it_flag(self):
9991006
self.run_ceph_cmd(f'fs fail {self.fs.name}')
10001007
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
10011008
sleep(5)
1009+
10021010
try:
10031011
self.run_ceph_cmd(f"fs rename {self.fs.name} new_fs")
10041012
except CommandFailedError as ce:
@@ -1008,25 +1016,28 @@ def test_fs_rename_fails_without_yes_i_really_mean_it_flag(self):
10081016
else:
10091017
self.fail("expected renaming of file system without the "
10101018
"'--yes-i-really-mean-it' flag to fail ")
1019+
10111020
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
10121021
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
1022+
self.fs.wait_for_daemons()
10131023

10141024
def test_fs_rename_fails_for_non_existent_fs(self):
10151025
"""
10161026
That renaming a non-existent file system fails.
10171027
"""
1018-
self.skipTest('This test is broken ATM; see '
1019-
'https://tracker.ceph.com/issues/66088')
1020-
10211028
self.run_ceph_cmd(f'fs fail {self.fs.name}')
10221029
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
10231030
sleep(5)
1031+
10241032
try:
10251033
self.run_ceph_cmd("fs rename non_existent_fs new_fs --yes-i-really-mean-it")
10261034
except CommandFailedError as ce:
10271035
self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on renaming a non-existent fs")
10281036
else:
10291037
self.fail("expected renaming of a non-existent file system to fail")
1038+
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
1039+
self.fs.wait_for_daemons()
1040+
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
10301041

10311042
def test_fs_rename_fails_new_name_already_in_use(self):
10321043
"""
@@ -1037,15 +1048,18 @@ def test_fs_rename_fails_new_name_already_in_use(self):
10371048
self.run_ceph_cmd(f'fs fail {self.fs.name}')
10381049
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
10391050
sleep(5)
1051+
10401052
try:
10411053
self.run_ceph_cmd(f"fs rename {self.fs.name} {self.fs2.name} --yes-i-really-mean-it")
10421054
except CommandFailedError as ce:
10431055
self.assertEqual(ce.exitstatus, errno.EINVAL,
10441056
"invalid error code on renaming to a fs name that is already in use")
10451057
else:
10461058
self.fail("expected renaming to a new file system name that is already in use to fail.")
1059+
10471060
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
10481061
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
1062+
self.fs.wait_for_daemons()
10491063

10501064
def test_fs_rename_fails_with_mirroring_enabled(self):
10511065
"""
@@ -1058,15 +1072,18 @@ def test_fs_rename_fails_with_mirroring_enabled(self):
10581072
self.run_ceph_cmd(f'fs fail {self.fs.name}')
10591073
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
10601074
sleep(5)
1075+
10611076
try:
10621077
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
10631078
except CommandFailedError as ce:
10641079
self.assertEqual(ce.exitstatus, errno.EPERM, "invalid error code on renaming a mirrored file system")
10651080
else:
10661081
self.fail("expected renaming of a mirrored file system to fail")
1082+
10671083
self.run_ceph_cmd(f'fs mirror disable {orig_fs_name}')
10681084
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
10691085
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
1086+
self.fs.wait_for_daemons()
10701087

10711088
def test_rename_when_fs_is_online(self):
10721089
'''
@@ -1077,13 +1094,15 @@ def test_rename_when_fs_is_online(self):
10771094
new_fs_name = 'new_cephfs'
10781095

10791096
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
1097+
10801098
self.negtest_ceph_cmd(
10811099
args=(f'fs rename {self.fs.name} {new_fs_name} '
10821100
'--yes-i-really-mean-it'),
10831101
errmsgs=(f"CephFS '{self.fs.name}' is not offline. Before "
10841102
"renaming a CephFS, it must be marked as down. See "
10851103
"`ceph fs fail`."),
10861104
retval=errno.EPERM)
1105+
10871106
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
10881107

10891108
self.fs.getinfo()
@@ -1108,13 +1127,15 @@ def test_rename_when_clients_not_refused(self):
11081127
self.mount_a.umount_wait(require_clean=True)
11091128

11101129
self.run_ceph_cmd(f'fs fail {self.fs.name}')
1130+
11111131
self.negtest_ceph_cmd(
11121132
args=f"fs rename {self.fs.name} new_fs --yes-i-really-mean-it",
11131133
errmsgs=(f"CephFS '{self.fs.name}' doesn't refuse clients. "
11141134
"Before renaming a CephFS, flag "
11151135
"'refuse_client_session' must be set. See "
11161136
"`ceph fs set`."),
11171137
retval=errno.EPERM)
1138+
11181139
self.run_ceph_cmd(f'fs fail {self.fs.name}')
11191140

11201141

0 commit comments

Comments
 (0)