Руководство по 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.
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/docsite/guide_deps.html