From c86120cea60049ae5c0dc5213cf1ace62515bf58 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Thu, 19 Nov 2015 09:39:37 -0800 Subject: [PATCH] Fix non-module plugins picking up files that did not end in .py. This was caused by accessing the cache using the passed in mod_type rather than the suffix that we calculate with knowledge of whether this is a module or non-module plugin. --- lib/ansible/plugins/__init__.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/ansible/plugins/__init__.py b/lib/ansible/plugins/__init__.py index 87de300e3c..139e5a7d61 100644 --- a/lib/ansible/plugins/__init__.py +++ b/lib/ansible/plugins/__init__.py @@ -213,15 +213,6 @@ class PluginLoader: def find_plugin(self, name, mod_type=''): ''' Find a plugin named name ''' - # The particular cache to look for modules within. This matches the - # requested mod_type - pull_cache = self._plugin_path_cache[mod_type] - try: - return pull_cache[name] - except KeyError: - # Cache miss. Now let's find the plugin - pass - if mod_type: suffix = mod_type elif self.class_name: @@ -232,6 +223,15 @@ class PluginLoader: # they can have any suffix suffix = '' + # The particular cache to look for modules within. This matches the + # requested mod_type + pull_cache = self._plugin_path_cache[suffix] + try: + return pull_cache[name] + except KeyError: + # Cache miss. Now let's find the plugin + pass + # TODO: Instead of using the self._paths cache (PATH_CACHE) and # self._searched_paths we could use an iterator. Before enabling that # we need to make sure we don't want to add additional directories