|
|
@ -294,26 +294,24 @@ class Play(object):
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.included_roles.append(dep)
|
|
|
|
self.included_roles.append(dep)
|
|
|
|
|
|
|
|
|
|
|
|
# pass along conditionals from roles to dep roles
|
|
|
|
def _merge_conditional(cur_conditionals, new_conditionals):
|
|
|
|
if type(role) is dict:
|
|
|
|
if isinstance(new_conditionals, (basestring, bool)):
|
|
|
|
if 'when' in passed_vars:
|
|
|
|
cur_conditionals.append(new_conditionals)
|
|
|
|
if 'when' in dep_vars:
|
|
|
|
elif isinstance(new_conditionals, list):
|
|
|
|
tmpcond = []
|
|
|
|
cur_conditionals.extend(new_conditionals)
|
|
|
|
|
|
|
|
|
|
|
|
if type(passed_vars['when']) is str:
|
|
|
|
# pass along conditionals from roles to dep roles
|
|
|
|
tmpcond.append(passed_vars['when'])
|
|
|
|
passed_when = passed_vars.get('when')
|
|
|
|
elif type(passed_vars['when']) is list:
|
|
|
|
role_when = role_vars.get('when')
|
|
|
|
tmpcond += passed_vars['when']
|
|
|
|
dep_when = dep_vars.get('when')
|
|
|
|
|
|
|
|
|
|
|
|
if type(dep_vars['when']) is str:
|
|
|
|
tmpcond = []
|
|
|
|
tmpcond.append(dep_vars['when'])
|
|
|
|
_merge_conditional(tmpcond, passed_when)
|
|
|
|
elif type(dep_vars['when']) is list:
|
|
|
|
_merge_conditional(tmpcond, role_when)
|
|
|
|
tmpcond += dep_vars['when']
|
|
|
|
_merge_conditional(tmpcond, dep_when)
|
|
|
|
|
|
|
|
|
|
|
|
if len(tmpcond) > 0:
|
|
|
|
if len(tmpcond) > 0:
|
|
|
|
dep_vars['when'] = tmpcond
|
|
|
|
dep_vars['when'] = tmpcond
|
|
|
|
else:
|
|
|
|
|
|
|
|
dep_vars['when'] = passed_vars['when']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self._build_role_dependencies([dep], dep_stack, passed_vars=dep_vars, level=level+1)
|
|
|
|
self._build_role_dependencies([dep], dep_stack, passed_vars=dep_vars, level=level+1)
|
|
|
|
dep_stack.append([dep,dep_path,dep_vars,dep_defaults_data])
|
|
|
|
dep_stack.append([dep,dep_path,dep_vars,dep_defaults_data])
|
|
|
@ -565,7 +563,10 @@ class Play(object):
|
|
|
|
task_vars = utils.combine_vars(task_vars, x['vars'])
|
|
|
|
task_vars = utils.combine_vars(task_vars, x['vars'])
|
|
|
|
|
|
|
|
|
|
|
|
if 'when' in x:
|
|
|
|
if 'when' in x:
|
|
|
|
|
|
|
|
if isinstance(x['when'], (basestring, bool)):
|
|
|
|
included_additional_conditions.append(x['when'])
|
|
|
|
included_additional_conditions.append(x['when'])
|
|
|
|
|
|
|
|
elif isinstance(x['when'], list):
|
|
|
|
|
|
|
|
included_additional_conditions.extend(x['when'])
|
|
|
|
|
|
|
|
|
|
|
|
new_role = None
|
|
|
|
new_role = None
|
|
|
|
if 'role_name' in x:
|
|
|
|
if 'role_name' in x:
|
|
|
|