Commit ed14312a by Michael DeHaan

reinstate invalid argument checks where possible, daisy chainee/chained modules turn it off

parent 08999a2a
...@@ -54,7 +54,7 @@ except ImportError: ...@@ -54,7 +54,7 @@ except ImportError:
class AnsibleModule(object): class AnsibleModule(object):
def __init__(self, argument_spec, bypass_checks=False, no_log=False): def __init__(self, argument_spec, bypass_checks=False, no_log=False, check_invalid_arguments=True):
''' '''
common code for quickly building an ansible module in Python common code for quickly building an ansible module in Python
(although you can write modules in anything that can return JSON) (although you can write modules in anything that can return JSON)
...@@ -66,8 +66,11 @@ class AnsibleModule(object): ...@@ -66,8 +66,11 @@ class AnsibleModule(object):
self._legal_inputs = [] self._legal_inputs = []
self._handle_aliases() self._handle_aliases()
# temporarily disabled
# self._check_invalid_arguments() # this may be disabled where modules are going to daisy chain into others
if check_invalid_arguments:
self._check_invalid_arguments()
self._set_defaults(pre=True) self._set_defaults(pre=True)
if not bypass_checks: if not bypass_checks:
......
...@@ -23,6 +23,8 @@ import shutil ...@@ -23,6 +23,8 @@ import shutil
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
# not checking because of daisy chain to file module
check_invalid_arguments = False,
argument_spec = dict( argument_spec = dict(
src=dict(required=True), src=dict(required=True),
dest=dict(required=True) dest=dict(required=True)
......
...@@ -212,7 +212,8 @@ def rmtree_error(func, path, exc_info): ...@@ -212,7 +212,8 @@ def rmtree_error(func, path, exc_info):
def main(): def main():
global module global module
module = AnsibleFileModule( module = AnsibleModule(
check_invalid_arguments = False,
argument_spec = dict( argument_spec = dict(
state = dict(choices=['file','directory','link','absent'], default='file'), state = dict(choices=['file','directory','link','absent'], default='file'),
path = dict(aliases=['dest', 'name'], required=True), path = dict(aliases=['dest', 'name'], required=True),
...@@ -348,12 +349,5 @@ def main(): ...@@ -348,12 +349,5 @@ def main():
# this is magic, see lib/ansible/module_common.py # this is magic, see lib/ansible/module_common.py
#<<INCLUDE_ANSIBLE_MODULE_COMMON>> #<<INCLUDE_ANSIBLE_MODULE_COMMON>>
class AnsibleFileModule(AnsibleModule):
def _check_invalid_arguments(self):
# needed to support daisy chaining
pass
main() main()
...@@ -128,6 +128,8 @@ def main(): ...@@ -128,6 +128,8 @@ def main():
module.fail_json(msg="urlparse is not installed") module.fail_json(msg="urlparse is not installed")
module = AnsibleModule( module = AnsibleModule(
# not checking because of daisy chain to file module
check_invalid_arguments = False,
argument_spec = dict( argument_spec = dict(
url = dict(required=True), url = dict(required=True),
dest = dict(required=True), dest = dict(required=True),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment