Switch parameters validation after parsing in order to be more consistent between old and new style.
This commit is contained in:
parent
6457f88aab
commit
9e6ec4c6b0
2 changed files with 8 additions and 6 deletions
|
@ -21,7 +21,7 @@ __metaclass__ = type
|
||||||
|
|
||||||
from ansible.compat.six import iteritems, string_types
|
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.plugins import module_loader
|
||||||
from ansible.parsing.splitter import parse_kv, split_args
|
from ansible.parsing.splitter import parse_kv, split_args
|
||||||
from ansible.template import Templar
|
from ansible.template import Templar
|
||||||
|
@ -155,6 +155,13 @@ class ModuleArgsParser:
|
||||||
tmp_args = parse_kv(tmp_args)
|
tmp_args = parse_kv(tmp_args)
|
||||||
args.update(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
|
# finally, update the args we're going to return with the ones
|
||||||
# which were normalized above
|
# which were normalized above
|
||||||
if args:
|
if args:
|
||||||
|
|
|
@ -83,11 +83,6 @@ def parse_kv(args, check_raw=False):
|
||||||
k = x[:pos]
|
k = x[:pos]
|
||||||
v = x[pos + 1:]
|
v = x[pos + 1:]
|
||||||
|
|
||||||
# only internal variables can start with an underscore, so
|
|
||||||
# we don't allow users to set them directy in arguments
|
|
||||||
if k.startswith('_'):
|
|
||||||
raise AnsibleError("invalid parameter specified: '%s'" % k)
|
|
||||||
|
|
||||||
# FIXME: make the retrieval of this list of shell/command
|
# FIXME: make the retrieval of this list of shell/command
|
||||||
# options a function, so the list is centralized
|
# options a function, so the list is centralized
|
||||||
if check_raw and k not in ('creates', 'removes', 'chdir', 'executable', 'warn'):
|
if check_raw and k not in ('creates', 'removes', 'chdir', 'executable', 'warn'):
|
||||||
|
|
Loading…
Reference in a new issue