Restrict role param vars to tasks within that role

Fixes #12460
This commit is contained in:
James Cammarata 2015-09-22 02:13:46 -04:00
parent ecf7d8c9ee
commit a22f7b883d
2 changed files with 9 additions and 7 deletions

View file

@ -254,21 +254,23 @@ class Role(Base, Become, Conditional, Taggable):
default_vars = combine_vars(default_vars, self._default_vars) default_vars = combine_vars(default_vars, self._default_vars)
return default_vars return default_vars
def get_inherited_vars(self, dep_chain=[]): def get_inherited_vars(self, dep_chain=[], include_params=True):
inherited_vars = dict() inherited_vars = dict()
for parent in dep_chain: for parent in dep_chain:
inherited_vars = combine_vars(inherited_vars, parent._role_vars) inherited_vars = combine_vars(inherited_vars, parent._role_vars)
if include_params:
inherited_vars = combine_vars(inherited_vars, parent._role_params) inherited_vars = combine_vars(inherited_vars, parent._role_params)
return inherited_vars return inherited_vars
def get_vars(self, dep_chain=[]): def get_vars(self, dep_chain=[], include_params=True):
all_vars = self.get_inherited_vars(dep_chain) all_vars = self.get_inherited_vars(dep_chain, include_params=include_params)
for dep in self.get_all_dependencies(): for dep in self.get_all_dependencies():
all_vars = combine_vars(all_vars, dep.get_vars()) all_vars = combine_vars(all_vars, dep.get_vars(include_params=include_params))
all_vars = combine_vars(all_vars, self._role_vars) all_vars = combine_vars(all_vars, self._role_vars)
if include_params:
all_vars = combine_vars(all_vars, self._role_params) all_vars = combine_vars(all_vars, self._role_params)
return all_vars return all_vars

View file

@ -256,7 +256,7 @@ class VariableManager:
if not C.DEFAULT_PRIVATE_ROLE_VARS: if not C.DEFAULT_PRIVATE_ROLE_VARS:
for role in play.get_roles(): for role in play.get_roles():
all_vars = combine_vars(all_vars, role.get_vars()) all_vars = combine_vars(all_vars, role.get_vars(include_params=False))
if task: if task:
if task._role: if task._role: