summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSloane Hertel <19572925+s-hertel@users.noreply.github.com>2021-09-24 15:30:35 -0400
committerGitHub <noreply@github.com>2021-09-24 15:30:35 -0400
commit845935f74f55ffa70d6e452a1714a68c8a30ac63 (patch)
tree1ccc53fafa269c00cf3b5e9af62c801df2af255a
parent6a5d6896fd78b94894fc731a7f703cf893457d7c (diff)
downloadansible-845935f74f55ffa70d6e452a1714a68c8a30ac63.tar.gz
Revert "Compile role with parents in the task's dependency chain (#75165)" (#75779)
This reverts commit 440cf15aeb134e7df3969d4481dbe027358d74db.
-rw-r--r--changelogs/fragments/75165-fix-role-dep-chain.yaml4
-rw-r--r--lib/ansible/playbook/role_include.py6
-rw-r--r--test/integration/targets/roles/39543.yml7
-rw-r--r--test/integration/targets/roles/47023.yml5
-rw-r--r--test/integration/targets/roles/roles/39543_role1/tasks/main.yml5
-rw-r--r--test/integration/targets/roles/roles/39543_role2/tasks/main.yml2
-rw-r--r--test/integration/targets/roles/roles/39543_role3/meta/main.yml2
-rw-r--r--test/integration/targets/roles/roles/39543_role3/tasks/main.yml2
-rw-r--r--test/integration/targets/roles/roles/47023_role1/defaults/main.yml1
-rw-r--r--test/integration/targets/roles/roles/47023_role1/tasks/main.yml1
-rw-r--r--test/integration/targets/roles/roles/47023_role1/vars/main.yml1
-rw-r--r--test/integration/targets/roles/roles/47023_role2/tasks/main.yml1
-rw-r--r--test/integration/targets/roles/roles/47023_role3/tasks/main.yml1
-rw-r--r--test/integration/targets/roles/roles/47023_role4/tasks/main.yml5
-rwxr-xr-xtest/integration/targets/roles/runme.sh11
15 files changed, 5 insertions, 49 deletions
diff --git a/changelogs/fragments/75165-fix-role-dep-chain.yaml b/changelogs/fragments/75165-fix-role-dep-chain.yaml
deleted file mode 100644
index c52c0111e0..0000000000
--- a/changelogs/fragments/75165-fix-role-dep-chain.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-bugfixes:
- - include_role - Only inherit from role parents in the current task dependency chain (https://github.com/ansible/ansible/issues/39543).
- - include_role - Inherit from role parents beyond a depth of 3 (https://github.com/ansible/ansible/issues/47023).
- - include_role - Inherit from role parents in the order of the task dependency chain.
diff --git a/lib/ansible/playbook/role_include.py b/lib/ansible/playbook/role_include.py
index 9b493d9df9..c6227031ca 100644
--- a/lib/ansible/playbook/role_include.py
+++ b/lib/ansible/playbook/role_include.py
@@ -100,7 +100,11 @@ class IncludeRole(TaskInclude):
# compile role with parent roles as dependencies to ensure they inherit
# variables
- dep_chain = self.get_dep_chain() or []
+ if not self._parent_role:
+ dep_chain = []
+ else:
+ dep_chain = list(self._parent_role._parents)
+ dep_chain.append(self._parent_role)
p_block = self.build_parent_block()
diff --git a/test/integration/targets/roles/39543.yml b/test/integration/targets/roles/39543.yml
deleted file mode 100644
index 94e9e6c9f4..0000000000
--- a/test/integration/targets/roles/39543.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- hosts: all
- gather_facts: no
- roles:
- - 39543_role1
- - role: 39543_role3
- when: false
diff --git a/test/integration/targets/roles/47023.yml b/test/integration/targets/roles/47023.yml
deleted file mode 100644
index 6b41b52f52..0000000000
--- a/test/integration/targets/roles/47023.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-- hosts: all
- gather_facts: no
- tasks:
- - include_role: name=47023_role1
diff --git a/test/integration/targets/roles/roles/39543_role1/tasks/main.yml b/test/integration/targets/roles/roles/39543_role1/tasks/main.yml
deleted file mode 100644
index 67c50ebedb..0000000000
--- a/test/integration/targets/roles/roles/39543_role1/tasks/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-- debug:
- msg: 'role1'
-
-- include_role:
- name: 39543_role2
diff --git a/test/integration/targets/roles/roles/39543_role2/tasks/main.yml b/test/integration/targets/roles/roles/39543_role2/tasks/main.yml
deleted file mode 100644
index 4870224356..0000000000
--- a/test/integration/targets/roles/roles/39543_role2/tasks/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-- debug:
- msg: 'role2'
diff --git a/test/integration/targets/roles/roles/39543_role3/meta/main.yml b/test/integration/targets/roles/roles/39543_role3/meta/main.yml
deleted file mode 100644
index 3980a3e5fc..0000000000
--- a/test/integration/targets/roles/roles/39543_role3/meta/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-dependencies:
- - 39543_role1
diff --git a/test/integration/targets/roles/roles/39543_role3/tasks/main.yml b/test/integration/targets/roles/roles/39543_role3/tasks/main.yml
deleted file mode 100644
index 550f9972bc..0000000000
--- a/test/integration/targets/roles/roles/39543_role3/tasks/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-- debug:
- msg: 'role3'
diff --git a/test/integration/targets/roles/roles/47023_role1/defaults/main.yml b/test/integration/targets/roles/roles/47023_role1/defaults/main.yml
deleted file mode 100644
index 166caa33b3..0000000000
--- a/test/integration/targets/roles/roles/47023_role1/defaults/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 9c408ba2ed..0000000000
--- a/test/integration/targets/roles/roles/47023_role1/tasks/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-- 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
deleted file mode 100644
index bfda56b9b8..0000000000
--- a/test/integration/targets/roles/roles/47023_role1/vars/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 4544215f84..0000000000
--- a/test/integration/targets/roles/roles/47023_role2/tasks/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-- 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
deleted file mode 100644
index 9479fe3f3d..0000000000
--- a/test/integration/targets/roles/roles/47023_role3/tasks/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-- 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
deleted file mode 100644
index 64c96e97dd..0000000000
--- a/test/integration/targets/roles/roles/47023_role4/tasks/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-- debug:
- msg: "Var is {{ my_var | default('undefined') }}"
-
-- debug:
- msg: "Default is {{ my_default | default('undefined') }}"
diff --git a/test/integration/targets/roles/runme.sh b/test/integration/targets/roles/runme.sh
index edc13e0a6b..5f11c1fca6 100755
--- a/test/integration/targets/roles/runme.sh
+++ b/test/integration/targets/roles/runme.sh
@@ -17,14 +17,3 @@ set -eux
# ensure role data is merged correctly
ansible-playbook data_integrity.yml -i ../../inventory "$@"
-
-
-# ensure role vars are inherited correctly
-ANSIBLE_PRIVATE_ROLE_VARS=True ansible-playbook 39543.yml -i ../../inventory "$@" | tee out.txt
-test "$(grep '"msg": "role1"' -c out.txt)" = "1"
-test "$(grep '"msg": "role2"' -c out.txt)" = "1"
-test "$(grep '"msg": "role3"' -c out.txt)" = "0"
-
-
-# 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" ]