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.
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())
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}")
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:
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):
"""
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.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:
"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):
"""
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):
'''
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'),
"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()
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. "
"'refuse_client_session' must be set. See "
"`ceph fs set`."),
retval=errno.EPERM)
+
self.run_ceph_cmd(f'fs fail {self.fs.name}')