Skip self._parent on dynamic, defer to grandparent for attr lookup (#38827)

* Skip self._parent on dynamic, defer to grandparent for attr lookup

* Revert _inheritable

* Add tests for include inheritance from static blocks

Fixes #38037 #36194
This commit is contained in:
Matt Martz 2018-04-16 16:46:47 -05:00 committed by GitHub
commit 354aa8d602
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 63 additions and 16 deletions

View file

@ -0,0 +1,2 @@
- command: "true"
register: block_include_result

View file

@ -0,0 +1 @@
- include_tasks: include_level_1.yml

View file

@ -0,0 +1,2 @@
- command: "true"
register: import_include_include_result

View file

@ -0,0 +1 @@
- include_tasks: import_include_include_tasks.yml

View file

@ -55,3 +55,7 @@ gen_task_files
ANSIBLE_STRATEGY='linear' ansible-playbook test_copious_include_tasks.yml -i ../../inventory "$@" --skip-tags never
ANSIBLE_STRATEGY='free' ansible-playbook test_copious_include_tasks.yml -i ../../inventory "$@" --skip-tags never
rm -f tasks/hello/*.yml
# Inlcuded tasks should inherit attrs from non-dynamic blocks in parent chain
# https://github.com/ansible/ansible/pull/38827
ANSIBLE_STRATEGY='linear' ansible-playbook test_grandparent_inheritance.yml -i ../../inventory "$@"

View file

@ -0,0 +1,29 @@
---
- hosts: testhost
gather_facts: false
tasks:
- debug:
var: inventory_hostname
- name: Test included tasks inherit from block
check_mode: true
block:
- include_tasks: grandchild/block_include_tasks.yml
- debug:
var: block_include_result
- assert:
that:
- block_include_result is skipped
- name: Test included tasks inherit deeply from import
import_tasks: grandchild/import.yml
check_mode: true
- debug:
var: import_include_include_result
- assert:
that:
- import_include_include_result is skipped