Spec-Zone.ru › Ansible

Руководство по 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API