summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBrian Coca <bcoca@users.noreply.github.com>2022-10-28 19:18:24 -0400
committerGitHub <noreply@github.com>2022-10-28 16:18:24 -0700
commitcb6e106d7d8b6dabfdd658d0d5284bc808af33cb (patch)
tree75c90b6ab2619e973fc3699df251ec1de3940063 /lib
parent25f8b9829dd42c013e8a84a0868c22829db2ce27 (diff)
downloadansible-cb6e106d7d8b6dabfdd658d0d5284bc808af33cb.tar.gz
File lookup handle missing file more gracefully (#79230) (#79245)
previously it would have a 2nd tb due to bad error raising also remove superfluous warning (cherry picked from commit aaab0791d9507b64ea04903bf35500c87ebb33b4)
Diffstat (limited to 'lib')
-rw-r--r--lib/ansible/plugins/lookup/file.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/ansible/plugins/lookup/file.py b/lib/ansible/plugins/lookup/file.py
index fa9191ee1b..9657536d73 100644
--- a/lib/ansible/plugins/lookup/file.py
+++ b/lib/ansible/plugins/lookup/file.py
@@ -50,7 +50,7 @@ RETURN = """
elements: str
"""
-from ansible.errors import AnsibleError, AnsibleParserError
+from ansible.errors import AnsibleError, AnsibleOptionsError
from ansible.plugins.lookup import LookupBase
from ansible.module_utils._text import to_text
from ansible.utils.display import Display
@@ -67,11 +67,10 @@ class LookupModule(LookupBase):
for term in terms:
display.debug("File lookup term: %s" % term)
-
# Find the file in the expected search path
- lookupfile = self.find_file_in_search_path(variables, 'files', term)
- display.vvvv(u"File lookup using %s as file" % lookupfile)
try:
+ lookupfile = self.find_file_in_search_path(variables, 'files', term, ignore_missing=True)
+ display.vvvv(u"File lookup using %s as file" % lookupfile)
if lookupfile:
b_contents, show_data = self._loader._get_file_contents(lookupfile)
contents = to_text(b_contents, errors='surrogate_or_strict')
@@ -81,8 +80,9 @@ class LookupModule(LookupBase):
contents = contents.rstrip()
ret.append(contents)
else:
- raise AnsibleParserError()
- except AnsibleParserError:
- raise AnsibleError("could not locate file in lookup: %s" % term)
+ # TODO: only add search info if abs path?
+ raise AnsibleError("file not found, use -vvvvv to see paths searched")
+ except AnsibleError as e:
+ raise AnsibleOptionsError("The 'file' lookup had an issue accessing the file '%s'" % term, orig_exc=e)
return ret