Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Whitelist listen as a valid keyword on TaskInclude #56586

Merged
merged 3 commits into from May 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions changelogs/fragments/include_tasks_listen.yml
@@ -0,0 +1,3 @@
bugfixes:
- include_tasks - whitelist ``listen`` as a valid keyword
(https://github.com/ansible/ansible/issues/56580)
2 changes: 2 additions & 0 deletions lib/ansible/playbook/handler_task_include.py
Expand Up @@ -26,6 +26,8 @@

class HandlerTaskInclude(Handler, TaskInclude):

VALID_INCLUDE_KEYWORDS = frozenset(('listen',) + tuple(TaskInclude.VALID_INCLUDE_KEYWORDS))

@staticmethod
def load(data, block=None, role=None, task_include=None, variable_manager=None, loader=None):
t = HandlerTaskInclude(block=block, role=role, task_include=task_include)
Expand Down
2 changes: 1 addition & 1 deletion lib/ansible/playbook/task_include.py
Expand Up @@ -82,7 +82,7 @@ def load(data, block=None, role=None, task_include=None, variable_manager=None,
def preprocess_data(self, ds):
ds = super(TaskInclude, self).preprocess_data(ds)

diff = set(ds.keys()).difference(TaskInclude.VALID_INCLUDE_KEYWORDS)
diff = set(ds.keys()).difference(self.VALID_INCLUDE_KEYWORDS)
for k in diff:
# This check doesn't handle ``include`` as we have no idea at this point if it is static or not
if ds[k] is not Sentinel and ds['action'] in ('include_tasks', 'include_role'):
Expand Down
@@ -0,0 +1,6 @@
- debug:
msg: include_me
- assert:
that:
- loopy == 1
- baz == 'qux'
@@ -0,0 +1,2 @@
- debug:
msg: listen
@@ -0,0 +1,2 @@
- debug:
msg: notify
@@ -0,0 +1,39 @@
- hosts: localhost
gather_facts: false
handlers:
- include_tasks: include_me_listen.yml
listen:
- include_me_listen

- name: Include Me Notify
include_tasks: include_me_notify.yml

tasks:
- name: Include me
include_tasks: include_me.yml
args:
apply:
tags:
- bar
debugger: ~
ignore_errors: false
loop:
- 1
loop_control:
loop_var: loopy
no_log: false
register: this_isnt_useful
run_once: true
tags:
- foo
vars:
baz: qux
when: true

- command: "true"
notify:
- include_me_listen

- command: "true"
notify:
- Include Me Notify