Spec-Zone.ru › Ansible 2.4

validate-modules

  • Использование
  • Справка
  • Расширение validate-modules
  • Коды
    • Ошибки
    • Предупреждения

Программа на Python для проверки или валидации модулей Ansible.

validate-modules является одним из ansible-test Тестов на корректность, см. Тесты на корректность для получения дополнительной информации.

Разработан первоначально Мэттом Марцем (@sivel)

Использование

cd /path/to/ansible/source
source hacking/env-setup
ansible-test sanity --test validate-modules

Справка

usage: validate-modules [-h] [-w] [--exclude EXCLUDE] [--arg-spec]
                        [--base-branch BASE_BRANCH] [--format {json,plain}]
                        [--output OUTPUT]
                        modules [modules ...]

positional arguments:
  modules               Path to module or module directory

optional arguments:
  -h, --help            show this help message and exit
  -w, --warnings        Show warnings
  --exclude EXCLUDE     RegEx exclusion pattern
  --arg-spec            Analyze module argument spec
  --base-branch BASE_BRANCH
                        Used in determining if new options were added
  --format {json,plain}
                        Output format. Default: "plain"
  --output OUTPUT       Output location, use "-" for stdout. Default "-"

Расширение validate-modules

Инструмент validate-modules имеет файл schema.py, который используется для валидации блоков YAML, таких как DOCUMENTATION и RETURNS.

Коды

Ошибки

код пример сообщения
1xx Расположения
101 Строка интерпретатора не #!/usr/bin/python
102 Строка интерпретатора не #!powershell
103 Не найден вызов main()
104 Вызов main() не является последней строкой
105 Заголовок лицензии GPLv3 не найден
106 Импорт найден до переменных документации. Все импорты должны располагаться ниже DOCUMENTATION/EXAMPLES/RETURN/ANSIBLE_METADATA
107 Импорты должны располагаться непосредственно под DOCUMENTATION/EXAMPLES/RETURN/ANSIBLE_METADATA
2xx Импорты
201 Не найден импорт module_utils
203 Найден импорт requests, следует использовать ansible.module_utils.urls вместо него
204 Найден импорт boto, новые модули должны использовать boto3
205 Найден вызов sys.exit(). Следует использовать exit_json/fail_json
206 WANT_JSON не найден в модуле
207 REPLACER_WINDOWS не найден в модуле
208 Импорты module_utils должны импортировать конкретные компоненты, а не *
209 Разрешены только следующие импорты from __future__: absolute_import, division, и print_function.
3xx Документация
301 Не предоставлена документация DOCUMENTATION
302 DOCUMENTATION не является валидным YAML
303 Отсутствует фрагмент DOCUMENTATION
304 Неизвестная ошибка DOCUMENTATION
305 Неверная схема DOCUMENTATION
306 Модульный уровень version_added не является корректным номером версии
307 Модульный уровень version_added некорректен
308 version_added для новой опции не является корректным номером версии
309 version_added для новой опции некорректен
310 Не предоставлена документация EXAMPLES
311 EXAMPLES не является валидным YAML
312 Не предоставлена документация RETURN
313 RETURN не является валидным YAML
314 Не предоставлена документация ANSIBLE_METADATA
315 ANSIBLE_METADATA не является валидным YAML
316 Неверная схема ANSIBLE_METADATA
317 Параметр помечен как обязательный, но задан по умолчанию. Аргументы с значением по умолчанию не должны быть помечены как обязательные
318 Модуль устарел, но DOCUMENTATION.deprecated отсутствует
319 Отсутствуют или неверны фрагменты RETURN
4xx Синтаксис
401 Ошибка Python SyntaxError при разборе модуля
402 Отступы содержат табуляцию
403 Найден сравнительный тип с использованием type(). Используйте isinstance() вместо него
5xx Имена
501 Официальные модули Ansible должны иметь расширение .py для модулей Python или .ps1 для модулей PowerShell
502 Подкаталоги модулей Ansible должны содержать __init__.py
503 Отсутствует файл документации Python

Предупреждения

код пример сообщения
1xx Расположения
107 Импорты должны располагаться непосредственно под DOCUMENTATION/EXAMPLES/RETURN/ANSIBLE_METADATA для устаревших модулей
2xx Импорты
208 Импорты module_utils для устаревших модулей должны импортировать конкретные компоненты, а не *
291 Отсутствует выражение try/except HAS_
292 Не найден импорт ansible.module_utils.basic
3xx Документация
312 Не предоставлена документация RETURN для устаревшего модуля
391 Неизвестная ошибка DOCUMENTATION
392 Отсутствует фрагмент DOCUMENTATION

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/dev_guide/testing_validate-modules.html

Spec-Zone.ru

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