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

pull/761/head
Michael DeHaan 14 years ago
parent 08999a2a2f
commit ed14312ad6

@ -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):
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
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):
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():
# 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():
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),

Loading…
Cancel
Save