|
|
|
validate-modules
|
|
|
|
================
|
|
|
|
|
|
|
|
Python program to help test or validate Ansible modules.
|
|
|
|
|
|
|
|
Originally developed by Matt Martz (@sivel)
|
|
|
|
|
|
|
|
Usage
|
|
|
|
~~~~~
|
|
|
|
|
|
|
|
.. code:: shell
|
|
|
|
|
|
|
|
cd /path/to/ansible/source
|
|
|
|
source hacking/env-setup
|
|
|
|
test/sanity/validate-modules/validate-modules /path/to/modules
|
|
|
|
|
|
|
|
Help
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
.. code:: shell
|
|
|
|
|
|
|
|
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
|
|
|
|
#. Use of ``type()`` for type comparison instead of ``isinstance()``
|
|
|
|
|
|
|
|
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``
|