summaryrefslogtreecommitdiff
path: root/lib/ansible/utils
diff options
context:
space:
mode:
authorFelix Fontein <felix@fontein.de>2021-08-09 17:22:09 +0200
committerGitHub <noreply@github.com>2021-08-09 10:22:09 -0500
commitfae299708fb971d450a6874d25f62f5104db2e6d (patch)
treea90334f64a08118cb22df74bb44850d7e6c24219 /lib/ansible/utils
parente23fdee45e7db82de15fd056b1e04253d3ce8b40 (diff)
downloadansible-fae299708fb971d450a6874d25f62f5104db2e6d.tar.gz
plugin attributes: make validate-modules strict again, improve version_added support (#74602)
* Add basic schema for attributes. * Support attributes for version_added_collection adding mechanism. * Add changelog fragment. * Support new attribute properties from #74331. * Require additional properties strictly.
Diffstat (limited to 'lib/ansible/utils')
-rw-r--r--lib/ansible/utils/plugin_docs.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/ansible/utils/plugin_docs.py b/lib/ansible/utils/plugin_docs.py
index dc1160d485..eb03dc081c 100644
--- a/lib/ansible/utils/plugin_docs.py
+++ b/lib/ansible/utils/plugin_docs.py
@@ -89,6 +89,13 @@ def _process_versions_and_dates(fragment, is_module, return_docs, callback):
if isinstance(return_value.get('contains'), MutableMapping):
process_return_values(return_value['contains'])
+ def process_attributes(attributes):
+ for attribute in attributes.values():
+ if not isinstance(attribute, MutableMapping):
+ continue
+ if 'version_added' in attribute:
+ callback(attribute, 'version_added', 'version_added_collection')
+
if not fragment:
return
@@ -102,6 +109,8 @@ def _process_versions_and_dates(fragment, is_module, return_docs, callback):
process_deprecation(fragment['deprecated'], top_level=True)
if isinstance(fragment.get('options'), MutableMapping):
process_options(fragment['options'])
+ if isinstance(fragment.get('attributes'), MutableMapping):
+ process_attributes(fragment['attributes'])
def add_collection_to_versions_and_dates(fragment, collection_name, is_module, return_docs=False):