diff options
author | James Cammarata <jimi@sngx.net> | 2015-07-27 10:41:28 -0400 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2015-07-27 10:41:28 -0400 |
commit | ee835ff7adf05e53360c1210a592afa5cdebb268 (patch) | |
tree | 2392f027dd27c149c81df2a2b8303e8cfb788770 /lib/ansible | |
parent | 3a4dd523d3649facc6d88d94cb67f5531a51af2a (diff) | |
download | ansible-ee835ff7adf05e53360c1210a592afa5cdebb268.tar.gz |
Add a base-level get_basedir method for lookup plugins and fix relative lookups
Fixes #11746
Diffstat (limited to 'lib/ansible')
-rw-r--r-- | lib/ansible/plugins/lookup/__init__.py | 6 | ||||
-rw-r--r-- | lib/ansible/plugins/lookup/csvfile.py | 7 | ||||
-rw-r--r-- | lib/ansible/plugins/lookup/file.py | 5 | ||||
-rw-r--r-- | lib/ansible/plugins/lookup/fileglob.py | 4 | ||||
-rw-r--r-- | lib/ansible/plugins/lookup/template.py | 7 |
5 files changed, 14 insertions, 15 deletions
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) |