Skip to content

Commit

Permalink
Merge pull request ceph#56846 from rishabh-d-dave/test-fs-auth
Browse files Browse the repository at this point in the history
qa/cephfs: fix and improve test_multifs_single_path_rootsquash

Reviewed-by: Venky Shankar <[email protected]>
Reviewed-by: Xiubo Li <[email protected]>
  • Loading branch information
rishabh-d-dave authored May 3, 2024
2 parents 9a41cd7 + d9752a6 commit 04416f4
Showing 1 changed file with 20 additions and 22 deletions.
42 changes: 20 additions & 22 deletions qa/tasks/cephfs/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1447,38 +1447,36 @@ def test_multifs_single_path_rootsquash(self):
self.fs1 = self.fs
self.fs2 = self.mds_cluster.newfs('testcephfs2')
self.mount_b.remount(cephfs_name=self.fs2.name)
self.captesters = (CapTester(self.mount_a), CapTester(self.mount_b))

if not isinstance(self.mount_a, FuseMount):
self.skipTest("only FUSE client has CEPHFS_FEATURE_MDS_AUTH_CAPS "
"needed to enforce root_squash MDS caps")
self.captester1 = CapTester(self.mount_a)
self.captester2 = CapTester(self.mount_b)

# Authorize client to fs1
PERM = 'rw'
FS_AUTH_CAPS = (('/', PERM, 'root_squash'),)
self.captester = CapTester(self.mount_a, '/')
self.fs1.authorize(self.client_id, FS_AUTH_CAPS)

# Authorize client to fs2
self.fs1.authorize(self.client_id, FS_AUTH_CAPS)
self.fs2.authorize(self.client_id, FS_AUTH_CAPS)
keyring = self.fs.mon_manager.get_keyring(self.client_id)

self._remount(self.mount_a, self.fs1.name, keyring)
self._remount(self.mount_b, self.fs2.name, keyring)
keyring_path = self.mount_a.client_remote.mktemp(data=keyring)
self.mount_a.remount(client_id=self.client_id,
client_keyring_path=keyring_path)
# testing MDS caps...
# Since root_squash is set in client caps, client can read but not
# write even though access level is set to "rw" on both fses
self.captester[0].conduct_pos_test_for_read_caps()
self.captester[0].conduct_pos_test_for_open_caps()
self.captester[0].conduct_neg_test_for_write_caps(sudo_write=True)
self.captester[0].conduct_neg_test_for_chown_caps()
self.captester[0].conduct_neg_test_for_truncate_caps()

self.captester[1].conduct_pos_test_for_read_caps()
self.captester[1].conduct_pos_test_for_open_caps()
self.captester[1].conduct_neg_test_for_write_caps(sudo_write=True)
self.captester[1].conduct_neg_test_for_chown_caps()
self.captester[1].conduct_neg_test_for_truncate_caps()
self.captester1.conduct_pos_test_for_read_caps()
self.captester1.conduct_pos_test_for_open_caps()
self.captester1.conduct_neg_test_for_write_caps(sudo_write=True)
self.captester1.conduct_neg_test_for_chown_caps()
self.captester1.conduct_neg_test_for_truncate_caps()

keyring_path = self.mount_b.client_remote.mktemp(data=keyring)
self.mount_b.remount(client_id=self.client_id,
client_keyring_path=keyring_path)
self.captester2.conduct_pos_test_for_read_caps()
self.captester2.conduct_pos_test_for_open_caps()
self.captester2.conduct_neg_test_for_write_caps(sudo_write=True)
self.captester2.conduct_neg_test_for_chown_caps()
self.captester2.conduct_neg_test_for_truncate_caps()

def test_single_path_rootsquash_issue_56067(self):
"""
Expand Down

0 comments on commit 04416f4

Please sign in to comment.