ANSIBLE_METADATA doesn't support YAML currently, change 315 to invalid data type (#35009)

This commit is contained in:
Matt Martz 2018-01-17 14:15:22 -06:00 committed by GitHub
parent b20df1be02
commit 3c400c5899
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 18 deletions

View file

@ -100,7 +100,7 @@ Errors
312 No ``RETURN`` documentation provided
313 ``RETURN`` is not valid YAML
314 No ``ANSIBLE_METADATA`` provided
315 ``ANSIBLE_METADATA`` is not valid YAML
315 ``ANSIBLE_METADATA`` was not provided as a dict, YAML not supported
316 Invalid ``ANSIBLE_METADATA`` schema
317 option is marked as required but specifies a default.
Arguments with a default should not be marked as required

View file

@ -840,7 +840,7 @@ class ModuleValidator(Validator):
code=303,
msg='DOCUMENTATION fragment missing: %s' % fragment
)
except Exception:
except Exception as e:
self.reporter.trace(
path=self.object_path,
tracebk=traceback.format_exc()
@ -848,7 +848,7 @@ class ModuleValidator(Validator):
self.reporter.error(
path=self.object_path,
code=304,
msg='Unknown DOCUMENTATION error, see TRACE'
msg='Unknown DOCUMENTATION error, see TRACE: %s' % e
)
if 'options' in doc and doc['options'] is None:
@ -946,22 +946,32 @@ class ModuleValidator(Validator):
doc_info['ANSIBLE_METADATA']['value']
)
else:
metadata, errors, traces = parse_yaml(
doc_info['ANSIBLE_METADATA']['value'].s,
doc_info['ANSIBLE_METADATA']['lineno'],
self.name, 'ANSIBLE_METADATA'
# ANSIBLE_METADATA doesn't properly support YAML
# we should consider removing it from the spec
# Below code kept, incase we change our minds
# metadata, errors, traces = parse_yaml(
# doc_info['ANSIBLE_METADATA']['value'].s,
# doc_info['ANSIBLE_METADATA']['lineno'],
# self.name, 'ANSIBLE_METADATA'
# )
# for error in errors:
# self.reporter.error(
# path=self.object_path,
# code=315,
# **error
# )
# for trace in traces:
# self.reporter.trace(
# path=self.object_path,
# tracebk=trace
# )
self.reporter.error(
path=self.object_path,
code=315,
msg='ANSIBLE_METADATA was not provided as a dict, YAML not supported'
)
for error in errors:
self.reporter.error(
path=self.object_path,
code=315,
**error
)
for trace in traces:
self.reporter.trace(
path=self.object_path,
tracebk=trace
)
if metadata:
self._validate_docs_schema(metadata, metadata_1_1_schema(deprecated),