Catch import warnings in a common location for both get() and all()

Potential solution for #12979
This commit is contained in:
James Cammarata 2015-11-10 11:25:07 -05:00
parent 9f0c2cfda5
commit 0fc187893d

View file

@ -307,8 +307,10 @@ class PluginLoader:
if name in sys.modules:
# See https://github.com/ansible/ansible/issues/13110
return sys.modules[name]
with open(path, 'r') as module_file:
module = imp.load_source(name, path, module_file)
with warnings.catch_warnings():
warnings.simplefilter("ignore", RuntimeWarning)
with open(path, 'r') as module_file:
module = imp.load_source(name, path, module_file)
return module
def get(self, name, *args, **kwargs):
@ -344,9 +346,7 @@ class PluginLoader:
continue
if path not in self._module_cache:
with warnings.catch_warnings():
warnings.simplefilter("ignore", RuntimeWarning)
self._module_cache[path] = self._load_module_source(name, path)
self._module_cache[path] = self._load_module_source(name, path)
if kwargs.get('class_only', False):
obj = getattr(self._module_cache[path], self.class_name)