Skip to content

Commit

Permalink
Whitelist listen as a valid keyword on TaskInclude (ansible#56586)
Browse files Browse the repository at this point in the history
* Whitelist listen as a valid keyword on TaskInclude. Fixes ansible#56580

* Move 'listen' to HandlerTaskInclude

* Remove trailing newline
  • Loading branch information
sivel authored May 17, 2019
1 parent b593548 commit 576593e
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 1 deletion.
3 changes: 3 additions & 0 deletions changelogs/fragments/include_tasks_listen.yml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- debug:
msg: include_me
- assert:
that:
- loopy == 1
- baz == 'qux'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- debug:
msg: listen
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- debug:
msg: notify
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 576593e

Please sign in to comment.