summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ansible/module_utils/common/parameters.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/ansible/module_utils/common/parameters.py b/lib/ansible/module_utils/common/parameters.py
index 2624bb5092..8bba4d5f32 100644
--- a/lib/ansible/module_utils/common/parameters.py
+++ b/lib/ansible/module_utils/common/parameters.py
@@ -724,14 +724,17 @@ def _validate_sub_spec(argument_spec, parameters, prefix='', options_context=Non
options_context.append(param)
# Make sure we can iterate over the elements
- if isinstance(parameters[param], dict):
+ if not isinstance(parameters[param], Sequence) or isinstance(parameters[param], string_types):
elements = [parameters[param]]
else:
elements = parameters[param]
for idx, sub_parameters in enumerate(elements):
+ no_log_values.update(set_fallbacks(sub_spec, sub_parameters))
+
if not isinstance(sub_parameters, dict):
errors.append(SubParameterTypeError("value of '%s' must be of type dict or list of dicts" % param))
+ continue
# Set prefix for warning messages
new_prefix = prefix + param
@@ -739,8 +742,6 @@ def _validate_sub_spec(argument_spec, parameters, prefix='', options_context=Non
new_prefix += '[%d]' % idx
new_prefix += '.'
- no_log_values.update(set_fallbacks(sub_spec, sub_parameters))
-
alias_warnings = []
alias_deprecations = []
try: