ansible/test/sanity/validate-modules
2016-10-13 18:41:41 +01:00
..
__init__.py
module_args.py
README.md Update validate-modules README and convert to MD. (#18008) 2016-10-13 18:41:41 +01:00
schema.py
utils.py
validate-modules

validate-modules

Python program to help test or validate Ansible modules.

Originally developed by Matt Martz (@sivel)

Usage

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

Help

usage: validate-modules [-h] [-w] [--exclude EXCLUDE] 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

Current Validations

Modules

Errors

  • Interpreter line is not #!/usr/bin/python
  • main() not at the bottom of the file
  • Module does not import ansible.module_utils.basic
  • Missing DOCUMENTATION
  • Documentation is invalid YAML
  • Invalid schema for DOCUMENTATION
  • Missing EXAMPLES
  • Invalid Python Syntax
  • Tabbed indentation
  • Use of sys.exit() instead of exit_json or fail_json
  • Missing GPLv3 license header in module
  • PowerShell module missing WANT_JSON
  • PowerShell module missing POWERSHELL_COMMON
  • New modules have the correct version_added
  • New arguments have the correct version_added
  • Modules should not import requests, instead use ansible.module_utils.urls
  • Missing RETURN for new modules

Warnings

  • Try/Except HAS_ expression missing
  • Missing RETURN for existing modules
  • import json found
  • Module contains duplicate globals from basic.py

Module Directories (Python Packages)

  • Missing __init__.py