Commit 93f02d61 by Daniel Hokka Zakrisson

Merge pull request #2187 from dhozac/argument-type-check

Add type checking for module arguments, converting as much as possible
parents 964ef8d4 578ec127
...@@ -182,6 +182,7 @@ class AnsibleModule(object): ...@@ -182,6 +182,7 @@ class AnsibleModule(object):
if not bypass_checks: if not bypass_checks:
self._check_required_arguments() self._check_required_arguments()
self._check_argument_values()
self._check_argument_types() self._check_argument_types()
self._check_mutually_exclusive(mutually_exclusive) self._check_mutually_exclusive(mutually_exclusive)
self._check_required_together(required_together) self._check_required_together(required_together)
...@@ -542,7 +543,7 @@ class AnsibleModule(object): ...@@ -542,7 +543,7 @@ class AnsibleModule(object):
if len(missing) > 0: if len(missing) > 0:
self.fail_json(msg="missing required arguments: %s" % ",".join(missing)) self.fail_json(msg="missing required arguments: %s" % ",".join(missing))
def _check_argument_types(self): def _check_argument_values(self):
''' ensure all arguments have the requested values, and there are no stray arguments ''' ''' ensure all arguments have the requested values, and there are no stray arguments '''
for (k,v) in self.argument_spec.iteritems(): for (k,v) in self.argument_spec.iteritems():
choices = v.get('choices',None) choices = v.get('choices',None)
...@@ -557,6 +558,45 @@ class AnsibleModule(object): ...@@ -557,6 +558,45 @@ class AnsibleModule(object):
else: else:
self.fail_json(msg="internal error: do not know how to interpret argument_spec") self.fail_json(msg="internal error: do not know how to interpret argument_spec")
def _check_argument_types(self):
''' ensure all arguments have the requested type '''
for (k, v) in self.argument_spec.iteritems():
wanted = v.get('type', None)
if wanted is None:
continue
if k not in self.params:
continue
value = self.params[k]
is_invalid = False
if wanted == 'str':
if not isinstance(value, basestring):
self.params[k] = str(value)
elif wanted == 'list':
if not isinstance(value, list):
if isinstance(value, basestring):
self.params[k] = value.split(",")
else:
is_invalid = True
elif wanted == 'dict':
if not isinstance(value, dict):
if isinstance(value, basestring):
self.params[k] = dict([x.split("=", 1) for x in value.split(",")])
else:
is_invalid = True
elif wanted == 'bool':
if not isinstance(value, bool):
if isinstance(value, basestring):
self.params[k] = self.boolean(value)
else:
is_invalid = True
else:
self.fail_json(msg="implementation error: unknown type %s requested for %s" % (wanted, k))
if is_invalid:
self.fail_json(msg="argument %s is of invalid type: %s, required: %s" % (k, type(value), wanted))
def _set_defaults(self, pre=True): def _set_defaults(self, pre=True):
for (k,v) in self.argument_spec.iteritems(): for (k,v) in self.argument_spec.iteritems():
default = v.get('default', None) default = v.get('default', None)
......
...@@ -181,12 +181,12 @@ def main(): ...@@ -181,12 +181,12 @@ def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec = dict( argument_spec = dict(
state = dict(default='installed', choices=['installed', 'latest', 'removed', 'absent', 'present']), state = dict(default='installed', choices=['installed', 'latest', 'removed', 'absent', 'present']),
update_cache = dict(default='no', choices=['yes', 'no'], aliases=['update-cache']), update_cache = dict(default='no', aliases=['update-cache'], type='bool'),
purge = dict(default='no', choices=['yes', 'no']), purge = dict(default='no', type='bool'),
package = dict(default=None, aliases=['pkg', 'name']), package = dict(default=None, aliases=['pkg', 'name']),
default_release = dict(default=None, aliases=['default-release']), default_release = dict(default=None, aliases=['default-release']),
install_recommends = dict(default='yes', aliases=['install-recommends'], choices=['yes', 'no']), install_recommends = dict(default='yes', aliases=['install-recommends'], type='bool'),
force = dict(default='no', choices=['yes', 'no']) force = dict(default='no', type='bool')
), ),
supports_check_mode = True supports_check_mode = True
) )
...@@ -204,7 +204,7 @@ def main(): ...@@ -204,7 +204,7 @@ def main():
if p['package'] is None and p['update_cache'] != 'yes': if p['package'] is None and p['update_cache'] != 'yes':
module.fail_json(msg='pkg=name and/or update_cache=yes is required') module.fail_json(msg='pkg=name and/or update_cache=yes is required')
install_recommends = module.boolean(p['install_recommends']) install_recommends = p['install_recommends']
cache = apt.Cache() cache = apt.Cache()
if p['default_release']: if p['default_release']:
...@@ -212,13 +212,13 @@ def main(): ...@@ -212,13 +212,13 @@ def main():
# reopen cache w/ modified config # reopen cache w/ modified config
cache.open(progress=None) cache.open(progress=None)
if module.boolean(p['update_cache']): if p['update_cache']:
cache.update() cache.update()
cache.open(progress=None) cache.open(progress=None)
if not p['package']: if not p['package']:
module.exit_json(changed=False) module.exit_json(changed=False)
force_yes = module.boolean(p['force']) force_yes = p['force']
packages = p['package'].split(',') packages = p['package'].split(',')
latest = p['state'] == 'latest' latest = p['state'] == 'latest'
...@@ -237,7 +237,7 @@ def main(): ...@@ -237,7 +237,7 @@ def main():
install(module, packages, cache, default_release=p['default_release'], install(module, packages, cache, default_release=p['default_release'],
install_recommends=install_recommends,force=force_yes) install_recommends=install_recommends,force=force_yes)
elif p['state'] in [ 'removed', 'absent' ]: elif p['state'] in [ 'removed', 'absent' ]:
remove(module, packages, cache, purge = module.boolean(p['purge'])) remove(module, packages, cache, p['purge'])
# 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>>
......
...@@ -94,7 +94,7 @@ def main(): ...@@ -94,7 +94,7 @@ def main():
argument_spec = dict( argument_spec = dict(
src = dict(required=True), src = dict(required=True),
dest = dict(required=True), dest = dict(required=True),
backup=dict(default=False, choices=BOOLEANS), backup=dict(default=False, type='bool'),
), ),
add_file_common_args=True add_file_common_args=True
) )
...@@ -104,7 +104,7 @@ def main(): ...@@ -104,7 +104,7 @@ def main():
destmd5 = None destmd5 = None
src = os.path.expanduser(module.params['src']) src = os.path.expanduser(module.params['src'])
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
backup = module.boolean(module.params.get('backup', False)) backup = module.params['backup']
if not os.path.exists(src): if not os.path.exists(src):
module.fail_json(msg="Source (%s) does not exist" % src) module.fail_json(msg="Source (%s) does not exist" % src)
......
...@@ -78,16 +78,16 @@ def main(): ...@@ -78,16 +78,16 @@ def main():
argument_spec = dict( argument_spec = dict(
src=dict(required=True), src=dict(required=True),
dest=dict(required=True), dest=dict(required=True),
backup=dict(default=False, choices=BOOLEANS), backup=dict(default=False, type='bool'),
force = dict(default='yes', choices=BOOLEANS, aliases=['thirsty']), force = dict(default='yes', aliases=['thirsty'], type='bool'),
), ),
add_file_common_args=True, add_file_common_args=True,
) )
src = os.path.expanduser(module.params['src']) src = os.path.expanduser(module.params['src'])
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
backup = module.boolean(module.params.get('backup', False)) backup = module.params['backup']
force = module.boolean(module.params['force']) force = module.params['force']
if not os.path.exists(src): if not os.path.exists(src):
module.fail_json(msg="Source %s failed to transfer" % (src)) module.fail_json(msg="Source %s failed to transfer" % (src))
......
...@@ -259,17 +259,17 @@ def main(): ...@@ -259,17 +259,17 @@ def main():
job=dict(required=False), job=dict(required=False),
cron_file=dict(required=False), cron_file=dict(required=False),
state=dict(default='present', choices=['present', 'absent']), state=dict(default='present', choices=['present', 'absent']),
backup=dict(default=False, choices=BOOLEANS), backup=dict(default=False, type='bool'),
minute=dict(default='*'), minute=dict(default='*'),
hour=dict(default='*'), hour=dict(default='*'),
day=dict(default='*'), day=dict(default='*'),
month=dict(default='*'), month=dict(default='*'),
weekday=dict(default='*'), weekday=dict(default='*'),
reboot=dict(required=False, default=False, choices=BOOLEANS) reboot=dict(required=False, default=False, type='bool')
) )
) )
backup = module.boolean(module.params.get('backup', False)) backup = module.params['backup']
name = module.params['name'] name = module.params['name']
user = module.params['user'] user = module.params['user']
job = module.params['job'] job = module.params['job']
...@@ -279,7 +279,7 @@ def main(): ...@@ -279,7 +279,7 @@ def main():
day = module.params['day'] day = module.params['day']
month = module.params['month'] month = module.params['month']
weekday = module.params['weekday'] weekday = module.params['weekday']
reboot = module.boolean(module.params.get('reboot', False)) reboot = module.params['reboot']
state = module.params['state'] state = module.params['state']
do_install = module.params['state'] == 'present' do_install = module.params['state'] == 'present'
changed = False changed = False
......
...@@ -82,7 +82,7 @@ def main(): ...@@ -82,7 +82,7 @@ def main():
arg_spec = dict( arg_spec = dict(
name=dict(required=True), name=dict(required=True),
virtualenv=dict(default=None, required=False), virtualenv=dict(default=None, required=False),
virtualenv_site_packages=dict(default='no', choices=BOOLEANS), virtualenv_site_packages=dict(default='no', type='bool'),
virtualenv_command=dict(default='virtualenv', required=False), virtualenv_command=dict(default='virtualenv', required=False),
) )
...@@ -91,7 +91,7 @@ def main(): ...@@ -91,7 +91,7 @@ def main():
name = module.params['name'] name = module.params['name']
env = module.params['virtualenv'] env = module.params['virtualenv']
easy_install = module.get_bin_path('easy_install', True, ['%s/bin' % env]) easy_install = module.get_bin_path('easy_install', True, ['%s/bin' % env])
site_packages = module.boolean(module.params['virtualenv_site_packages']) site_packages = module.params['virtualenv_site_packages']
virtualenv_command = module.params['virtualenv_command'] virtualenv_command = module.params['virtualenv_command']
rc = 0 rc = 0
......
...@@ -140,7 +140,7 @@ def main(): ...@@ -140,7 +140,7 @@ def main():
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),
recurse = dict(default='no', choices=BOOLEANS) recurse = dict(default='no', type='bool')
), ),
add_file_common_args=True, add_file_common_args=True,
supports_check_mode=True supports_check_mode=True
...@@ -215,7 +215,7 @@ def main(): ...@@ -215,7 +215,7 @@ def main():
changed = True changed = True
changed = module.set_directory_attributes_if_different(file_args, changed) changed = module.set_directory_attributes_if_different(file_args, changed)
recurse = module.boolean(params['recurse']) recurse = params['recurse']
if recurse: if recurse:
for root,dirs,files in os.walk( file_args['path'] ): for root,dirs,files in os.walk( file_args['path'] ):
for dir in dirs: for dir in dirs:
......
...@@ -195,14 +195,14 @@ def main(): ...@@ -195,14 +195,14 @@ def main():
argument_spec = dict( argument_spec = dict(
url = dict(required=True), url = dict(required=True),
dest = dict(required=True), dest = dict(required=True),
force = dict(default='no', choices=BOOLEANS, aliases=['thirsty']) force = dict(default='no', aliases=['thirsty'], type='bool')
), ),
add_file_common_args=True add_file_common_args=True
) )
url = module.params['url'] url = module.params['url']
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
force = module.boolean(module.params['force']) force = module.params['force']
if os.path.isdir(dest): if os.path.isdir(dest):
dest = os.path.join(dest, url_filename(url)) dest = os.path.join(dest, url_filename(url))
......
...@@ -223,7 +223,7 @@ def main(): ...@@ -223,7 +223,7 @@ def main():
repo=dict(required=True, aliases=['name']), repo=dict(required=True, aliases=['name']),
version=dict(default='HEAD'), version=dict(default='HEAD'),
remote=dict(default='origin'), remote=dict(default='origin'),
force=dict(default='yes', choices=['yes', 'no'], aliases=['force']) force=dict(default='yes', type='bool')
) )
) )
...@@ -231,7 +231,7 @@ def main(): ...@@ -231,7 +231,7 @@ def main():
repo = module.params['repo'] repo = module.params['repo']
version = module.params['version'] version = module.params['version']
remote = module.params['remote'] remote = module.params['remote']
force = module.boolean(module.params['force']) force = module.params['force']
gitconfig = os.path.join(dest, '.git', 'config') gitconfig = os.path.join(dest, '.git', 'config')
......
...@@ -204,15 +204,15 @@ def main(): ...@@ -204,15 +204,15 @@ def main():
repo = dict(required=True), repo = dict(required=True),
dest = dict(required=True), dest = dict(required=True),
revision = dict(default="default"), revision = dict(default="default"),
force = dict(default='yes', choices=['yes', 'no']), force = dict(default='yes', type='bool'),
purge = dict(default='no', choices=['yes', 'no']) purge = dict(default='no', type='bool')
), ),
) )
repo = module.params['repo'] repo = module.params['repo']
dest = module.params['dest'] dest = module.params['dest']
revision = module.params['revision'] revision = module.params['revision']
force = module.boolean(module.params['force']) force = module.params['force']
purge = module.boolean(module.params['purge']) purge = module.params['purge']
hgrc = os.path.join(dest, '.hg/hgrc') hgrc = os.path.join(dest, '.hg/hgrc')
# initial states # initial states
......
...@@ -158,7 +158,7 @@ def main(): ...@@ -158,7 +158,7 @@ def main():
section = dict(required=True), section = dict(required=True),
option = dict(required=False), option = dict(required=False),
value = dict(required=False), value = dict(required=False),
backup = dict(default='no', choices=BOOLEANS), backup = dict(default='no', type='bool'),
state = dict(default='present', choices=['present', 'absent']) state = dict(default='present', choices=['present', 'absent'])
), ),
add_file_common_args = True add_file_common_args = True
...@@ -171,7 +171,7 @@ def main(): ...@@ -171,7 +171,7 @@ def main():
option = module.params['option'] option = module.params['option']
value = module.params['value'] value = module.params['value']
state = module.params['state'] state = module.params['state']
backup = module.boolean(module.params['backup']) backup = module.params['backup']
changed = do_ini(module, dest, section, option, value, state, backup) changed = do_ini(module, dest, section, option, value, state, backup)
......
...@@ -246,17 +246,17 @@ def main(): ...@@ -246,17 +246,17 @@ def main():
line=dict(aliases=['value']), line=dict(aliases=['value']),
insertafter=dict(default=None), insertafter=dict(default=None),
insertbefore=dict(default=None), insertbefore=dict(default=None),
create=dict(default=False, choices=BOOLEANS), create=dict(default=False, type='bool'),
backup=dict(default=False, choices=BOOLEANS), backup=dict(default=False, type='bool'),
), ),
mutually_exclusive = [['insertbefore', 'insertafter']], mutually_exclusive = [['insertbefore', 'insertafter']],
add_file_common_args=True, add_file_common_args = True,
supports_check_mode = True supports_check_mode = True
) )
params = module.params params = module.params
create = module.boolean(module.params.get('create', False)) create = module.params['create']
backup = module.boolean(module.params.get('backup', False)) backup = module.params['backup']
dest = os.path.expanduser(params['dest']) dest = os.path.expanduser(params['dest'])
if params['state'] == 'present': if params['state'] == 'present':
......
...@@ -134,7 +134,7 @@ def main(): ...@@ -134,7 +134,7 @@ def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec = dict( argument_spec = dict(
state = dict(default="installed", choices=["installed","absent"]), state = dict(default="installed", choices=["installed","absent"]),
update_cache = dict(default="no", choices=["yes","no"], aliases=["update-cache"]), update_cache = dict(default="no", aliases=["update-cache"], type='bool'),
name = dict(aliases=["pkg"], required=True))) name = dict(aliases=["pkg"], required=True)))
...@@ -144,7 +144,7 @@ def main(): ...@@ -144,7 +144,7 @@ def main():
p = module.params p = module.params
if module.boolean(p["update_cache"]): if p["update_cache"]:
update_package_db(module) update_package_db(module)
pkgs = p["name"].split(",") pkgs = p["name"].split(",")
......
...@@ -158,9 +158,9 @@ def main(): ...@@ -158,9 +158,9 @@ def main():
version=dict(default=None, required=False), version=dict(default=None, required=False),
requirements=dict(default=None, required=False), requirements=dict(default=None, required=False),
virtualenv=dict(default=None, required=False), virtualenv=dict(default=None, required=False),
virtualenv_site_packages=dict(default='no', choices=BOOLEANS), virtualenv_site_packages=dict(default='no', type='bool'),
virtualenv_command=dict(default='virtualenv', required=False), virtualenv_command=dict(default='virtualenv', required=False),
use_mirrors=dict(default='yes', choices=BOOLEANS), use_mirrors=dict(default='yes', type='bool'),
extra_args=dict(default=None, required=False), extra_args=dict(default=None, required=False),
), ),
required_one_of=[['name', 'requirements']], required_one_of=[['name', 'requirements']],
...@@ -171,7 +171,7 @@ def main(): ...@@ -171,7 +171,7 @@ def main():
name = module.params['name'] name = module.params['name']
version = module.params['version'] version = module.params['version']
requirements = module.params['requirements'] requirements = module.params['requirements']
use_mirrors = module.boolean(module.params['use_mirrors']) use_mirrors = module.params['use_mirrors']
extra_args = module.params['extra_args'] extra_args = module.params['extra_args']
if state == 'latest' and version is not None: if state == 'latest' and version is not None:
...@@ -188,7 +188,7 @@ def main(): ...@@ -188,7 +188,7 @@ def main():
if env: if env:
virtualenv = module.get_bin_path(virtualenv_command, True) virtualenv = module.get_bin_path(virtualenv_command, True)
if not os.path.exists(os.path.join(env, 'bin', 'activate')): if not os.path.exists(os.path.join(env, 'bin', 'activate')):
if module.boolean(module.params['virtualenv_site_packages']): if module.params['virtualenv_site_packages']:
cmd = '%s --system-site-packages %s' % (virtualenv, env) cmd = '%s --system-site-packages %s' % (virtualenv, env)
else: else:
cmd = '%s %s' % (virtualenv, env) cmd = '%s %s' % (virtualenv, env)
......
...@@ -75,7 +75,7 @@ class RabbitMqPlugins(object): ...@@ -75,7 +75,7 @@ class RabbitMqPlugins(object):
def main(): def main():
arg_spec = dict( arg_spec = dict(
names=dict(required=True, aliases=['name']), names=dict(required=True, aliases=['name']),
new_only=dict(default='no', choices=BOOLEANS), new_only=dict(default='no', type='bool'),
state=dict(default='enabled', choices=['enabled', 'disabled']) state=dict(default='enabled', choices=['enabled', 'disabled'])
) )
module = AnsibleModule( module = AnsibleModule(
...@@ -84,7 +84,7 @@ def main(): ...@@ -84,7 +84,7 @@ def main():
) )
names = module.params['names'].split(',') names = module.params['names'].split(',')
new_only = module.boolean(module.params['new_only']) new_only = module.params['new_only']
state = module.params['state'] state = module.params['state']
rabbitmq_plugins = RabbitMqPlugins(module) rabbitmq_plugins = RabbitMqPlugins(module)
......
...@@ -178,7 +178,7 @@ def main(): ...@@ -178,7 +178,7 @@ def main():
configure_priv=dict(default='^$'), configure_priv=dict(default='^$'),
write_priv=dict(default='^$'), write_priv=dict(default='^$'),
read_priv=dict(default='^$'), read_priv=dict(default='^$'),
force=dict(default='no', choices=BOOLEANS), force=dict(default='no', type='bool'),
state=dict(default='present', choices=['present', 'absent']) state=dict(default='present', choices=['present', 'absent'])
) )
module = AnsibleModule( module = AnsibleModule(
...@@ -193,7 +193,7 @@ def main(): ...@@ -193,7 +193,7 @@ def main():
configure_priv = module.params['configure_priv'] configure_priv = module.params['configure_priv']
write_priv = module.params['write_priv'] write_priv = module.params['write_priv']
read_priv = module.params['read_priv'] read_priv = module.params['read_priv']
force = module.boolean(module.params['force']) force = module.params['force']
state = module.params['state'] state = module.params['state']
rabbitmq_user = RabbitMqUser(module, username, password, tags, vhost, configure_priv, write_priv, read_priv) rabbitmq_user = RabbitMqUser(module, username, password, tags, vhost, configure_priv, write_priv, read_priv)
......
...@@ -100,7 +100,7 @@ class RabbitMqVhost(object): ...@@ -100,7 +100,7 @@ class RabbitMqVhost(object):
def main(): def main():
arg_spec = dict( arg_spec = dict(
name=dict(required=True, aliases=['vhost']), name=dict(required=True, aliases=['vhost']),
tracing=dict(default='off', choices=BOOLEANS, aliases=['trace']), tracing=dict(default='off', aliases=['trace'], type='bool'),
state=dict(default='present', choices=['present', 'absent']) state=dict(default='present', choices=['present', 'absent'])
) )
...@@ -110,7 +110,7 @@ def main(): ...@@ -110,7 +110,7 @@ def main():
) )
name = module.params['name'] name = module.params['name']
tracing = module.boolean(module.params['tracing']) tracing = module.params['tracing']
state = module.params['state'] state = module.params['state']
rabbitmq_vhost = RabbitMqVhost(module, name, tracing) rabbitmq_vhost = RabbitMqVhost(module, name, tracing)
......
...@@ -158,8 +158,8 @@ def main(): ...@@ -158,8 +158,8 @@ def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec = dict( argument_spec = dict(
name=dict(required=True), name=dict(required=True),
persistent=dict(default='no', choices=BOOLEANS), persistent=dict(default='no', type='bool'),
state=dict(required=True, choices=BOOLEANS) state=dict(required=True, type='bool')
) )
) )
...@@ -173,8 +173,8 @@ def main(): ...@@ -173,8 +173,8 @@ def main():
module.fail_json(msg="SELinux is disabled on this host.") module.fail_json(msg="SELinux is disabled on this host.")
name = module.params['name'] name = module.params['name']
persistent = module.boolean(module.params['persistent']) persistent = module.params['persistent']
state = module.boolean(module.params['state']) state = module.params['state']
result = {} result = {}
result['name'] = name result['name'] = name
......
...@@ -101,7 +101,7 @@ class Service(object): ...@@ -101,7 +101,7 @@ class Service(object):
self.name = module.params['name'] self.name = module.params['name']
self.state = module.params['state'] self.state = module.params['state']
self.pattern = module.params['pattern'] self.pattern = module.params['pattern']
self.enable = module.boolean(module.params.get('enabled', None)) self.enable = module.params['enabled']
self.changed = False self.changed = False
self.running = None self.running = None
self.action = None self.action = None
...@@ -713,7 +713,7 @@ def main(): ...@@ -713,7 +713,7 @@ def main():
name = dict(required=True), name = dict(required=True),
state = dict(choices=['running', 'started', 'stopped', 'restarted', 'reloaded']), state = dict(choices=['running', 'started', 'stopped', 'restarted', 'reloaded']),
pattern = dict(required=False, default=None), pattern = dict(required=False, default=None),
enabled = dict(choices=BOOLEANS), enabled = dict(choices=BOOLEANS, type='bool'),
arguments = dict(aliases=['args'], default=''), arguments = dict(aliases=['args'], default=''),
), ),
supports_check_mode=True supports_check_mode=True
......
...@@ -129,7 +129,7 @@ def main(): ...@@ -129,7 +129,7 @@ def main():
dest=dict(required=True), dest=dict(required=True),
repo=dict(required=True, aliases=['name', 'repository']), repo=dict(required=True, aliases=['name', 'repository']),
revision=dict(default='HEAD', aliases=['rev']), revision=dict(default='HEAD', aliases=['rev']),
force=dict(default='yes', choices=['yes', 'no']), force=dict(default='yes', type='bool'),
username=dict(required=False), username=dict(required=False),
password=dict(required=False), password=dict(required=False),
) )
...@@ -138,7 +138,7 @@ def main(): ...@@ -138,7 +138,7 @@ def main():
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
repo = module.params['repo'] repo = module.params['repo']
revision = module.params['revision'] revision = module.params['revision']
force = module.boolean(module.params['force']) force = module.params['force']
username = module.params['username'] username = module.params['username']
password = module.params['password'] password = module.params['password']
......
...@@ -208,7 +208,7 @@ def main(): ...@@ -208,7 +208,7 @@ def main():
value = dict(aliases=['val'], required=False), value = dict(aliases=['val'], required=False),
state = dict(default='present', choices=['present', 'absent']), state = dict(default='present', choices=['present', 'absent']),
checks = dict(default='both', choices=['none', 'before', 'after', 'both']), checks = dict(default='both', choices=['none', 'before', 'after', 'both']),
reload = dict(default=True, choices=BOOLEANS), reload = dict(default=True, type='bool'),
sysctl_file = dict(default='/etc/sysctl.conf') sysctl_file = dict(default='/etc/sysctl.conf')
) )
) )
...@@ -219,7 +219,7 @@ def main(): ...@@ -219,7 +219,7 @@ def main():
'name': module.params['name'], 'name': module.params['name'],
'state': module.params['state'], 'state': module.params['state'],
'checks': module.params['checks'], 'checks': module.params['checks'],
'reload': module.boolean(module.params.get('reload', True)), 'reload': module.params['reload'],
'value': module.params.get('value'), 'value': module.params.get('value'),
'sysctl_file': module.params['sysctl_file'] 'sysctl_file': module.params['sysctl_file']
} }
......
...@@ -267,9 +267,9 @@ def main(): ...@@ -267,9 +267,9 @@ def main():
password = dict(required=False, default=None), password = dict(required=False, default=None),
body = dict(required=False, default=None), body = dict(required=False, default=None),
method = dict(required=False, default='GET', choices=['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'OPTIONS']), method = dict(required=False, default='GET', choices=['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'OPTIONS']),
return_content = dict(required=False, default='no', choices=BOOLEANS), return_content = dict(required=False, default='no', type='bool'),
force_basic_auth = dict(required=False, default='no', choices=BOOLEANS), force_basic_auth = dict(required=False, default='no', type='bool'),
follow_redirects = dict(required=False, default='no', choices=BOOLEANS), follow_redirects = dict(required=False, default='no', type='bool'),
creates = dict(required=False, default=None), creates = dict(required=False, default=None),
removes = dict(required=False, default=None), removes = dict(required=False, default=None),
status_code = dict(required=False, default="200"), status_code = dict(required=False, default="200"),
...@@ -289,9 +289,9 @@ def main(): ...@@ -289,9 +289,9 @@ def main():
body = module.params['body'] body = module.params['body']
method = module.params['method'] method = module.params['method']
dest = module.params['dest'] dest = module.params['dest']
return_content = module.boolean(module.params['return_content']) return_content = module.params['return_content']
force_basic_auth = module.boolean(module.params['force_basic_auth']) force_basic_auth = module.params['force_basic_auth']
follow_redirects = module.boolean(module.params['follow_redirects']) follow_redirects = module.params['follow_redirects']
creates = module.params['creates'] creates = module.params['creates']
removes = module.params['removes'] removes = module.params['removes']
status_code = module.params['status_code'] status_code = module.params['status_code']
......
...@@ -202,12 +202,12 @@ class User(object): ...@@ -202,12 +202,12 @@ class User(object):
self.home = module.params['home'] self.home = module.params['home']
self.shell = module.params['shell'] self.shell = module.params['shell']
self.password = module.params['password'] self.password = module.params['password']
self.force = module.boolean(module.params['force']) self.force = module.params['force']
self.remove = module.boolean(module.params['remove']) self.remove = module.params['remove']
self.createhome = module.boolean(module.params['createhome']) self.createhome = module.params['createhome']
self.system = module.boolean(module.params['system']) self.system = module.params['system']
self.append = module.boolean(module.params['append']) self.append = module.params['append']
self.sshkeygen = module.boolean(module.params['generate_ssh_key']) self.sshkeygen = module.params['generate_ssh_key']
self.ssh_bits = module.params['ssh_key_bits'] self.ssh_bits = module.params['ssh_key_bits']
self.ssh_type = module.params['ssh_key_type'] self.ssh_type = module.params['ssh_key_type']
self.ssh_comment = module.params['ssh_key_comment'] self.ssh_comment = module.params['ssh_key_comment']
...@@ -1002,15 +1002,15 @@ def main(): ...@@ -1002,15 +1002,15 @@ def main():
shell=dict(default=None), shell=dict(default=None),
password=dict(default=None), password=dict(default=None),
# following options are specific to userdel # following options are specific to userdel
force=dict(default='no', choices=BOOLEANS), force=dict(default='no', type='bool'),
remove=dict(default='no', choices=BOOLEANS), remove=dict(default='no', type='bool'),
# following options are specific to useradd # following options are specific to useradd
createhome=dict(default='yes', choices=BOOLEANS), createhome=dict(default='yes', type='bool'),
system=dict(default='no', choices=BOOLEANS), system=dict(default='no', type='bool'),
# following options are specific to usermod # following options are specific to usermod
append=dict(default='no', choices=BOOLEANS), append=dict(default='no', type='bool'),
# following are specific to ssh key generation # following are specific to ssh key generation
generate_ssh_key=dict(choices=BOOLEANS), generate_ssh_key=dict(choices=BOOLEANS, type='bool'),
ssh_key_bits=dict(default=ssh_defaults['bits']), ssh_key_bits=dict(default=ssh_defaults['bits']),
ssh_key_type=dict(default=ssh_defaults['type']), ssh_key_type=dict(default=ssh_defaults['type']),
ssh_key_file=dict(default=None), ssh_key_file=dict(default=None),
......
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