made inventory plugins list to keep config order

pull/25119/head
Brian Coca 8 years ago
parent 54bdcd734e
commit e19109fb3d

@ -129,7 +129,7 @@ class InventoryManager(object):
# caches # caches
self._pattern_cache = {} # resolved host patterns self._pattern_cache = {} # resolved host patterns
self._inventory_plugins = {} # for generating inventory self._inventory_plugins = [] # for generating inventory
# the inventory dirs, files, script paths or lists of hosts # the inventory dirs, files, script paths or lists of hosts
if sources is None: if sources is None:
@ -181,7 +181,7 @@ class InventoryManager(object):
for name in C.INVENTORY_ENABLED: for name in C.INVENTORY_ENABLED:
plugin = inventory_loader.get(name) plugin = inventory_loader.get(name)
name = os.path.splitext(os.path.basename(plugin._original_path))[0] name = os.path.splitext(os.path.basename(plugin._original_path))[0]
self._inventory_plugins[name] = plugin self._inventory_plugins.append(plugin)
if not self._inventory_plugins: if not self._inventory_plugins:
raise AnsibleError("No inventory plugins available to generate inventory, make sure you have at least one whitelisted.") raise AnsibleError("No inventory plugins available to generate inventory, make sure you have at least one whitelisted.")
@ -208,7 +208,7 @@ class InventoryManager(object):
else: else:
display.warning("No inventory was parsed, only implicit localhost is available") display.warning("No inventory was parsed, only implicit localhost is available")
self._inventory_plugins = {} self._inventory_plugins = []
def parse_source(self, source, cache=True): def parse_source(self, source, cache=True):
''' Generate or update inventory for the source provided ''' ''' Generate or update inventory for the source provided '''
@ -249,10 +249,9 @@ class InventoryManager(object):
display.debug(u'Attempting to use plugin %s' % plugin) display.debug(u'Attempting to use plugin %s' % plugin)
# initialize # initialize
inv = self._inventory_plugins[plugin] if plugin.verify_file(source):
if inv.verify_file(source):
try: try:
inv.parse(self._inventory, self._loader, source, cache=cache) plugin.parse(self._inventory, self._loader, source, cache=cache)
parsed = True parsed = True
display.vvv(u'Parsed %s inventory source with %s plugin' % (to_text(source), plugin)) display.vvv(u'Parsed %s inventory source with %s plugin' % (to_text(source), plugin))
break break

Loading…
Cancel
Save