validate-modules
分析模块以查找代码和文档中的常见问题。
用法
cd /path/to/ansible/source
source hacking/env-setup
ansible-test sanity --test validate-modules
帮助
键入 ansible-test sanity --test validate-modules -h
以显示有关使用此健全性测试的帮助信息。
扩展 validate-modules
validate-modules
工具具有一个 schema.py,用于验证 YAML 块,例如 DOCUMENTATION
和 RETURNS
。
代码
错误代码 |
类型 |
级别 |
示例消息 |
ansible-deprecated-module |
文档 |
错误 |
一个模块已弃用,应该在当前或更早的 Ansible 版本中删除 |
collection-deprecated-module |
文档 |
错误 |
一个模块已弃用,应该在当前或更早的集合版本中删除 |
ansible-deprecated-version |
文档 |
错误 |
一个功能已弃用,应该在当前或更早的 Ansible 版本中删除 |
ansible-module-not-initialized |
语法 |
错误 |
执行模块未导致初始化 AnsibleModule |
collection-deprecated-version |
文档 |
错误 |
一个功能已弃用,应该在当前或更早的集合版本中删除 |
deprecated-date |
文档 |
错误 |
今天之前的日期显示为 |
deprecation-mismatch |
文档 |
错误 |
模块被标记为已弃用或删除,至少出现在文件名、元数据或 DOCUMENTATION 中(在 DOCUMENTATION 中设置 DOCUMENTATION.deprecated 以弃用或删除所有 Documentation 以删除),但不是在所有三个地方。 |
doc-choices-do-not-match-spec |
文档 |
错误 |
来自 argument_spec 的“choices”的值与文档不匹配 |
doc-choices-incompatible-type |
文档 |
错误 |
来自文档的 Choices 值与 argument_spec 中定义的类型不兼容 |
doc-default-does-not-match-spec |
文档 |
错误 |
来自 argument_spec 的“default”的值与文档不匹配 |
doc-default-incompatible-type |
文档 |
错误 |
来自文档的默认值与 argument_spec 中定义的类型不兼容 |
doc-elements-invalid |
文档 |
错误 |
文档为参数指定了元素,而“type”不是 |
doc-elements-mismatch |
文档 |
错误 |
Argument_spec 定义的元素与文档不同 |
doc-missing-type |
文档 |
错误 |
文档未指定类型,但 |
doc-required-mismatch |
文档 |
错误 |
argument_spec 中的参数是必需的,但文档说它不是,反之亦然 |
doc-type-does-not-match-spec |
文档 |
错误 |
Argument_spec 定义的类型与文档不同 |
documentation-error |
文档 |
错误 |
未知 |
documentation-syntax-error |
文档 |
错误 |
无效的 |
import-before-documentation |
导入 |
错误 |
导入出现在文档变量之前。所有导入必须出现在 |
import-error |
文档 |
错误 |
|
attributes-check-mode |
文档 |
错误 |
如果模块记录了 |
attributes-check-mode-details |
文档 |
错误 |
如果模块以支持值 |
import-placement |
位置 |
警告 |
导入应直接位于 |
imports-improper-location |
导入 |
错误 |
导入应直接位于 |
incompatible-choices |
文档 |
错误 |
来自 argument_spec 的 Choices 值与 argument_spec 中定义的类型不兼容 |
incompatible-default-type |
文档 |
错误 |
来自 argument_spec 的默认值与 argument_spec 中定义的类型不兼容 |
invalid-argument-name |
文档 |
错误 |
argument_spec 中的参数不能是“message”、“syslog_facility”,因为它在 Ansible 核心引擎中被内部使用 |
invalid-argument-spec |
文档 |
错误 |
argument_spec 中的参数在使用时必须是字典/哈希 |
invalid-argument-spec-options |
文档 |
错误 |
argument_spec 中的子选项无效 |
invalid-documentation |
文档 |
错误 |
|
invalid-documentation-markup |
文档 |
错误 |
|
invalid-documentation-options |
文档 |
错误 |
|
invalid-examples |
文档 |
错误 |
|
invalid-extension |
命名 |
错误 |
官方 Ansible 模块必须具有 |
invalid-module-schema |
文档 |
错误 |
|
invalid-removal-version |
文档 |
错误 |
无法解析应该删除功能的版本(对于集合,它必须是 语义版本) |
invalid-requires-extension |
命名 |
错误 |
模块 |
missing-doc-fragment |
文档 |
错误 |
|
missing-existing-doc-fragment |
文档 |
警告 |
预先存在的 |
missing-documentation |
文档 |
错误 |
未提供 |
missing-examples |
文档 |
错误 |
未提供 |
missing-gplv3-license |
文档 |
错误 |
未找到 GPLv3 许可证头 |
missing-module-utils-basic-import |
导入 |
警告 |
未找到 |
missing-module-utils-import-csharp-requirements |
导入 |
错误 |
未找到 |
missing-powershell-interpreter |
语法 |
错误 |
解释器行不是 |
missing-python-interpreter |
语法 |
错误 |
解释器行不是 |
missing-return |
文档 |
错误 |
未提供 |
missing-return-legacy |
文档 |
警告 |
未为旧版模块提供 |
missing-suboption-docs |
文档 |
错误 |
argument_spec 中的参数有子选项,但文档未定义子选项 |
module-incorrect-version-added |
文档 |
错误 |
模块级 |
module-invalid-version-added |
文档 |
错误 |
模块级 |
module-utils-specific-import |
导入 |
错误 |
|
multiple-utils-per-requires |
导入 |
错误 |
|
multiple-csharp-utils-per-requires |
导入 |
错误 |
Ansible C# util 要求不支持每个语句多个 util |
no-default-for-required-parameter |
文档 |
错误 |
选项标记为必需,但指定了默认值。带有默认值的参数不应标记为必需 |
no-log-needed |
参数 |
错误 |
选项名称表明该选项包含一个秘密值,而 |
nonexistent-parameter-documented |
文档 |
错误 |
参数在 DOCUMENTATION.options 中列出,但模块不接受 |
option-incorrect-version-added |
文档 |
错误 |
新选项的 |
option-invalid-version-added |
文档 |
错误 |
选项的 |
parameter-invalid |
文档 |
错误 |
argument_spec 中的参数不是有效的 Python 标识符 |
parameter-invalid-elements |
文档 |
错误 |
当 “type” 的值为 |
implied-parameter-type-mismatch |
文档 |
错误 |
Argument_spec 隐含 |
parameter-type-not-in-doc |
文档 |
错误 |
Type 值在 |
parameter-alias-repeated |
参数 |
错误 |
argument_spec 中的参数在 aliases 中至少指定了一个重复的别名 |
parameter-alias-self |
参数 |
错误 |
argument_spec 中的参数被指定为其自身的别名 |
parameter-documented-multiple-times |
文档 |
错误 |
argument_spec 中带有别名的参数被多次记录 |
parameter-list-no-elements |
参数 |
错误 |
argument_spec 中的参数 “type” 被指定为 |
parameter-state-invalid-choice |
参数 |
错误 |
参数 |
python-syntax-error |
语法 |
错误 |
解析模块时出现 Python |
removal-version-must-be-major |
文档 |
错误 |
根据语义版本控制规范 (https://semver.org/),允许移除功能的唯一版本是主版本 (x.0.0) |
return-syntax-error |
文档 |
错误 |
|
return-invalid-version-added |
文档 |
错误 |
返回值的 |
subdirectory-missing-init |
命名 |
错误 |
Ansible 模块子目录必须包含 |
try-except-missing-has |
导入 |
警告 |
Try/Except |
undocumented-parameter |
文档 |
错误 |
参数在 argument_spec 中列出,但在模块中没有记录 |
unidiomatic-typecheck |
语法 |
错误 |
找到使用 |
unknown-doc-fragment |
文档 |
警告 |
未知的预先存在的 |
use-boto3 |
导入 |
错误 |
找到 |
use-fail-json-not-sys-exit |
导入 |
错误 |
找到 |
use-module-utils-urls |
导入 |
错误 |
找到 |
use-run-command-not-os-call |
导入 |
错误 |
使用 |
use-run-command-not-popen |
导入 |
错误 |
使用 |
use-short-gplv3-license |
文档 |
错误 |
GPLv3 许可证头应该使用 简短形式 用于新模块 |
mutually_exclusive-type |
文档 |
错误 |
mutually_exclusive 条目包含非字符串值 |
mutually_exclusive-collision |
文档 |
错误 |
mutually_exclusive 条目包含重复的项 |
mutually_exclusive-unknown |
文档 |
错误 |
mutually_exclusive 条目包含在 argument_spec 中未出现的选项(可能是选项的别名?) |
required_one_of-type |
文档 |
错误 |
required_one_of 条目包含非字符串值 |
required_one_of-collision |
文档 |
错误 |
required_one_of 条目包含重复的项 |
required_one_of-unknown |
文档 |
错误 |
required_one_of 条目包含在 argument_spec 中未出现的选项(可能是选项的别名?) |
required_together-type |
文档 |
错误 |
required_together 条目包含非字符串值 |
required_together-collision |
文档 |
错误 |
required_together 条目包含重复的项 |
required_together-unknown |
文档 |
错误 |
required_together 条目包含在 argument_spec 中未出现的选项(可能是选项的别名?) |
required_if-is_one_of-type |
文档 |
错误 |
required_if 条目包含第四个不是 bool 值的值 |
required_if-requirements-type |
文档 |
错误 |
required_if 条目包含第三个值(要求),该值不是列表或元组 |
required_if-requirements-collision |
文档 |
错误 |
required_if 条目在要求中包含重复的项 |
required_if-requirements-unknown |
文档 |
错误 |
required_if 条目的要求包含在 argument_spec 中未出现的选项(可能是选项的别名?) |
required_if-unknown-key |
文档 |
错误 |
required_if 条目的键在 argument_spec 中未出现(可能是选项的别名?) |
required_if-key-in-requirements |
文档 |
错误 |
required_if 条目在其要求列表/元组中包含其键 |
required_if-value-type |
文档 |
错误 |
required_if 条目的值为其键指定类型的类型 |
required_by-collision |
文档 |
错误 |
required_by 条目包含重复的项 |
required_by-unknown |
文档 |
错误 |
required_by 条目包含在 argument_spec 中未出现的选项(可能是选项的别名?) |
version-added-must-be-major-or-minor |
文档 |
错误 |
根据语义版本控制规范 (https://semver.org/),允许添加功能的唯一版本是主版本和次版本 (x.y.0) |