ac5f3f8bef
Add integration tests for unarchiving as unprivileged user Break tasks into separate files for easier reading and maintenance Create a user by specifying a default group of 'staff' for macOS. The user module does not actually remove the user directory on macOS, so explicitly remove it. Put the removal tasks in an always block to ensure they always run Co-authored-by: Philip Douglass <philip.douglass@amadeus.com> Co-authored-by: Sam Doran <sdoran@redhat.com>
151 lines
4.4 KiB
YAML
151 lines
4.4 KiB
YAML
- name: create our unarchive destination
|
|
file:
|
|
path: '{{remote_tmp_dir}}/test-unarchive-tar-gz'
|
|
state: directory
|
|
|
|
- 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
|