|
|
|
@ -82,7 +82,12 @@ class InventoryModule(BaseInventoryPlugin):
|
|
|
|
|
# directory when '.' is not in PATH.
|
|
|
|
|
path = os.path.abspath(path)
|
|
|
|
|
cmd = [ path, "--list" ]
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
cache_key = self.get_cache_prefix(path)
|
|
|
|
|
if cache and cache_key in inventory.cache:
|
|
|
|
|
data = inventory.cache[cache_key]
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
|
|
|
except OSError as e:
|
|
|
|
@ -103,6 +108,9 @@ class InventoryModule(BaseInventoryPlugin):
|
|
|
|
|
except Exception as e:
|
|
|
|
|
raise AnsibleError("Inventory {0} contained characters that cannot be interpreted as UTF-8: {1}".format(path, to_native(e)))
|
|
|
|
|
|
|
|
|
|
if cache:
|
|
|
|
|
inventory.cache[cache_key] = data
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
processed = self.loader.load(data)
|
|
|
|
|
except Exception as e:
|
|
|
|
|