Skip to content

Commit

Permalink
Merge pull request ansible#12330 from cchurch/revert_find_plugin_changes
Browse files Browse the repository at this point in the history
Revert "Fix order of loading of modules."
  • Loading branch information
bcoca committed Sep 12, 2015
2 parents 9d4d7bd + ed3a979 commit 0375815
Showing 1 changed file with 20 additions and 28 deletions.
48 changes: 20 additions & 28 deletions lib/ansible/plugins/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,12 +196,12 @@ def find_plugin(self, name, suffixes=None):
else:
suffixes = ['.py', '']

try:
return self._plugin_path_cache[name]
except KeyError:
# Cache miss. Now let's find the the plugin
pass
potential_names = frozenset('%s%s' % (name, s) for s in suffixes)
for full_name in potential_names:
if full_name in self._plugin_path_cache:
return self._plugin_path_cache[full_name]

found = None
for path in [p for p in self._get_paths() if p not in self._searched_paths]:
if os.path.isdir(path):
try:
Expand All @@ -212,38 +212,30 @@ def find_plugin(self, name, suffixes=None):
for suffix in suffixes:
if full_path.endswith(suffix):
full_name = os.path.basename(full_path)
if suffix:
base_name = full_name[:-len(suffix)]
else:
base_name = full_name
break
else: # Yes, this is a for-else: http://bit.ly/1ElPkyg
continue

# Module found, now see if it's already in the cache
if base_name not in self._plugin_path_cache:
self._plugin_path_cache[base_name] = full_path
if full_name not in self._plugin_path_cache:
self._plugin_path_cache[full_name] = full_path

self._searched_paths.add(path)
try:
return self._plugin_path_cache[name]
except KeyError:
# Didn't find the plugin in this directory. Load modules from
# the next one
pass
for full_name in potential_names:
if full_name in self._plugin_path_cache:
return self._plugin_path_cache[full_name]

# if nothing is found, try finding alias/deprecated
if not name.startswith('_'):
alias_name = '_' + name
# We've already cached all the paths at this point
if alias_name in self._plugin_path_cache:
if not os.path.islink(self._plugin_path_cache[alias_name]):
display.deprecated('%s is kept for backwards compatibility '
'but usage is discouraged. The module '
'documentation details page may explain '
'more about this rationale.' %
name.lstrip('_'))
return self._plugin_path_cache[alias_name]
for alias_name in ('_%s' % n for n in potential_names):
# We've already cached all the paths at this point
if alias_name in self._plugin_path_cache:
if not os.path.islink(self._plugin_path_cache[alias_name]):
display.deprecated('%s is kept for backwards compatibility '
'but usage is discouraged. The module '
'documentation details page may explain '
'more about this rationale.' %
name.lstrip('_'))
return self._plugin_path_cache[alias_name]

return None

Expand Down

0 comments on commit 0375815

Please sign in to comment.