summaryrefslogtreecommitdiffstats
path: root/qa/tasks/cephfs/test_newops.py
blob: 4c34dabdd10351bc86d2033ac8f19c5569a9e479 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import logging
from tasks.cephfs.cephfs_test_case import CephFSTestCase
from tasks.cephfs.fuse_mount import FuseMount
from tasks.cephfs.kernel_mount import KernelMount

log = logging.getLogger(__name__)

class TestNewOps(CephFSTestCase):
    def test_newops_getvxattr(self):
        """
        For nautilus it will crash the MDSs when receive unknown OPs, as a workaround
        the clients should avoid sending them to nautilus
        """
        if isinstance(self.mount_a, FuseMount):
            log.info('client is fuse mounted')
        elif isinstance(self.mount_a, KernelMount):
            log.info('client is kernel mounted')
            self.skipTest("Currently kclient hasn't fixed new ops issue yet.")

        log.info("Test for new getvxattr op...")
        self.mount_a.run_shell(["mkdir", "newop_getvxattr_dir"])

        # to test whether will nautilus crash the MDSs
        self.mount_a.getfattr("./newop_getvxattr_dir", "ceph.dir.pin.random")
        log.info("Test for new getvxattr op succeeds")