summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelder Garcia <helder.garcia@gmail.com>2020-05-26 13:30:59 -0300
committerGitHub <noreply@github.com>2020-05-26 12:30:59 -0400
commitfdfa6fec75da14d7e145eccf7c092fba684ee1e2 (patch)
treeb7685d0074271f93c0b7c20f1089b4cae6321bc1
parentdae3ba71a85ec39396f08235550e06b5c6fe739a (diff)
downloadansible-fdfa6fec75da14d7e145eccf7c092fba684ee1e2.tar.gz
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.
-rw-r--r--lib/ansible/modules/find.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/ansible/modules/find.py b/lib/ansible/modules/find.py
index ad8c5ea38e..e9ac43edfe 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