inventory_import behave more like ansible

```
mkdir inv
echo foo > inv/hosts
mkdir inv/host_vars
touch inv/host_vars/foo
touch inv/host_vars/foo.yml
```

```
ansible -i ./inv -c local -m ping all
```

```
tower-mange inventory_import --inventory-id=1 ./inv
```

The tower command above now throws an error similar to ansible:

`Multiple variable files found. There should only be one.`
This commit is contained in:
Chris Meyers 2015-01-27 14:56:03 -05:00 committed by John Mitchell
parent 280126310a
commit e09436ee0c

View File

@ -55,12 +55,16 @@ class MemObject(object):
def load_vars(self, base_path):
all_vars = {}
files_found = 0
for suffix in ('', '.yml', '.yaml', '.json'):
path = ''.join([base_path, suffix])
if not os.path.exists(path):
continue
if not os.path.isfile(path):
continue
files_found += 1
if files_found > 1:
raise RuntimeError('Multiple variable files found. There should only be one. %s ' % self.name)
vars_name = os.path.basename(os.path.dirname(path))
logger.debug('Loading %s from %s', vars_name, path)
try: