|
|
|
- name: create our unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{remote_tmp_dir}}/test-unarchive-tar-gz'
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: test invalid modes
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "{{ item }}"
|
|
|
|
list_files: True
|
|
|
|
register: unarchive_mode_errors
|
|
|
|
ignore_errors: yes
|
|
|
|
loop:
|
|
|
|
- u=foo
|
|
|
|
- foo=r
|
|
|
|
- ufoo=r
|
|
|
|
- abc=r
|
|
|
|
- ao=r
|
|
|
|
- oa=r
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- item.failed
|
|
|
|
- "'bad symbolic permission for mode: ' + item.item == item.details"
|
|
|
|
loop: "{{ unarchive_mode_errors.results }}"
|
|
|
|
|
|
|
|
- name: unarchive and set mode to 0600, directories 0700
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "u+rwX,g-rwx,o-rwx"
|
|
|
|
list_files: True
|
|
|
|
register: unarchive06
|
|
|
|
|
|
|
|
- name: Test that the file modes were changed
|
|
|
|
stat:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz/foo-unarchive.txt"
|
|
|
|
register: unarchive06_stat
|
|
|
|
|
|
|
|
- name: Test that the file modes were changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive06.changed == true"
|
|
|
|
- "unarchive06_stat.stat.mode == '0600'"
|
|
|
|
# Verify that file list is generated
|
|
|
|
- "'files' in unarchive06"
|
|
|
|
- "{{unarchive06['files']| length}} == 1"
|
|
|
|
- "'foo-unarchive.txt' in unarchive06['files']"
|
|
|
|
|
|
|
|
- name: remove our tar.gz unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: create our unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{remote_tmp_dir}}/test-unarchive-tar-gz'
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: unarchive over existing extraction and set mode to 0644
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "u+rwX,g-wx,o-wx,g+r,o+r"
|
|
|
|
register: unarchive06_2
|
|
|
|
|
|
|
|
- name: Test that the file modes were changed
|
|
|
|
stat:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz/foo-unarchive.txt"
|
|
|
|
register: unarchive06_2_stat
|
|
|
|
|
|
|
|
- debug:
|
|
|
|
var: unarchive06_2_stat.stat.mode
|
|
|
|
|
|
|
|
- name: Test that the files were changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive06_2.changed == true"
|
|
|
|
- "unarchive06_2_stat.stat.mode == '0644'"
|
|
|
|
|
|
|
|
- name: Repeat the last request to verify no changes
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "u+rwX-x,g-wx,o-wx,g+r,o+r"
|
|
|
|
list_files: True
|
|
|
|
register: unarchive07
|
|
|
|
|
|
|
|
- name: Test that the files were not changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive07.changed == false"
|
|
|
|
# Verify that file list is generated
|
|
|
|
- "'files' in unarchive07"
|
|
|
|
- "{{unarchive07['files']| length}} == 1"
|
|
|
|
- "'foo-unarchive.txt' in unarchive07['files']"
|
|
|
|
|
|
|
|
- name: remove our tar.gz unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: create our unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{remote_tmp_dir}}/test-unarchive-zip'
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: unarchive and set mode to 0601, directories 0700
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.zip"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-zip"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "u+rwX-x,g-rwx,o=x"
|
|
|
|
list_files: True
|
|
|
|
register: unarchive08
|
|
|
|
|
|
|
|
- name: Test that the file modes were changed
|
|
|
|
stat:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-zip/foo-unarchive.txt"
|
|
|
|
register: unarchive08_stat
|
|
|
|
|
|
|
|
- name: Test that the file modes were changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive08.changed == true"
|
|
|
|
- "unarchive08_stat.stat.mode == '0601'"
|
|
|
|
# Verify that file list is generated
|
|
|
|
- "'files' in unarchive08"
|
|
|
|
- "{{unarchive08['files']| length}} == 3"
|
|
|
|
- "'foo-unarchive.txt' in unarchive08['files']"
|
|
|
|
- "'foo-unarchive-777.txt' in unarchive08['files']"
|
|
|
|
- "'FOO-UNAR.TXT' in unarchive08['files']"
|
|
|
|
|
|
|
|
- name: unarchive zipfile a second time and set mode to 0601, directories 0700
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.zip"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-unarchive-zip"
|
|
|
|
remote_src: yes
|
|
|
|
mode: "u+rwX-x,g-rwx,o=x"
|
|
|
|
list_files: True
|
|
|
|
register: unarchive08
|
|
|
|
|
|
|
|
- name: Test that the file modes were not changed
|
|
|
|
stat:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-zip/foo-unarchive.txt"
|
|
|
|
register: unarchive08_stat
|
|
|
|
|
|
|
|
- debug:
|
|
|
|
var: unarchive08
|
|
|
|
|
|
|
|
- debug:
|
|
|
|
var: unarchive08_stat
|
|
|
|
|
|
|
|
- name: Test that the files did not change
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive08.changed == false"
|
|
|
|
- "unarchive08_stat.stat.mode == '0601'"
|
|
|
|
# Verify that file list is generated
|
|
|
|
- "'files' in unarchive08"
|
|
|
|
- "{{unarchive08['files']| length}} == 3"
|
|
|
|
- "'foo-unarchive.txt' in unarchive08['files']"
|
|
|
|
- "'foo-unarchive-777.txt' in unarchive08['files']"
|
|
|
|
- "'FOO-UNAR.TXT' in unarchive08['files']"
|
|
|
|
|
|
|
|
- name: remove our zip unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{ remote_tmp_dir }}/test-unarchive-zip'
|
|
|
|
state: absent
|