diff --git a/lib/ansible/inventory/__init__.py b/lib/ansible/inventory/__init__.py index 0e5f23099d9..2bcea0f3519 100644 --- a/lib/ansible/inventory/__init__.py +++ b/lib/ansible/inventory/__init__.py @@ -640,7 +640,6 @@ class Inventory(object): else: basedirs = [self._playbook_basedir] - cur_loader_basedir = self._loader.get_basedir() for basedir in basedirs: # this can happen from particular API usages, particularly if not run @@ -661,16 +660,13 @@ class Inventory(object): # FIXME: these should go to VariableManager if group and host is None: # load vars in dir/group_vars/name_of_group - self._loader.set_basedir(basedir) - base_path = os.path.join("group_vars", group.name) + base_path = os.path.join(basedir, "group_vars/%s" % group.name) results = self._variable_manager.add_group_vars_file(base_path, self._loader) elif host and group is None: # same for hostvars in dir/host_vars/name_of_host - self._loader.set_basedir(basedir) - base_path = os.path.join("host_vars", host.name) + base_path = os.path.join(basedir, "host_vars/%s" % host.name) results = self._variable_manager.add_host_vars_file(base_path, self._loader) - self._loader.set_basedir(cur_loader_basedir) # all done, results is a dictionary of variables for this particular host. return results diff --git a/lib/ansible/parsing/__init__.py b/lib/ansible/parsing/__init__.py index 749a386572c..a7d414c0434 100644 --- a/lib/ansible/parsing/__init__.py +++ b/lib/ansible/parsing/__init__.py @@ -112,19 +112,15 @@ class DataLoader(): return parsed_data def path_exists(self, path): - path = self.path_dwim(path) return os.path.exists(path) def is_file(self, path): - path = self.path_dwim(path) return os.path.isfile(path) def is_directory(self, path): - path = self.path_dwim(path) return os.path.isdir(path) def list_directory(self, path): - path = self.path_dwim(path) return os.listdir(path) def _safe_load(self, stream, file_name=None): diff --git a/test/units/mock/loader.py b/test/units/mock/loader.py index 0902193eeb9..f44df2efdbc 100644 --- a/test/units/mock/loader.py +++ b/test/units/mock/loader.py @@ -29,11 +29,11 @@ class DictDataLoader(DataLoader): def __init__(self, file_mapping=dict()): assert type(file_mapping) == dict - super(DictDataLoader, self).__init__() - self._file_mapping = file_mapping self._build_known_directories() + super(DictDataLoader, self).__init__() + def load_from_file(self, path): if path in self._file_mapping: return self.load(self._file_mapping[path], path)