diff --git a/v2/ansible/playbook/block.py b/v2/ansible/playbook/block.py index f8fc683694..b80deec6ed 100644 --- a/v2/ansible/playbook/block.py +++ b/v2/ansible/playbook/block.py @@ -235,17 +235,6 @@ class Block(Base, Become, Conditional, Taggable): return False return super(Block, self).evaluate_conditional(all_vars) - def evaluate_tags(self, only_tags, skip_tags, all_vars): - result = False - if len(self._dep_chain): - for dep in self._dep_chain: - result |= dep.evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - if self._parent_block is not None: - result |= self._parent_block.evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - elif self._role is not None: - result |= self._role.evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - return result | super(Block, self).evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - def set_loader(self, loader): self._loader = loader if self._parent_block: diff --git a/v2/ansible/playbook/taggable.py b/v2/ansible/playbook/taggable.py index ce1bdfcf8a..f721cd195f 100644 --- a/v2/ansible/playbook/taggable.py +++ b/v2/ansible/playbook/taggable.py @@ -39,6 +39,15 @@ class Taggable: else: raise AnsibleError('tags must be specified as a list', obj=ds) + def _get_attr_tags(self): + ''' + Override for the 'tags' getattr fetcher, used from Base. + ''' + tags = self._attributes['tags'] + if hasattr(self, '_get_parent_attribute'): + tags.extend(self._get_parent_attribute('tags')) + return list(set(tags)) + def evaluate_tags(self, only_tags, skip_tags, all_vars): ''' this checks if the current item should be executed depending on tag options ''' diff --git a/v2/ansible/playbook/task.py b/v2/ansible/playbook/task.py index 2c92dd4674..bdffc13eb8 100644 --- a/v2/ansible/playbook/task.py +++ b/v2/ansible/playbook/task.py @@ -285,12 +285,6 @@ class Task(Base, Conditional, Taggable, Become): return False return super(Task, self).evaluate_conditional(all_vars) - def evaluate_tags(self, only_tags, skip_tags, all_vars): - result = False - if self._block is not None: - result |= self._block.evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - return result | super(Task, self).evaluate_tags(only_tags=only_tags, skip_tags=skip_tags, all_vars=all_vars) - def set_loader(self, loader): ''' Sets the loader on this object and recursively on parent, child objects.