Add checks for from module_utils import * (#21800)

pull/21781/head
Matt Martz 7 years ago committed by Matt Clay
parent 8c521655e1
commit 4b320ce0e4

@ -76,6 +76,8 @@ Errors
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| 207 | ``REPLACER_WINDOWS`` not found in module | | 207 | ``REPLACER_WINDOWS`` not found in module |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| 208 | ``module_utils`` imports should import specific components, not ``*`` |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| **3xx** | **Documentation** | | **3xx** | **Documentation** |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
@ -140,6 +142,8 @@ Warnings
+=========+============================================================================================================================================+ +=========+============================================================================================================================================+
| **2xx** | **Imports** | | **2xx** | **Imports** |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| 208 | ``module_utils`` imports should import specific components for legacy module, not ``*`` |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| 291 | Try/Except ``HAS_`` expression missing | | 291 | Try/Except ``HAS_`` expression missing |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +---------+--------------------------------------------------------------------------------------------------------------------------------------------+
| 292 | Did not find ``ansible.module_utils.basic`` import | | 292 | Did not find ``ansible.module_utils.basic`` import |

@ -364,6 +364,19 @@ class ModuleValidator(Validator):
linenos.append(child.lineno) linenos.append(child.lineno)
for name in child.names: 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 if (isinstance(name, ast.alias) and
name.name == 'basic'): name.name == 'basic'):
found_basic = True found_basic = True

Loading…
Cancel
Save