Switch parameters validation after parsing in order to be more consistent between old and new style.

This commit is contained in:
Yannig Perré 2015-11-26 18:24:12 +02:00
parent 31d06886d5
commit 2c54fb1339
2 changed files with 8 additions and 6 deletions

View file

@ -21,7 +21,7 @@ __metaclass__ = type
from ansible.compat.six import iteritems, string_types
from ansible.errors import AnsibleParserError
from ansible.errors import AnsibleParserError,AnsibleError
from ansible.plugins import module_loader
from ansible.parsing.splitter import parse_kv, split_args
from ansible.template import Templar
@ -155,6 +155,13 @@ class ModuleArgsParser:
tmp_args = parse_kv(tmp_args)
args.update(tmp_args)
# only internal variables can start with an underscore, so
# we don't allow users to set them directy in arguments
if action not in ('command', 'shell', 'script', 'raw'):
for arg in args:
if arg.startswith('_') and arg not in ('_raw_params'):
raise AnsibleError("invalid parameter specified for action '%s': '%s'" % (action, arg))
# finally, update the args we're going to return with the ones
# which were normalized above
if args: