mirror of https://github.com/ansible/ansible.git
Make builtin.file modification times support check_mode (#76973)
* Make builtin.file modification times support check_mode * Add integration testpull/76991/head
parent
0d40423f1c
commit
522f9d1050
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible.builtin.file modification_time supports check_mode
|
||||
@ -0,0 +1,70 @@
|
||||
# file module tests for dealing with modification_time
|
||||
|
||||
- name: Initialize the test output dir
|
||||
import_tasks: initialize.yml
|
||||
|
||||
- name: Setup the modification time for the tests
|
||||
set_fact:
|
||||
modification_timestamp: "202202081414.00"
|
||||
|
||||
- name: Get stat info for the file
|
||||
stat:
|
||||
path: "{{ output_file }}"
|
||||
register: initial_file_stat
|
||||
|
||||
- name: Set a modification time in check_mode
|
||||
ansible.builtin.file:
|
||||
path: "{{ output_file }}"
|
||||
modification_time: "{{ modification_timestamp }}"
|
||||
modification_time_format: "%Y%m%d%H%M.%S"
|
||||
check_mode: true
|
||||
register: file_change_check_mode
|
||||
|
||||
- name: Re-stat the file
|
||||
stat:
|
||||
path: "{{ output_file }}"
|
||||
register: check_mode_stat
|
||||
|
||||
- name: Confirm check_mode did not change the file
|
||||
assert:
|
||||
that:
|
||||
- initial_file_stat.stat.mtime == check_mode_stat.stat.mtime
|
||||
# Ensure the changed flag was set
|
||||
- file_change_check_mode.changed
|
||||
# Ensure the diff is present
|
||||
# Note: file diff always contains the path
|
||||
- file_change_check_mode.diff.after | length > 1
|
||||
|
||||
- name: Set a modification time for real
|
||||
ansible.builtin.file:
|
||||
path: "{{ output_file }}"
|
||||
modification_time: "{{ modification_timestamp }}"
|
||||
modification_time_format: "%Y%m%d%H%M.%S"
|
||||
register: file_change_no_check_mode
|
||||
|
||||
- name: Stat of the file after the change
|
||||
stat:
|
||||
path: "{{ output_file }}"
|
||||
register: change_stat
|
||||
|
||||
- name: Confirm the modification time changed
|
||||
assert:
|
||||
that:
|
||||
- initial_file_stat.stat.mtime != change_stat.stat.mtime
|
||||
- file_change_no_check_mode.changed
|
||||
# Note: file diff always contains the path
|
||||
- file_change_no_check_mode.diff.after | length > 1
|
||||
|
||||
- name: Set a modification time a second time to confirm no changes or diffs
|
||||
ansible.builtin.file:
|
||||
path: "{{ output_file }}"
|
||||
modification_time: "{{ modification_timestamp }}"
|
||||
modification_time_format: "%Y%m%d%H%M.%S"
|
||||
register: file_change_no_check_mode_second
|
||||
|
||||
- name: Confirm no changes made registered
|
||||
assert:
|
||||
that:
|
||||
- not file_change_no_check_mode_second.changed
|
||||
# Note: file diff always contains the path
|
||||
- file_change_no_check_mode_second.diff.after | length == 1
|
||||
Loading…
Reference in New Issue