[stable-2.5] Don't pass file_name to DataLoader.load in script inventory plugin (#45428) (#45441)

* Don't pass file_name to DataLoader.load in script inventory plugin. Fixes #34164

* Add changelog fragment
(cherry picked from commit 263b9fa)

Co-authored-by: Matt Martz <matt@sivel.net>
pull/46131/head
Matt Martz 6 years ago committed by Matt Davis
parent 9046c3e63c
commit d1ef02c714

@ -0,0 +1,2 @@
bugfixes:
- script inventory plugin - Don't pass file_name to DataLoader.load, which will prevent misleading error messages (https://github.com/ansible/ansible/issues/34164)

@ -119,7 +119,7 @@ class InventoryModule(BaseInventoryPlugin, Cacheable):
raise AnsibleError("Inventory {0} contained characters that cannot be interpreted as UTF-8: {1}".format(path, to_native(e))) raise AnsibleError("Inventory {0} contained characters that cannot be interpreted as UTF-8: {1}".format(path, to_native(e)))
try: try:
self._cache[cache_key] = self.loader.load(data, file_name=path) self._cache[cache_key] = self.loader.load(data)
except Exception as e: except Exception as e:
raise AnsibleError("failed to parse executable inventory script results from {0}: {1}\n{2}".format(path, to_native(e), err)) raise AnsibleError("failed to parse executable inventory script results from {0}: {1}\n{2}".format(path, to_native(e), err))

Loading…
Cancel
Save