Better fix for invalid data in 'options' field (#58353)

This commit is contained in:
Sam Doran 2019-07-11 10:19:18 -04:00 committed by GitHub
parent e8f4ebb22c
commit 36da7e462a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1178,13 +1178,13 @@ class ModuleValidator(Validator):
deprecated_args_from_argspec.add(arg)
deprecated_args_from_argspec.update(data.get('aliases', []))
if arg == 'provider' and self.object_path.startswith('lib/ansible/modules/network/'):
if data.get('options') and not isinstance(data.get('options'), Mapping):
if data.get('options') is not None and not isinstance(data.get('options'), Mapping):
self.reporter.error(
path=self.object_path,
code=331,
msg="Argument 'options' in argument_spec['provider'] must be a dictionary/hash when used",
)
else:
elif data.get('options'):
# Record provider options from network modules, for later comparison
for provider_arg, provider_data in data.get('options', {}).items():
provider_args.add(provider_arg)