Skip to content

Commit

Permalink
Don't filter role deps on tags
Browse files Browse the repository at this point in the history
Also, fixed a bug where the tags were being merged into the wrong
data structure (passed_vars) in _build_role_dependencies()

Fixes #6439
Fixes #5709
  • Loading branch information
jimi-c committed Mar 18, 2014
1 parent 7c5ad1f commit 84908a5
Showing 1 changed file with 5 additions and 13 deletions.
18 changes: 5 additions & 13 deletions lib/ansible/playbook/play.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,11 @@ def _build_role_dependencies(self, roles, dep_stack, passed_vars={}, level=0):
allow_dupes = utils.boolean(meta_data.get('allow_duplicates',''))

# if any tags were specified as role/dep variables, merge
# them into the passed_vars so they're passed on to any
# them into the current dep_vars so they're passed on to any
# further dependencies too, and so we only have one place
# (passed_vars) to look for tags going forward
# (dep_vars) to look for tags going forward
def __merge_tags(var_obj):
old_tags = passed_vars.get('tags', [])
old_tags = dep_vars.get('tags', [])
if isinstance(var_obj, dict):
new_tags = var_obj.get('tags', [])
if isinstance(new_tags, basestring):
Expand All @@ -242,16 +242,8 @@ def __merge_tags(var_obj):
new_tags = []
return list(set(old_tags).union(set(new_tags)))

if "tags" in passed_vars:
dep_tags = __merge_tags(dep)
if not self._is_valid_tag(dep_tags):
# one of the tags specified for this role was in the
# skip list, or we're limiting the tags and it didn't
# match one, so we just skip it completely
continue

passed_vars['tags'] = __merge_tags(role_vars)
passed_vars['tags'] = __merge_tags(dep_vars)
dep_vars['tags'] = __merge_tags(role_vars)
dep_vars['tags'] = __merge_tags(passed_vars)

# if tags are set from this role, merge them
# into the tags list for the dependent role
Expand Down

0 comments on commit 84908a5

Please sign in to comment.