From: Rishabh Dave Date: Fri, 19 Aug 2022 15:40:04 +0000 (+0530) Subject: orchestra: add a method to check if given path is mounted X-Git-Tag: 1.2.0~141^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8fa6ac12ffb92637874a7a9bfbe15212e56c8fe8;p=teuthology.git orchestra: add a method to check if given path is mounted Add a method mount() that checks if the given path is mounted or unmounted without using "mount" of "findmnt" commands. Signed-off-by: Rishabh Dave --- diff --git a/teuthology/orchestra/remote.py b/teuthology/orchestra/remote.py index df269c740..963f82da7 100644 --- a/teuthology/orchestra/remote.py +++ b/teuthology/orchestra/remote.py @@ -300,6 +300,21 @@ class RemoteShell(object): """ self.write_file(path, data, sudo=True, **kwargs) + def is_mounted(self, path): + """ + Check if the given path is mounted on the remote machine. + + This method checks the contents of "/proc/self/mounts" instead of + using "mount" or "findmnt" command since these commands hang when a + CephFS client is blocked and its mount point on the remote machine + is left unhandled/unmounted. + + :param path: path on remote host + """ + # XXX: matching newline too is crucial so that "/mnt" does not match + # "/mnt/cephfs" if it's present in the output. + return f'{path}\n' in self.sh("cat /proc/self/mounts | awk '{print $2}'") + @property def os(self): if not hasattr(self, '_os'):