Check that provider['options'] is a dictionary in validate-modules (#58078)

This commit is contained in:
Sam Doran 2019-06-21 08:39:12 -04:00 committed by GitHub
parent 58d446e61a
commit dc8f7b38e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1177,10 +1177,17 @@ 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/'):
# Record provider options from network modules, for later comparison
for provider_arg, provider_data in data.get('options', {}).items():
provider_args.add(provider_arg)
provider_args.update(provider_data.get('aliases', []))
if data.get('options') and not isinstance(data.get('options'), dict):
self.reporter.error(
path=self.object_path,
code=331,
msg="Argument 'options' in argument_spec['provider'] must be a dictionary/hash when used",
)
else:
# Record provider options from network modules, for later comparison
for provider_arg, provider_data in data.get('options', {}).items():
provider_args.add(provider_arg)
provider_args.update(provider_data.get('aliases', []))
if data.get('required') and data.get('default', object) != object:
self.reporter.error(