mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
Merge PR #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 <ridave@redhat.com>
This commit is contained in:
commit
dbc9816d2e
@ -891,10 +891,12 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
|
||||
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
|
||||
sleep(5)
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
# authorize a cephx ID access to the renamed file system.
|
||||
# use the ID to write to the file system.
|
||||
@ -930,11 +932,13 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
|
||||
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
|
||||
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
|
||||
sleep(5)
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
# original file system name does not appear in `fs ls` command
|
||||
self.assertFalse(self.fs.exists())
|
||||
@ -953,13 +957,16 @@ class TestRenameCommand(TestAdminCommands):
|
||||
new_fs_name = 'new_cephfs'
|
||||
data_pool = self.fs.get_data_pool_name()
|
||||
metadata_pool = self.fs.get_metadata_pool_name()
|
||||
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
|
||||
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {new_fs_name} refuse_client_session false')
|
||||
sleep(5)
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
try:
|
||||
self.run_ceph_cmd(f"fs new {orig_fs_name} {metadata_pool} {data_pool}")
|
||||
@ -999,6 +1006,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
try:
|
||||
self.run_ceph_cmd(f"fs rename {self.fs.name} new_fs")
|
||||
except CommandFailedError as ce:
|
||||
@ -1008,25 +1016,28 @@ class TestRenameCommand(TestAdminCommands):
|
||||
else:
|
||||
self.fail("expected renaming of file system without the "
|
||||
"'--yes-i-really-mean-it' flag to fail ")
|
||||
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
def test_fs_rename_fails_for_non_existent_fs(self):
|
||||
"""
|
||||
That renaming a non-existent file system fails.
|
||||
"""
|
||||
self.skipTest('This test is broken ATM; see '
|
||||
'https://tracker.ceph.com/issues/66088')
|
||||
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
try:
|
||||
self.run_ceph_cmd("fs rename non_existent_fs new_fs --yes-i-really-mean-it")
|
||||
except CommandFailedError as ce:
|
||||
self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on renaming a non-existent fs")
|
||||
else:
|
||||
self.fail("expected renaming of a non-existent file system to fail")
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
|
||||
self.fs.wait_for_daemons()
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
|
||||
|
||||
def test_fs_rename_fails_new_name_already_in_use(self):
|
||||
"""
|
||||
@ -1037,6 +1048,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
try:
|
||||
self.run_ceph_cmd(f"fs rename {self.fs.name} {self.fs2.name} --yes-i-really-mean-it")
|
||||
except CommandFailedError as ce:
|
||||
@ -1044,8 +1056,10 @@ class TestRenameCommand(TestAdminCommands):
|
||||
"invalid error code on renaming to a fs name that is already in use")
|
||||
else:
|
||||
self.fail("expected renaming to a new file system name that is already in use to fail.")
|
||||
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
def test_fs_rename_fails_with_mirroring_enabled(self):
|
||||
"""
|
||||
@ -1058,15 +1072,18 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
sleep(5)
|
||||
|
||||
try:
|
||||
self.run_ceph_cmd(f'fs rename {orig_fs_name} {new_fs_name} --yes-i-really-mean-it')
|
||||
except CommandFailedError as ce:
|
||||
self.assertEqual(ce.exitstatus, errno.EPERM, "invalid error code on renaming a mirrored file system")
|
||||
else:
|
||||
self.fail("expected renaming of a mirrored file system to fail")
|
||||
|
||||
self.run_ceph_cmd(f'fs mirror disable {orig_fs_name}')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} joinable true')
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
|
||||
self.fs.wait_for_daemons()
|
||||
|
||||
def test_rename_when_fs_is_online(self):
|
||||
'''
|
||||
@ -1077,6 +1094,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
new_fs_name = 'new_cephfs'
|
||||
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session true')
|
||||
|
||||
self.negtest_ceph_cmd(
|
||||
args=(f'fs rename {self.fs.name} {new_fs_name} '
|
||||
'--yes-i-really-mean-it'),
|
||||
@ -1084,6 +1102,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
"renaming a CephFS, it must be marked as down. See "
|
||||
"`ceph fs fail`."),
|
||||
retval=errno.EPERM)
|
||||
|
||||
self.run_ceph_cmd(f'fs set {self.fs.name} refuse_client_session false')
|
||||
|
||||
self.fs.getinfo()
|
||||
@ -1108,6 +1127,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
self.mount_a.umount_wait(require_clean=True)
|
||||
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
|
||||
self.negtest_ceph_cmd(
|
||||
args=f"fs rename {self.fs.name} new_fs --yes-i-really-mean-it",
|
||||
errmsgs=(f"CephFS '{self.fs.name}' doesn't refuse clients. "
|
||||
@ -1115,6 +1135,7 @@ class TestRenameCommand(TestAdminCommands):
|
||||
"'refuse_client_session' must be set. See "
|
||||
"`ceph fs set`."),
|
||||
retval=errno.EPERM)
|
||||
|
||||
self.run_ceph_cmd(f'fs fail {self.fs.name}')
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user