Error if a module is found to shadow a reserved keyword (#34649)

* Error if a module is found to shadow a reserved keyword

* Add test for shadowed module

* Bring in functools.wraps for the decorator

* Drop the decorator, make _find_plugin the real function, find_plugin now holds the shadow logic

* Swap order of functions for bottom to top execution order

* Only error for modules

* Add test for loading a lookup plugin that shadows a keyword
This commit is contained in:
Matt Martz 2018-04-10 09:26:27 -05:00 committed by GitHub
commit f1082af73f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 47 additions and 1 deletions

View file

@ -0,0 +1 @@
posix/ci/group3

View file

@ -0,0 +1 @@
../../inventory

View file

@ -0,0 +1,6 @@
---
- hosts: localhost
gather_facts: false
tasks:
- command: whoami
tags: foo

View file

@ -0,0 +1,6 @@
---
- hosts: localhost
gather_facts: false
tasks:
- debug:
msg: "{{ lookup('vars', 'inventory_hostname') }}"

View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ux
OUT=$(ansible-playbook playbook.yml -i inventory -e @../../integration_config.yml "$@" 2>&1 | grep 'ERROR! Module "tags" shadows the name of a reserved keyword.')
if [[ -z "$OUT" ]]; then
echo "Fake tags module did not cause error"
exit 1
fi
# This playbook calls a lookup which shadows a keyword.
# This is an ok situation, and should not error
ansible-playbook playbook_lookup.yml -i inventory -e @../../integration_config.yml "$@"