Include parent role vars as well as _role_vars (#75034)

pull/75196/head
Sloane Hertel 5 years ago committed by GitHub
parent 21ba2967de
commit bd03fa811b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -456,6 +456,7 @@ class Role(Base, Conditional, Taggable, CollectionSearch):
if dep_chain:
for parent in dep_chain:
inherited_vars = combine_vars(inherited_vars, parent.vars)
inherited_vars = combine_vars(inherited_vars, parent._role_vars)
return inherited_vars

@ -0,0 +1,4 @@
- hosts: localhost
roles:
- A
- B

@ -0,0 +1,4 @@
dependencies:
- role: common_dep
vars:
test_var: A

@ -0,0 +1,4 @@
dependencies:
- role: common_dep
vars:
test_var: B

@ -0,0 +1,4 @@
dependencies:
- role: nested_dep
vars:
nested_var: "{{ test_var }}"

@ -0,0 +1,3 @@
allow_duplicates: yes
dependencies:
- child_nested_dep

@ -0,0 +1,5 @@
- debug:
var: nested_var
- debug:
var: var_precedence

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -eux
ansible-playbook -i ../../inventory play.yml "$@" | tee out.txt
test "$(grep out.txt -ce '"nested_var": "A"')" == 1
test "$(grep out.txt -ce '"nested_var": "B"')" == 1
test "$(grep out.txt -ce '"var_precedence": "dependency"')" == 2
Loading…
Cancel
Save