Allow subspec defaults to be processed when the parent argument is not supplied (#38967)

* Allow subspec defaults to be processed when the parent argument is not supplied

* Allow this to be configurable via apply_defaults on the parent

* Document attributes of arguments in argument_spec

* Switch manageiq_connection to use apply_defaults

* add choices to api_version in argument_spec
This commit is contained in:
Matt Martz 2018-05-07 11:23:13 -05:00 committed by GitHub
parent 108eac9339
commit 1663b64e18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 130 additions and 10 deletions

View file

@ -1975,7 +1975,13 @@ class AnsibleModule(object):
wanted = v.get('type', None)
if wanted == 'dict' or (wanted == 'list' and v.get('elements', '') == 'dict'):
spec = v.get('options', None)
if spec is None or k not in params or params[k] is None:
if v.get('apply_defaults', False):
if spec is not None:
if params.get(k) is None:
params[k] = {}
else:
continue
elif spec is None or k not in params or params[k] is None:
continue
self._options_context.append(k)