deps
指南
使用 deps
ansible_collections.community.general.plugins.module_utils.deps
模块实用程序简化了代码的导入,如 导入和使用共享代码 中所述。请注意,deps
旨在专门与 Ansible 模块一起使用,而不是其他类型的插件。
来自开发者指南的相同示例将变为
from ansible_collections.community.general.plugins.module_utils import deps
with deps.declare("foo"):
import foo
然后在 main()
中,紧随 argspec 之后(或代码中的任何位置),执行以下操作
deps.validate(module) # assuming module is a valid AnsibleModule instance
默认情况下,deps
将依赖 ansible.module_utils.basic.missing_required_lib
来生成关于导入失败的消息。该函数接受参数 reason
和 url
,deps
也是如此
with deps.declare("foo", reason="foo is needed to properly bar", url="https://foo.bar.io"):
import foo
如果您宁愿编写自定义消息而不是使用 missing_required_lib
,则执行以下操作
with deps.declare("foo", msg="Custom msg explaining why foo is needed"):
import foo
deps
允许声明多个依赖项
with deps.declare("foo"):
import foo
with deps.declare("bar"):
import bar
with deps.declare("doe"):
import doe
默认情况下,deps.validate()
将检查所有声明的依赖项,但如果需要,可以通过执行以下操作选择性地验证它们
deps.validate(module, "foo") # only validates the "foo" dependency
deps.validate(module, "doe:bar") # only validates the "doe" and "bar" dependencies
deps.validate(module, "-doe:bar") # validates all dependencies except "doe" and "bar"
6.1.0 版本新增。