diff options
author | Dag Wieers <dag@wieers.com> | 2016-12-09 10:18:15 +0100 |
---|---|---|
committer | Brian Coca <brian.coca+git@gmail.com> | 2016-12-14 11:18:31 -0500 |
commit | 268645c17a98fd65688b956e888ce8a9559488d1 (patch) | |
tree | 19fe4516023888e03ccab689396396adc5e8f74c /test | |
parent | e715221a668e3fb91c479a46b3576dcc82260098 (diff) | |
download | ansible-268645c17a98fd65688b956e888ce8a9559488d1.tar.gz |
Fix regression in search path behaviour
This PR fixes a few issues:
- Missing role parent directory for relative paths
- Fix integration tests (add missing stage)
- Redesign integration tests
- Incorrect order with tasks-lookups
- Duplicate paths are listed
- Repetitive tasks/tasks or files/files were possible
==== using copy with test.txt
Before:
```
491 1481281038.29393: search_path:
/home/dag/home-made/ansible.testing/roles/test134/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/test.txt
/home/dag/home-made/ansible.testing/files/test.txt
/home/dag/home-made/ansible.testing/test.txt
```
After:
```
32505 1481280963.22418: search_path:
/home/dag/home-made/ansible.testing/roles/test134/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/test.txt
/home/dag/home-made/ansible.testing/files/test.txt
/home/dag/home-made/ansible.testing/test.txt
```
==== Using copy with files/test.txt
Before:
```
31523 1481280499.63052: search_path:
/home/dag/home-made/ansible.testing/roles/test134/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/files/test.txt
/home/dag/home-made/ansible.testing/files/files/test.txt
/home/dag/home-made/ansible.testing/files/test.txt
```
After:
```
31110 1481280299.38778: search_path:
/home/dag/home-made/ansible.testing/roles/test134/files/test.txt
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt
/home/dag/home-made/ansible.testing/files/test.txt
```
==== Using template with files/test.txt.j2
Before:
```
30074 1481280064.15191: search_path:
/home/dag/home-made/ansible.testing/roles/test134/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/tasks/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/tasks/tasks/files/test.txt.j2
/home/dag/home-made/ansible.testing/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/files/test.txt.j2
```
After:
```
29201 1481279823.52752: search_path:
/home/dag/home-made/ansible.testing/roles/test134/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/tasks/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/roles/test134/tasks/files/test.txt.j2
/home/dag/home-made/ansible.testing/templates/files/test.txt.j2
/home/dag/home-made/ansible.testing/files/test.txt.j2
```
This fixes #19048
(cherry picked from commit 7c71c678fae64f6962604b76664dd320128130d1)
Diffstat (limited to 'test')
-rw-r--r-- | test/integration/lookup_paths/play.yml | 55 | ||||
-rw-r--r-- | test/integration/lookup_paths/testplay.yml | 7 |
2 files changed, 26 insertions, 36 deletions
diff --git a/test/integration/lookup_paths/play.yml b/test/integration/lookup_paths/play.yml index 26a9ce10b9..bded090086 100644 --- a/test/integration/lookup_paths/play.yml +++ b/test/integration/lookup_paths/play.yml @@ -6,53 +6,40 @@ - file: path={{playbook_dir}}/files state=directory - file: path={{playbook_dir}}/roles/showfile/files state=directory - copy: dest={{playbook_dir}}/roles/showfile/files/testfile content='in role files' - - copy: dest={{playbook_dir}}/roles/showfile/tasks/testfile content='in role tasks' - copy: dest={{playbook_dir}}/roles/showfile/testfile content='in role' + - copy: dest={{playbook_dir}}/roles/showfile/tasks/testfile content='in role tasks' - copy: dest={{playbook_dir}}/files/testfile content='in files' - copy: dest={{playbook_dir}}/testfile content='in local' - - set_fact: role_out="in role files" play_out="in files" stage='setup' - include: testplay.yml - -- name: remove from role/files - hosts: testhost - connection: local - gather_facts: false - tasks: - - file: path={{playbook_dir}}/roles/showfile/files/testfile state=absent - - set_fact: role_out="in role tasks" play_out="in files" stage='remove 1' + vars: + remove: nothing + role_out: in role files + play_out: in files - include: testplay.yml - -- name: remove from role/tasks - hosts: testhost - connection: local - gather_facts: false - tasks: - - file: path={{playbook_dir}}/roles/showfile/tasks/testfile state=absent - - set_fact: role_out="in files" play_out="in files" stage='remote 2' + vars: + remove: roles/showfile/files/testfile + role_out: in role + play_out: in files - include: testplay.yml - -- name: remove from role dir - hosts: testhost - connection: local - gather_facts: false - tasks: - - file: path={{playbook_dir}}/roles/showfile/testfile state=absent - - set_fact: role_out="in files" play_out="in files" stage='remove 3' + vars: + remove: roles/showfile/testfile + role_out: in role tasks + play_out: in files - include: testplay.yml - -- name: remove from play/files - hosts: testhost - connection: local - gather_facts: false - tasks: - - file: path={{playbook_dir}}/files/testfile state=absent - - set_fact: role_out="in local" play_out="in local" stage='remove 4' + vars: + remove: roles/showfile/tasks/testfile + role_out: in files + play_out: in files - include: testplay.yml + vars: + remove: files/testfile + role_out: in local + play_out: in local - name: cleanup hosts: testhost diff --git a/test/integration/lookup_paths/testplay.yml b/test/integration/lookup_paths/testplay.yml index 8bf4be2c08..a2055158ee 100644 --- a/test/integration/lookup_paths/testplay.yml +++ b/test/integration/lookup_paths/testplay.yml @@ -2,13 +2,16 @@ hosts: testhost connection: local gather_facts: false + pre_tasks: + - name: remove {{ remove }} + file: path={{ playbook_dir }}/{{ remove }} state=absent roles: - showfile - tasks: + post_tasks: - name: from play set_fact: play_result="{{lookup('file', 'testfile')}}" - - name: output output {{stage}} + - name: output stage {{ remove }} removed debug: msg="play> {{play_out}}, role> {{role_out}}" - name: verify that result match expected |