Created
December 12, 2017 21:28
-
-
Save sivel/d33918148e29015446259f49b8a854ba to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/ansible/cli/__init__.py b/lib/ansible/cli/__init__.py | |
index 24100f10c3..361b016bd5 100644 | |
--- a/lib/ansible/cli/__init__.py | |
+++ b/lib/ansible/cli/__init__.py | |
@@ -34,10 +34,10 @@ from abc import ABCMeta, abstractmethod | |
import ansible | |
from ansible import constants as C | |
-from ansible.errors import AnsibleOptionsError, AnsibleError | |
+from ansible.errors import AnsibleOptionsError, AnsibleError, AnsibleFileNotFound | |
from ansible.inventory.manager import InventoryManager | |
from ansible.module_utils.six import with_metaclass, string_types | |
-from ansible.module_utils._text import to_bytes, to_text | |
+from ansible.module_utils._text import to_bytes, to_text, to_native | |
from ansible.parsing.dataloader import DataLoader | |
from ansible.release import __version__ | |
from ansible.utils.path import unfrackpath | |
@@ -291,9 +291,13 @@ class CLI(with_metaclass(ABCMeta, object)): | |
# assuming anything else is a password file | |
display.vvvvv('Reading vault password file: %s' % vault_id_value) | |
# read vault_pass from a file | |
- file_vault_secret = get_file_vault_secret(filename=vault_id_value, | |
- vault_id=vault_id_name, | |
- loader=loader) | |
+ try: | |
+ file_vault_secret = get_file_vault_secret(filename=vault_id_value, | |
+ vault_id=vault_id_name, | |
+ loader=loader) | |
+ except AnsibleFileNotFound as e: | |
+ display.warning(to_native(e)) | |
+ continue | |
# an invalid password file will error globally | |
try: | |
diff --git a/lib/ansible/parsing/vault/__init__.py b/lib/ansible/parsing/vault/__init__.py | |
index 0c9e2e53c6..bc69bb3c64 100644 | |
--- a/lib/ansible/parsing/vault/__init__.py | |
+++ b/lib/ansible/parsing/vault/__init__.py | |
@@ -72,7 +72,7 @@ try: | |
except ImportError: | |
pass | |
-from ansible.errors import AnsibleError, AnsibleAssertionError | |
+from ansible.errors import AnsibleError, AnsibleAssertionError, AnsibleFileNotFound | |
from ansible import constants as C | |
from ansible.module_utils.six import PY3, binary_type | |
# Note: on py2, this zip is izip not the list based zip() builtin | |
@@ -378,7 +378,7 @@ def get_file_vault_secret(filename=None, vault_id=None, encoding=None, loader=No | |
this_path = os.path.realpath(os.path.expanduser(filename)) | |
if not os.path.exists(this_path): | |
- raise AnsibleError("The vault password file %s was not found" % this_path) | |
+ raise AnsibleFileNotFound("The vault password file %s was not found" % this_path) | |
if loader.is_executable(this_path): | |
if script_is_client(filename): |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment