diff options
author | Martin Krizek <martin.krizek@gmail.com> | 2018-05-11 19:29:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-11 19:29:44 +0200 |
commit | dccb0d035b92b6b1212824bec7f63a22b590962d (patch) | |
tree | 22b62712f5ee23ee4c06b3d68b5aa10a60a74d9b /lib/ansible/parsing | |
parent | 22456a57de0c45efa6cd0a274d677f5e4c5af847 (diff) | |
download | ansible-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__.py | 6 |
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): |