diff --git a/test/sanity/validate-modules/README.rst b/test/sanity/validate-modules/README.rst index b94173d28f2..427f621894d 100644 --- a/test/sanity/validate-modules/README.rst +++ b/test/sanity/validate-modules/README.rst @@ -76,6 +76,8 @@ Errors +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ | 207 | ``REPLACER_WINDOWS`` not found in module | +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| 208 | ``module_utils`` imports should import specific components, not ``*`` | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ | **3xx** | **Documentation** | +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ @@ -140,6 +142,8 @@ Warnings +=========+============================================================================================================================================+ | **2xx** | **Imports** | +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| 208 | ``module_utils`` imports should import specific components for legacy module, not ``*`` | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ | 291 | Try/Except ``HAS_`` expression missing | +---------+--------------------------------------------------------------------------------------------------------------------------------------------+ | 292 | Did not find ``ansible.module_utils.basic`` import | diff --git a/test/sanity/validate-modules/validate-modules b/test/sanity/validate-modules/validate-modules index e5c0d3bf016..0cf61c81003 100755 --- a/test/sanity/validate-modules/validate-modules +++ b/test/sanity/validate-modules/validate-modules @@ -364,6 +364,19 @@ class ModuleValidator(Validator): linenos.append(child.lineno) for name in child.names: + if ('module_utils' in getattr(child, 'module', '') and + isinstance(name, ast.alias) and + name.name == '*'): + msg = ( + 208, + ('module_utils imports should import specific ' + 'components, not "*". line %d' % child.lineno) + ) + if self._is_new_module(): + self.errors.append(msg) + else: + self.warnings.append(msg) + if (isinstance(name, ast.alias) and name.name == 'basic'): found_basic = True