summaryrefslogtreecommitdiff
path: root/lib/ansible/parsing
diff options
context:
space:
mode:
authorMartin Krizek <martin.krizek@gmail.com>2018-05-11 19:29:44 +0200
committerGitHub <noreply@github.com>2018-05-11 19:29:44 +0200
commitdccb0d035b92b6b1212824bec7f63a22b590962d (patch)
tree22b62712f5ee23ee4c06b3d68b5aa10a60a74d9b /lib/ansible/parsing
parent22456a57de0c45efa6cd0a274d677f5e4c5af847 (diff)
downloadansible-dccb0d035b92b6b1212824bec7f63a22b590962d.tar.gz
vault: check dir existence before creating a file (#40010)
Diffstat (limited to 'lib/ansible/parsing')
-rw-r--r--lib/ansible/parsing/vault/__init__.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ansible/parsing/vault/__init__.py b/lib/ansible/parsing/vault/__init__.py
index 7a68166d13..9a3b752482 100644
--- a/lib/ansible/parsing/vault/__init__.py
+++ b/lib/ansible/parsing/vault/__init__.py
@@ -78,6 +78,7 @@ from ansible.module_utils.six import PY3, binary_type
# Note: on py2, this zip is izip not the list based zip() builtin
from ansible.module_utils.six.moves import zip
from ansible.module_utils._text import to_bytes, to_text, to_native
+from ansible.utils.path import makedirs_safe
try:
from __main__ import display
@@ -925,6 +926,11 @@ class VaultEditor:
def create_file(self, filename, secret, vault_id=None):
""" create a new encrypted file """
+ dirname = os.path.dirname(filename)
+ if not os.path.exists(dirname):
+ display.warning("%s does not exist, creating..." % dirname)
+ makedirs_safe(dirname)
+
# FIXME: If we can raise an error here, we can probably just make it
# behave like edit instead.
if os.path.isfile(filename):