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):