From 43415947d0229e627993b1defd59052a22579b65 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Sun, 14 Jul 2013 16:30:15 -0400 Subject: [PATCH] Directory loads for inventory import --- .../management/commands/inventory_import.py | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/awx/main/management/commands/inventory_import.py b/awx/main/management/commands/inventory_import.py index 42286a4e3b..3dab83adb7 100644 --- a/awx/main/management/commands/inventory_import.py +++ b/awx/main/management/commands/inventory_import.py @@ -8,6 +8,7 @@ import sys from optparse import make_option import subprocess import traceback +import glob # Django from django.core.management.base import BaseCommand, CommandError @@ -47,7 +48,6 @@ class MemGroup(object): self.parents = [] group_vars = os.path.join(inventory_base, 'group_vars', name) - print "LOOKING FOR: %s" % group_vars if os.path.exists(group_vars): LOGGER.debug("loading group_vars") self.variables = yaml.load(open(group_vars).read()) @@ -149,19 +149,6 @@ class BaseLoader(object): group_names[name] = group return group_names[name] - -class DirectoryLoader(BaseLoader): - - def __init__(self): - LOGGER.debug("processing directory") - pass - - def load(self, src, all_group): - self.inventory_base = dirname - - # now go through converts and use IniLoader or ExecutableJsonLoader - # as needed but pass them in the inventory_base or src so group_vars can load - class IniLoader(BaseLoader): def __init__(self, inventory_base=None): @@ -341,7 +328,15 @@ class GenericLoader(object): raise ImportException("source does not exist") if os.path.isdir(src): self.memGroup = memGroup = MemGroup('all', src) - DirectoryLoader().load(src, memGroup) + for f in glob.glob("%s/*" % src): + if f.endswith(".ini"): + # config files for inventory scripts should be ignored + pass + if not os.path.isdir(f): + if os.access(f, os.X_OK): + ExecutableJsonLoader().load(f, memGroup) + else: + IniLoader().load(f, memGroup) elif os.access(src, os.X_OK): self.memGroup = memGroup = MemGroup('all', os.path.dirname(src)) ExecutableJsonLoader().load(src, memGroup)