Skip to content

Instantly share code, notes, and snippets.

@sivel
Created December 12, 2017 21:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sivel/d33918148e29015446259f49b8a854ba to your computer and use it in GitHub Desktop.
Save sivel/d33918148e29015446259f49b8a854ba to your computer and use it in GitHub Desktop.
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