diff --git a/lib/ansible/plugins/lookup/__init__.py b/lib/ansible/plugins/lookup/__init__.py index ad49eecbef..9ce4add701 100644 --- a/lib/ansible/plugins/lookup/__init__.py +++ b/lib/ansible/plugins/lookup/__init__.py @@ -32,6 +32,12 @@ class LookupBase: self._loader = loader self._display = display + def get_basedir(self, variables): + if 'role_path' in variables: + return variables['role_path'] + else: + return self._loader.get_basedir() + def _flatten(self, terms): ret = [] for term in terms: diff --git a/lib/ansible/plugins/lookup/csvfile.py b/lib/ansible/plugins/lookup/csvfile.py index 5052342e8a..1a27788722 100644 --- a/lib/ansible/plugins/lookup/csvfile.py +++ b/lib/ansible/plugins/lookup/csvfile.py @@ -45,12 +45,9 @@ class LookupModule(LookupBase): if isinstance(terms, basestring): terms = [ terms ] - ret = [] + basedir = self.get_basedir(variables) - if 'role_path' in variables: - basedir = variables['role_path'] - else: - basedir = self._loader.get_basedir() + ret = [] for term in terms: params = term.split() diff --git a/lib/ansible/plugins/lookup/file.py b/lib/ansible/plugins/lookup/file.py index 5a84c6903f..2498f90c9c 100644 --- a/lib/ansible/plugins/lookup/file.py +++ b/lib/ansible/plugins/lookup/file.py @@ -32,10 +32,7 @@ class LookupModule(LookupBase): ret = [] - if 'role_path' in variables: - basedir = variables['role_path'] - else: - basedir = self._loader.get_basedir() + basedir = self.get_basedir(variables) for term in terms: self._display.debug("File lookup term: %s" % term) diff --git a/lib/ansible/plugins/lookup/fileglob.py b/lib/ansible/plugins/lookup/fileglob.py index 8985906715..9747381ca1 100644 --- a/lib/ansible/plugins/lookup/fileglob.py +++ b/lib/ansible/plugins/lookup/fileglob.py @@ -26,9 +26,11 @@ class LookupModule(LookupBase): def run(self, terms, variables=None, **kwargs): + basedir = self.get_basedir(variables) + ret = [] for term in terms: - dwimmed = self._loader.path_dwim(term) + dwimmed = self._loader.path_dwim_relative(basedir, 'files', term) globbed = glob.glob(dwimmed) ret.extend(g for g in globbed if os.path.isfile(g)) return ret diff --git a/lib/ansible/plugins/lookup/template.py b/lib/ansible/plugins/lookup/template.py index e2bcde2f05..e40247bbc3 100644 --- a/lib/ansible/plugins/lookup/template.py +++ b/lib/ansible/plugins/lookup/template.py @@ -30,15 +30,12 @@ class LookupModule(LookupBase): if not isinstance(terms, list): terms = [ terms ] + basedir = self.get_basedir(variables) + ret = [] templar = Templar(loader=self._loader, variables=variables) - if 'role_path' in variables: - basedir = variables['role_path'] - else: - basedir = self._loader.get_basedir() - for term in terms: self._display.debug("File lookup term: %s" % term)