mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.2 KiB
YAML
164 lines
5.2 KiB
YAML
- block:
|
|
|
|
- name: check_mode - Create another clean copy of 'subdir' not messed with by previous tests (check_mode)
|
|
copy:
|
|
src: subdir
|
|
dest: 'checkmode_subdir/'
|
|
directory_mode: 0700
|
|
local_follow: False
|
|
check_mode: true
|
|
register: check_mode_subdir_first
|
|
|
|
- name: check_mode - Stat the new dir to make sure it really doesn't exist
|
|
stat:
|
|
path: 'checkmode_subdir/'
|
|
register: check_mode_subdir_first_stat
|
|
|
|
- name: check_mode - Actually do it
|
|
copy:
|
|
src: subdir
|
|
dest: 'checkmode_subdir/'
|
|
directory_mode: 0700
|
|
local_follow: False
|
|
register: check_mode_subdir_real
|
|
|
|
- name: check_mode - Stat the new dir to make sure it really exists
|
|
stat:
|
|
path: 'checkmode_subdir/'
|
|
register: check_mode_subdir_real_stat
|
|
|
|
# Quick sanity before we move on
|
|
- assert:
|
|
that:
|
|
- check_mode_subdir_first is changed
|
|
- not check_mode_subdir_first_stat.stat.exists
|
|
- check_mode_subdir_real is changed
|
|
- check_mode_subdir_real_stat.stat.exists
|
|
|
|
# Do some finagling here. First, use check_mode to ensure it never gets
|
|
# created. Then actualy create it, and use check_mode to ensure that doing
|
|
# the same copy gets marked as no change.
|
|
#
|
|
# This same pattern repeats for several other src/dest combinations.
|
|
- name: check_mode - Ensure dest with trailing / never gets created but would be without check_mode
|
|
copy:
|
|
remote_src: true
|
|
src: 'checkmode_subdir/'
|
|
dest: 'destdir_should_never_exist_because_of_check_mode/'
|
|
follow: true
|
|
check_mode: true
|
|
register: check_mode_trailing_slash_first
|
|
|
|
- name: check_mode - Stat the new dir to make sure it really doesn't exist
|
|
stat:
|
|
path: 'destdir_should_never_exist_because_of_check_mode/'
|
|
register: check_mode_trailing_slash_first_stat
|
|
|
|
- name: check_mode - Create the above copy for real now (without check_mode)
|
|
copy:
|
|
remote_src: true
|
|
src: 'checkmode_subdir/'
|
|
dest: 'destdir_should_never_exist_because_of_check_mode/'
|
|
register: check_mode_trailing_slash_real
|
|
|
|
- name: check_mode - Stat the new dir to make sure it really exists
|
|
stat:
|
|
path: 'destdir_should_never_exist_because_of_check_mode/'
|
|
register: check_mode_trailing_slash_real_stat
|
|
|
|
- name: check_mode - Do the same copy yet again (with check_mode this time) to ensure it's marked unchanged
|
|
copy:
|
|
remote_src: true
|
|
src: 'checkmode_subdir/'
|
|
dest: 'destdir_should_never_exist_because_of_check_mode/'
|
|
check_mode: true
|
|
register: check_mode_trailing_slash_second
|
|
|
|
# Repeat the same basic pattern here.
|
|
|
|
- name: check_mode - Do another basic copy (with check_mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0444
|
|
check_mode: true
|
|
register: check_mode_foo_first
|
|
|
|
- name: check_mode - Stat the new file to make sure it really doesn't exist
|
|
stat:
|
|
path: "{{ remote_dir }}/foo-check_mode.txt"
|
|
register: check_mode_foo_first_stat
|
|
|
|
- name: check_mode - Do the same basic copy (without check_mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0444
|
|
register: check_mode_foo_real
|
|
|
|
- name: check_mode - Stat the new file to make sure it really exists
|
|
stat:
|
|
path: "{{ remote_dir }}/foo-check_mode.txt"
|
|
register: check_mode_foo_real_stat
|
|
|
|
- name: check_mode - And again (with check_mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0444
|
|
register: check_mode_foo_second
|
|
|
|
- assert:
|
|
that:
|
|
- check_mode_subdir_first is changed
|
|
|
|
- check_mode_trailing_slash_first is changed
|
|
- not check_mode_trailing_slash_first_stat.stat.exists
|
|
- check_mode_trailing_slash_real is changed
|
|
- check_mode_trailing_slash_real_stat.stat.exists
|
|
- check_mode_trailing_slash_second is not changed
|
|
|
|
- check_mode_foo_first is changed
|
|
- not check_mode_foo_first_stat.stat.exists
|
|
- check_mode_foo_real is changed
|
|
- check_mode_foo_real_stat.stat.exists
|
|
- check_mode_foo_second is not changed
|
|
|
|
- name: check_mode - Do a basic copy to setup next test (without check mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0444
|
|
|
|
- name: check_mode - Copy the same src with a different mode (check mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0666
|
|
check_mode: True
|
|
register: check_mode_file_attribute
|
|
|
|
- name: stat the file to make sure the mode was not updated in check mode
|
|
stat:
|
|
path: "{{ remote_dir }}/foo-check_mode.txt"
|
|
register: check_mode_file_attribute_stat
|
|
|
|
- name: check_mode - Copy the same src with a different mode (without check mode)
|
|
copy:
|
|
src: foo.txt
|
|
dest: "{{ remote_dir }}/foo-check_mode.txt"
|
|
mode: 0666
|
|
register: real_file_attribute
|
|
|
|
- name: stat the file to make sure the mode was updated without check mode
|
|
stat:
|
|
path: "{{ remote_dir }}/foo-check_mode.txt"
|
|
register: real_file_attribute_stat
|
|
|
|
- assert:
|
|
that:
|
|
- check_mode_file_attribute is changed
|
|
- real_file_attribute is changed
|
|
- "check_mode_file_attribute_stat.stat.mode == '0444'"
|
|
- "real_file_attribute_stat.stat.mode == '0666'"
|