diff options
author | Sloane Hertel <19572925+s-hertel@users.noreply.github.com> | 2022-10-12 16:44:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-12 16:44:22 +0300 |
commit | f9cb6796755cda8d221a4b5f6851f0e50a4af91e (patch) | |
tree | b77b35ee34d25a531735eb90179d04a41f877bd8 /test | |
parent | cc2e7501db65193b7103195251dae5cffd8c03ca (diff) |
compile role with all parents in the dep chain (#79079)
fix inheriting from parents when role depth exceeds 3
Fixes #47023
Diffstat (limited to 'test')
13 files changed, 35 insertions, 0 deletions
diff --git a/test/integration/targets/roles/47023.yml b/test/integration/targets/roles/47023.yml new file mode 100644 index 00000000000..6b41b52f52e --- /dev/null +++ b/test/integration/targets/roles/47023.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + gather_facts: no + tasks: + - include_role: name=47023_role1 diff --git a/test/integration/targets/roles/role_dep_chain.yml b/test/integration/targets/roles/role_dep_chain.yml new file mode 100644 index 00000000000..cf99a25a0f9 --- /dev/null +++ b/test/integration/targets/roles/role_dep_chain.yml @@ -0,0 +1,6 @@ +--- +- hosts: all + tasks: + - name: static import inside dynamic include inherits defaults/vars + include_role: + name: include_import_dep_chain diff --git a/test/integration/targets/roles/roles/47023_role1/defaults/main.yml b/test/integration/targets/roles/roles/47023_role1/defaults/main.yml new file mode 100644 index 00000000000..166caa33b30 --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role1/defaults/main.yml @@ -0,0 +1 @@ +my_default: defined diff --git a/test/integration/targets/roles/roles/47023_role1/tasks/main.yml b/test/integration/targets/roles/roles/47023_role1/tasks/main.yml new file mode 100644 index 00000000000..9c408ba2edd --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role1/tasks/main.yml @@ -0,0 +1 @@ +- include_role: name=47023_role2 diff --git a/test/integration/targets/roles/roles/47023_role1/vars/main.yml b/test/integration/targets/roles/roles/47023_role1/vars/main.yml new file mode 100644 index 00000000000..bfda56b9b80 --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role1/vars/main.yml @@ -0,0 +1 @@ +my_var: defined diff --git a/test/integration/targets/roles/roles/47023_role2/tasks/main.yml b/test/integration/targets/roles/roles/47023_role2/tasks/main.yml new file mode 100644 index 00000000000..4544215f84a --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role2/tasks/main.yml @@ -0,0 +1 @@ +- include_role: name=47023_role3 diff --git a/test/integration/targets/roles/roles/47023_role3/tasks/main.yml b/test/integration/targets/roles/roles/47023_role3/tasks/main.yml new file mode 100644 index 00000000000..9479fe3f3d8 --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role3/tasks/main.yml @@ -0,0 +1 @@ +- include_role: name=47023_role4 diff --git a/test/integration/targets/roles/roles/47023_role4/tasks/main.yml b/test/integration/targets/roles/roles/47023_role4/tasks/main.yml new file mode 100644 index 00000000000..64c96e97dd6 --- /dev/null +++ b/test/integration/targets/roles/roles/47023_role4/tasks/main.yml @@ -0,0 +1,5 @@ +- debug: + msg: "Var is {{ my_var | default('undefined') }}" + +- debug: + msg: "Default is {{ my_default | default('undefined') }}" diff --git a/test/integration/targets/roles/roles/imported_from_include/tasks/main.yml b/test/integration/targets/roles/roles/imported_from_include/tasks/main.yml new file mode 100644 index 00000000000..32126f87d2b --- /dev/null +++ b/test/integration/targets/roles/roles/imported_from_include/tasks/main.yml @@ -0,0 +1,4 @@ +- assert: + that: + - inherit_var is defined + - inherit_default is defined diff --git a/test/integration/targets/roles/roles/include_import_dep_chain/defaults/main.yml b/test/integration/targets/roles/roles/include_import_dep_chain/defaults/main.yml new file mode 100644 index 00000000000..5b8a643d1a9 --- /dev/null +++ b/test/integration/targets/roles/roles/include_import_dep_chain/defaults/main.yml @@ -0,0 +1 @@ +inherit_default: default diff --git a/test/integration/targets/roles/roles/include_import_dep_chain/tasks/main.yml b/test/integration/targets/roles/roles/include_import_dep_chain/tasks/main.yml new file mode 100644 index 00000000000..84884a8d811 --- /dev/null +++ b/test/integration/targets/roles/roles/include_import_dep_chain/tasks/main.yml @@ -0,0 +1,2 @@ +- import_role: + name: imported_from_include diff --git a/test/integration/targets/roles/roles/include_import_dep_chain/vars/main.yml b/test/integration/targets/roles/roles/include_import_dep_chain/vars/main.yml new file mode 100644 index 00000000000..0d4aaa94900 --- /dev/null +++ b/test/integration/targets/roles/roles/include_import_dep_chain/vars/main.yml @@ -0,0 +1 @@ +inherit_var: var diff --git a/test/integration/targets/roles/runme.sh b/test/integration/targets/roles/runme.sh index bad02bc9d0f..1e154b795a2 100755 --- a/test/integration/targets/roles/runme.sh +++ b/test/integration/targets/roles/runme.sh @@ -29,3 +29,9 @@ fi # ensure vars scope is correct ansible-playbook vars_scope.yml -i ../../inventory "$@" + +# test nested includes get parent roles greater than a depth of 3 +[ "$(ansible-playbook 47023.yml -i ../../inventory "$@" | grep '\<\(Default\|Var\)\>' | grep -c 'is defined')" = "2" ] + +# ensure import_role called from include_role has the include_role in the dep chain +ansible-playbook role_dep_chain.yml -i ../../inventory "$@" |