From fdfa6fec75da14d7e145eccf7c092fba684ee1e2 Mon Sep 17 00:00:00 2001 From: Helder Garcia Date: Tue, 26 May 2020 13:30:59 -0300 Subject: [PATCH] Module Find returns empty list when setting path to "/" and depth to 1 (#69650) * Fix bug on find module when path is / and depth 1. --- lib/ansible/modules/find.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/ansible/modules/find.py b/lib/ansible/modules/find.py index ad8c5ea38ea..e9ac43edfea 100644 --- a/lib/ansible/modules/find.py +++ b/lib/ansible/modules/find.py @@ -409,16 +409,14 @@ def main(): npath = os.path.expanduser(os.path.expandvars(npath)) if os.path.isdir(npath): for root, dirs, files in os.walk(npath, followlinks=params['follow']): - if params['depth']: - depth = root.replace(npath.rstrip(os.path.sep), '').count(os.path.sep) - if files or dirs: - depth += 1 - if depth > params['depth']: - continue looked = looked + len(files) + len(dirs) for fsobj in (files + dirs): fsname = os.path.normpath(os.path.join(root, fsobj)) - + if params['depth']: + wpath = npath.rstrip(os.path.sep) + os.path.sep + depth = int(fsname.count(os.path.sep)) - int(wpath.count(os.path.sep)) + 1 + if depth > params['depth']: + continue if os.path.basename(fsname).startswith('.') and not params['hidden']: continue