|
|
|
|
@ -496,7 +496,9 @@ class Role(Base, Conditional, Taggable, CollectionSearch, Delegatable):
|
|
|
|
|
dep_chain = [] if dep_chain is None else dep_chain
|
|
|
|
|
|
|
|
|
|
default_vars = dict()
|
|
|
|
|
for dep in self.get_all_dependencies():
|
|
|
|
|
# FIXME combining deps' default_vars can be optimized by moving it
|
|
|
|
|
# into _load_role_data so it is done just once
|
|
|
|
|
for dep in self._dependencies:
|
|
|
|
|
default_vars = combine_vars(default_vars, dep.get_default_vars())
|
|
|
|
|
if dep_chain:
|
|
|
|
|
for parent in dep_chain:
|
|
|
|
|
@ -536,13 +538,15 @@ class Role(Base, Conditional, Taggable, CollectionSearch, Delegatable):
|
|
|
|
|
all_vars = self.get_inherited_vars(dep_chain, only_exports=only_exports)
|
|
|
|
|
|
|
|
|
|
# get exported variables from meta/dependencies
|
|
|
|
|
# FIXME combining deps' role_vars can be optimized by moving it
|
|
|
|
|
# into _load_role_data so it is done just once
|
|
|
|
|
seen = []
|
|
|
|
|
for dep in self.get_all_dependencies():
|
|
|
|
|
# Avoid rerunning dupe deps since they can have vars from previous invocations and they accumulate in deps
|
|
|
|
|
# TODO: re-examine dep loading to see if we are somehow improperly adding the same dep too many times
|
|
|
|
|
if dep not in seen:
|
|
|
|
|
# only take 'exportable' vars from deps
|
|
|
|
|
all_vars = combine_vars(all_vars, dep.get_vars(include_params=False, only_exports=True))
|
|
|
|
|
all_vars = combine_vars(all_vars, dep._role_vars)
|
|
|
|
|
seen.append(dep)
|
|
|
|
|
|
|
|
|
|
# role_vars come from vars/ in a role
|
|
|
|
|
|