diff options
author | Jeff Bradberry <jeff.bradberry@gmail.com> | 2014-12-14 20:48:36 -0500 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2015-02-17 14:38:09 -0600 |
commit | 1b022e9c91e72d64ff1513828fa67f32ba855173 (patch) | |
tree | b8404612a975f453e90d00139179db44dcadda2b | |
parent | 0cdd237368c7e9a0b03654f3d2a55e9b2b81cc50 (diff) | |
download | ansible-modules-core-1b022e9c91e72d64ff1513828fa67f32ba855173.tar.gz |
Fix breakage in lineinfile check mode when target file does not exist.
Similarly to https://github.com/ansible/ansible/issues/6182, checking of the file attributes should be avoided in check mode when the file didn't originally exist.
Also, avoid creating parent directories in check mode.
Fixes https://github.com/ansible/ansible/issues/9546
-rw-r--r-- | files/lineinfile.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/files/lineinfile.py b/files/lineinfile.py index c72b7f9d..9660979e 100644 --- a/files/lineinfile.py +++ b/files/lineinfile.py @@ -192,7 +192,7 @@ def present(module, dest, regexp, line, insertafter, insertbefore, create, if not create: module.fail_json(rc=257, msg='Destination %s does not exist !' % dest) destpath = os.path.dirname(dest) - if not os.path.exists(destpath): + if not os.path.exists(destpath) and not module.check_mode: os.makedirs(destpath) lines = [] else: @@ -282,6 +282,9 @@ def present(module, dest, regexp, line, insertafter, insertbefore, create, backupdest = module.backup_local(dest) write_changes(module, lines, dest) + if module.check_mode and not os.path.exists(dest): + module.exit_json(changed=changed, msg=msg, backup=backupdest) + msg, changed = check_file_attrs(module, changed, msg) module.exit_json(changed=changed, msg=msg, backup=backupdest) |