mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-11 23:25:28 +01:00
authorized_keys - consistent behavior in check_mode
Previously check_mode would incorrectly return changed=False even when a change would have taken place if ran without check_mode, with integration tests that confirmed this incorrect behavior. Also the module did not correctly populate the return values when run in check_mode. Both of these issues are resolved in this PR. Fixes https://github.com/ansible-collections/ansible.posix/issues/37 Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
parent
0d0f8217cf
commit
86a5950efa
3 changed files with 18 additions and 10 deletions
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
bugfixes:
|
||||||
|
- authorized_keys - fix inconsistent return value for check mode (https://github.com/ansible-collections/ansible.posix/issues/37)
|
||||||
|
|
@ -635,13 +635,9 @@ def enforce_state(module, params):
|
||||||
}
|
}
|
||||||
params['diff'] = diff
|
params['diff'] = diff
|
||||||
|
|
||||||
if module.check_mode:
|
if not module.check_mode:
|
||||||
module.exit_json(changed=True, diff=diff)
|
writefile(module, filename, new_content)
|
||||||
writefile(module, filename, new_content)
|
|
||||||
params['changed'] = True
|
params['changed'] = True
|
||||||
else:
|
|
||||||
if module.check_mode:
|
|
||||||
module.exit_json(changed=False)
|
|
||||||
|
|
||||||
return params
|
return params
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -410,12 +410,13 @@
|
||||||
# -------------------------------------------------------------
|
# -------------------------------------------------------------
|
||||||
# check mode
|
# check mode
|
||||||
|
|
||||||
- name: copy an existing file in place with comments
|
- name: CHECK MODE | copy an existing file in place with comments
|
||||||
copy:
|
copy:
|
||||||
src: existing_authorized_keys
|
src: existing_authorized_keys
|
||||||
dest: "{{ output_dir | expanduser }}/authorized_keys"
|
dest: "{{ output_dir | expanduser }}/authorized_keys"
|
||||||
|
|
||||||
- authorized_key:
|
- name: CHECK MODE | add key in check mode to validate return codes
|
||||||
|
authorized_key:
|
||||||
user: root
|
user: root
|
||||||
key: "{{ multiple_key_different_order_2 }}"
|
key: "{{ multiple_key_different_order_2 }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
@ -423,13 +424,21 @@
|
||||||
check_mode: True
|
check_mode: True
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: assert that the file was not changed
|
- name: CHECK MODE | assert that authorized_keys return values are consistent
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- 'result.changed == True'
|
||||||
|
- '"user" in result'
|
||||||
|
- '"key" in result'
|
||||||
|
|
||||||
|
- name: CHECK MODE | recopy authorized_keys to ensure it was not changed
|
||||||
copy:
|
copy:
|
||||||
src: existing_authorized_keys
|
src: existing_authorized_keys
|
||||||
dest: "{{ output_dir | expanduser }}/authorized_keys"
|
dest: "{{ output_dir | expanduser }}/authorized_keys"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- name: CHECK MODE | assert that the authorized_keys file was not changed
|
||||||
|
assert:
|
||||||
that:
|
that:
|
||||||
- 'result.changed == False'
|
- 'result.changed == False'
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue