Fix check mode for blockinfile when 'create: yes' is specified (#2413)
Make the module more semantically similar to lineinfile when the destination does not exist. This fixes #2021.
This commit is contained in:
parent
cd2dbed79c
commit
fc417a5ab0
1 changed files with 9 additions and 2 deletions
|
@ -212,7 +212,8 @@ def main():
|
|||
module.fail_json(rc=256,
|
||||
msg='Destination %s is a directory !' % dest)
|
||||
|
||||
if not os.path.exists(dest):
|
||||
path_exists = os.path.exists(dest)
|
||||
if not path_exists:
|
||||
if not module.boolean(params['create']):
|
||||
module.fail_json(rc=257,
|
||||
msg='Destination %s does not exist !' % dest)
|
||||
|
@ -230,6 +231,9 @@ def main():
|
|||
marker = params['marker']
|
||||
present = params['state'] == 'present'
|
||||
|
||||
if not present and not path_exists:
|
||||
module.exit_json(changed=False, msg="File not present")
|
||||
|
||||
if insertbefore is None and insertafter is None:
|
||||
insertafter = 'EOF'
|
||||
|
||||
|
@ -299,10 +303,13 @@ def main():
|
|||
changed = True
|
||||
|
||||
if changed and not module.check_mode:
|
||||
if module.boolean(params['backup']) and os.path.exists(dest):
|
||||
if module.boolean(params['backup']) and path_exists:
|
||||
module.backup_local(dest)
|
||||
write_changes(module, result, dest)
|
||||
|
||||
if module.check_mode and not path_exists:
|
||||
module.exit_json(changed=changed, msg=msg)
|
||||
|
||||
msg, changed = check_file_attrs(module, changed, msg)
|
||||
module.exit_json(changed=changed, msg=msg)
|
||||
|
||||
|
|
Loading…
Reference in a new issue