Fix for variable precedence with tasks/includes

Fixes #11881
This commit is contained in:
James Cammarata 2015-08-12 10:12:05 -04:00
parent 2688edb32b
commit ac66e4001c
2 changed files with 5 additions and 5 deletions

View file

@ -212,19 +212,19 @@ class Task(Base, Conditional, Taggable, Become):
return value
def get_vars(self):
all_vars = self.vars.copy()
all_vars = dict()
if self._block:
all_vars.update(self._block.get_vars())
if self._task_include:
all_vars.update(self._task_include.get_vars())
#if isinstance(self.args, dict):
# all_vars.update(self.args)
all_vars.update(self.vars)
if 'tags' in all_vars:
del all_vars['tags']
if 'when' in all_vars:
del all_vars['when']
return all_vars
def copy(self, exclude_block=False):

View file

@ -406,9 +406,9 @@ class StrategyBase:
# set the vars for this task from those specified as params to the include
for b in block_list:
temp_vars = b.vars.copy()
temp_vars = b._task_include.vars.copy()
temp_vars.update(included_file._args.copy())
b.vars = temp_vars
b._task_include.vars = temp_vars
return block_list