From c9040d75796e84c4bce12bfc0306ca26f035f164 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Tue, 11 Dec 2018 09:27:10 -0600 Subject: [PATCH] Don't just raise AnsibleError with the exception message (#49654) * Don't just raise AnsibleError with the exception message. Fixes #49252 * Add changelog fragment --- changelogs/fragments/vault-read-error.yml | 2 ++ lib/ansible/parsing/vault/__init__.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/vault-read-error.yml diff --git a/changelogs/fragments/vault-read-error.yml b/changelogs/fragments/vault-read-error.yml new file mode 100644 index 0000000000..e6f9c6e35c --- /dev/null +++ b/changelogs/fragments/vault-read-error.yml @@ -0,0 +1,2 @@ +bugfixes: +- vault - Improve error messages encountered when reading vault files (https://github.com/ansible/ansible/issues/49252) diff --git a/lib/ansible/parsing/vault/__init__.py b/lib/ansible/parsing/vault/__init__.py index b6967edde8..6022b5aa58 100644 --- a/lib/ansible/parsing/vault/__init__.py +++ b/lib/ansible/parsing/vault/__init__.py @@ -1030,7 +1030,10 @@ class VaultEditor: with open(filename, "rb") as fh: data = fh.read() except Exception as e: - raise AnsibleError(to_native(e)) + msg = to_native(e) + if not msg: + msg = repr(e) + raise AnsibleError('Unable to read source file (%s): %s' % (to_native(filename), msg)) return data