|
|
|
- name: Create a destination dir
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: Create a symlink to the destination dir
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/link-to-unarchive-dir"
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
state: "link"
|
|
|
|
|
|
|
|
- name: test that unarchive works when dest is a symlink to a dir
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/link-to-unarchive-dir"
|
|
|
|
mode: "u+rwX,go+rX"
|
|
|
|
remote_src: yes
|
|
|
|
register: unarchive_11
|
|
|
|
|
|
|
|
- name: Check that file is really there
|
|
|
|
stat:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz/foo-unarchive.txt"
|
|
|
|
register: unarchive11_stat0
|
|
|
|
|
|
|
|
- name: Assert that unarchive when dest is a symlink to a dir worked
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive_11.changed == true"
|
|
|
|
- "unarchive11_stat0.stat.exists == true"
|
|
|
|
|
|
|
|
- name: remove our tar.gz unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: Create a file
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
state: touch
|
|
|
|
|
|
|
|
- name: Create a symlink to the file
|
|
|
|
file:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive-tar-gz"
|
|
|
|
path: "{{ remote_tmp_dir }}/link-to-unarchive-file"
|
|
|
|
state: "link"
|
|
|
|
|
|
|
|
- name: test that unarchive fails when dest is a link to a file
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/test-unarchive.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/link-to-unarchive-file"
|
|
|
|
mode: "u+rwX,go+rX"
|
|
|
|
remote_src: yes
|
|
|
|
ignore_errors: True
|
|
|
|
register: unarchive_12
|
|
|
|
|
|
|
|
- name: Assert that unarchive when dest is a file failed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive_12.failed == true"
|
|
|
|
|
|
|
|
- name: remove our tar.gz unarchive destination
|
|
|
|
file:
|
|
|
|
path: '{{ remote_tmp_dir }}/test-unarchive-tar-gz'
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: Create a destination dir
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-symlink"
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: Create files
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-symlink/{{ item }}"
|
|
|
|
state: touch
|
|
|
|
loop:
|
|
|
|
- file1
|
|
|
|
- file2
|
|
|
|
|
|
|
|
- name: Create a symlink to the file
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-symlink/link1"
|
|
|
|
src: "{{ remote_tmp_dir }}/test-symlink/file1"
|
|
|
|
state: link
|
|
|
|
|
|
|
|
- name: Create archive of symlink
|
|
|
|
shell: tar czvf {{ remote_tmp_dir }}/link1.tar.gz link1 chdir={{ remote_tmp_dir }}/test-symlink
|
|
|
|
|
|
|
|
- name: Change target of symlink
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-symlink/link1"
|
|
|
|
src: "{{ remote_tmp_dir }}/test-symlink/file2"
|
|
|
|
state: link
|
|
|
|
|
|
|
|
- name: Unarchive when symlink differs
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/link1.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-symlink"
|
|
|
|
remote_src: yes
|
|
|
|
register: unarchive_13
|
|
|
|
|
|
|
|
- name: Assert that unarchive was performed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- unarchive_13.changed == true
|
|
|
|
|
|
|
|
- name: Unarchive when symlink is the same
|
|
|
|
unarchive:
|
|
|
|
src: "{{ remote_tmp_dir }}/link1.tar.gz"
|
|
|
|
dest: "{{ remote_tmp_dir }}/test-symlink"
|
|
|
|
remote_src: yes
|
|
|
|
register: unarchive_13
|
|
|
|
|
|
|
|
- name: Assert that unarchive was not performed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "unarchive_13.changed == false"
|
|
|
|
|
|
|
|
- name: Remove files
|
|
|
|
file:
|
|
|
|
path: "{{ remote_tmp_dir }}/test-symlink/{{ item }}"
|
|
|
|
state: absent
|
|
|
|
with_items:
|
|
|
|
- file1
|
|
|
|
- file2
|
|
|
|
- link1
|
|
|
|
- link1.tar.gz
|