diff --git a/lib/ansible/utils/plugins.py b/lib/ansible/utils/plugins.py index fbee4bde68..8d356fa0a7 100644 --- a/lib/ansible/utils/plugins.py +++ b/lib/ansible/utils/plugins.py @@ -175,18 +175,19 @@ class PluginLoader(object): found = None for path in [p for p in self._get_paths() if p not in self._searched_paths]: - for potential_file in os.listdir(path): - for suffix in suffixes: - if potential_file.endswith(suffix): - full_path = os.path.join(path, potential_file) - full_name = os.path.basename(full_path) - break - else: # Yes, this is a for-else: http://bit.ly/1ElPkyg - continue - - if full_name not in self._plugin_path_cache: - self._plugin_path_cache[full_name] = full_path - + if os.path.isdir(path): + for potential_file in os.listdir(path): + for suffix in suffixes: + if potential_file.endswith(suffix): + full_path = os.path.join(path, potential_file) + full_name = os.path.basename(full_path) + break + else: # Yes, this is a for-else: http://bit.ly/1ElPkyg + continue + + if full_name not in self._plugin_path_cache: + self._plugin_path_cache[full_name] = full_path + self._searched_paths.add(path) for full_name in potential_names: if full_name in self._plugin_path_cache: