From a1a57c699e8f60fead4a42f31725ff8746df332a Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Mon, 8 Mar 2021 05:52:54 -0500 Subject: [PATCH] module_utils: ensure find_mount_point consistently returns text (#73625) (#73710) (cherry picked from commit dabfee4d5c8ef445bdcb06a8b2ffe5327525a55d) --- changelogs/fragments/fix_mount_point.yml | 2 ++ lib/ansible/module_utils/basic.py | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 changelogs/fragments/fix_mount_point.yml diff --git a/changelogs/fragments/fix_mount_point.yml b/changelogs/fragments/fix_mount_point.yml new file mode 100644 index 00000000000..755152cb77b --- /dev/null +++ b/changelogs/fragments/fix_mount_point.yml @@ -0,0 +1,2 @@ +bugfixes: + - ensure find_mount_point consistently returns text. diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py index 33371b3cf3d..333c587843f 100644 --- a/lib/ansible/module_utils/basic.py +++ b/lib/ansible/module_utils/basic.py @@ -955,17 +955,17 @@ class AnsibleModule(object): return (uid, gid) def find_mount_point(self, path): - path_is_bytes = False - if isinstance(path, binary_type): - path_is_bytes = True + ''' + Takes a path and returns it's mount point + + :param path: a string type with a filesystem path + :returns: the path to the mount point as a text type + ''' b_path = os.path.realpath(to_bytes(os.path.expanduser(os.path.expandvars(path)), errors='surrogate_or_strict')) while not os.path.ismount(b_path): b_path = os.path.dirname(b_path) - if path_is_bytes: - return b_path - return to_text(b_path, errors='surrogate_or_strict') def is_special_selinux_path(self, path):