mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Multiple fixes for include statements and blocks in general
Fixes #11981 Fixes #11995 Fixes #12039 Fixes #12077
This commit is contained in:
parent
9f9891df2c
commit
601a1cc6d9
6 changed files with 196 additions and 108 deletions
|
@ -325,16 +325,20 @@ class Block(Base, Become, Conditional, Taggable):
|
|||
def evaluate_and_append_task(target):
|
||||
tmp_list = []
|
||||
for task in target:
|
||||
if task.action in ('meta', 'include') or task.evaluate_tags(play_context.only_tags, play_context.skip_tags, all_vars=all_vars):
|
||||
if isinstance(task, Block):
|
||||
tmp_list.append(evaluate_block(task))
|
||||
elif task.action in ('meta', 'include') or task.evaluate_tags(play_context.only_tags, play_context.skip_tags, all_vars=all_vars):
|
||||
tmp_list.append(task)
|
||||
return tmp_list
|
||||
|
||||
new_block = self.copy()
|
||||
new_block.block = evaluate_and_append_task(self.block)
|
||||
new_block.rescue = evaluate_and_append_task(self.rescue)
|
||||
new_block.always = evaluate_and_append_task(self.always)
|
||||
def evaluate_block(block):
|
||||
new_block = self.copy()
|
||||
new_block.block = evaluate_and_append_task(block.block)
|
||||
new_block.rescue = evaluate_and_append_task(block.rescue)
|
||||
new_block.always = evaluate_and_append_task(block.always)
|
||||
return new_block
|
||||
|
||||
return new_block
|
||||
return evaluate_block(self)
|
||||
|
||||
def has_tasks(self):
|
||||
return len(self.block) > 0 or len(self.rescue) > 0 or len(self.always) > 0
|
||||
|
|
|
@ -256,7 +256,7 @@ class Task(Base, Conditional, Taggable, Become):
|
|||
|
||||
new_me._task_include = None
|
||||
if self._task_include:
|
||||
new_me._task_include = self._task_include.copy()
|
||||
new_me._task_include = self._task_include.copy(exclude_block=exclude_block)
|
||||
|
||||
return new_me
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue