|
|
|
- name: Test unarchiving twice as unprivileged user
|
|
|
|
vars:
|
|
|
|
ansible_become: yes
|
|
|
|
ansible_become_user: "{{ test_user_name }}"
|
|
|
|
ansible_become_password: "{{ test_user_plaintext_password }}"
|
|
|
|
block:
|
|
|
|
- name: prep our file
|
|
|
|
copy:
|
|
|
|
src: foo.txt
|
|
|
|
dest: "{{ test_user.home }}/foo-unarchive.txt"
|
|
|
|
mode: preserve
|
|
|
|
|
|
|
|
- name: Prep a zip file as {{ test_user.name }} user
|
|
|
|
shell: zip unarchivetest1-unarchive.zip foo-unarchive.txt
|
|
|
|
args:
|
|
|
|
chdir: "{{ test_user.home }}"
|
|
|
|
creates: "{{ test_user.home }}/unarchivetest1-unarchive.zip"
|
|
|
|
|
|
|
|
- name: create our zip unarchive destination as {{ test_user.name }} user
|
|
|
|
file:
|
|
|
|
path: "{{ test_user.home }}/unarchivetest1-unarchive-zip"
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: unarchive a zip file as {{ test_user.name }} user
|
|
|
|
unarchive:
|
|
|
|
src: "{{ test_user.home }}/unarchivetest1-unarchive.zip"
|
|
|
|
dest: "{{ test_user.home }}/unarchivetest1-unarchive-zip"
|
|
|
|
remote_src: yes
|
|
|
|
list_files: True
|
|
|
|
register: unarchive10
|
|
|
|
|
|
|
|
- name: stat the unarchived file
|
|
|
|
stat:
|
|
|
|
path: "{{ test_user.home }}/unarchivetest1-unarchive-zip/foo-unarchive.txt"
|
|
|
|
register: archive_path
|
|
|
|
|
|
|
|
- name: verify that the tasks performed as expected
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- unarchive10 is changed
|
|
|
|
# Verify that file list is generated
|
|
|
|
- "'files' in unarchive10"
|
|
|
|
- "{{unarchive10['files']| length}} == 1"
|
|
|
|
- "'foo-unarchive.txt' in unarchive10['files']"
|
|
|
|
- archive_path.stat.exists
|
|
|
|
|
|
|
|
- name: repeat the last request to verify no changes
|
|
|
|
unarchive:
|
|
|
|
src: "{{ test_user.home }}/unarchivetest1-unarchive.zip"
|
|
|
|
dest: "{{ test_user.home }}/unarchivetest1-unarchive-zip"
|
|
|
|
remote_src: yes
|
|
|
|
list_files: True
|
|
|
|
register: unarchive10b
|
|
|
|
|
|
|
|
# Due to a bug in the date calculation used to determine if a change
|
|
|
|
# was made or not, this check is unreliable. This seems to only happen on
|
|
|
|
# Ubuntu 1604.
|
|
|
|
# https://github.com/ansible/ansible/blob/58145dff9ca1a713f8ed295a0076779a91c41cba/lib/ansible/modules/unarchive.py#L472-L474
|
|
|
|
- name: Check that unarchiving again reports no change
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- unarchive10b is not changed
|
|
|
|
ignore_errors: yes
|