Merge pull request #12881 from Scypho/devel

fix for issue #11885 - allowing json in lookup template calls
This commit is contained in:
Toshio Kuratomi 2015-11-12 15:39:35 -08:00
commit 958fb29b78
2 changed files with 6 additions and 1 deletions

View file

@ -273,6 +273,10 @@ Here are some examples::
- debug: msg="{{ lookup('template', './some_template.j2') }} is a value from evaluation of this template" - debug: msg="{{ lookup('template', './some_template.j2') }} is a value from evaluation of this template"
# loading a json file from a template as a string
- debug: msg="{{ lookup('template', './some_json.json.j2', convert_data=False) }} is a value from evaluation of this template"
- debug: msg="{{ lookup('etcd', 'foo') }} is a value from a locally running etcd" - debug: msg="{{ lookup('etcd', 'foo') }} is a value from a locally running etcd"
# shelvefile lookup retrieves a string value corresponding to a key inside a Python shelve file # shelvefile lookup retrieves a string value corresponding to a key inside a Python shelve file

View file

@ -34,6 +34,7 @@ class LookupModule(LookupBase):
def run(self, terms, variables, **kwargs): def run(self, terms, variables, **kwargs):
convert_data_p = kwargs.get('convert_data', True)
basedir = self.get_basedir(variables) basedir = self.get_basedir(variables)
ret = [] ret = []
@ -53,7 +54,7 @@ class LookupModule(LookupBase):
searchpath.insert(1, variables['role_path']) searchpath.insert(1, variables['role_path'])
self._templar.environment.loader.searchpath = searchpath self._templar.environment.loader.searchpath = searchpath
res = self._templar.template(template_data, preserve_trailing_newlines=True) res = self._templar.template(template_data, preserve_trailing_newlines=True,convert_data=convert_data_p)
ret.append(res) ret.append(res)
else: else:
raise AnsibleError("the template file %s could not be found for the lookup" % term) raise AnsibleError("the template file %s could not be found for the lookup" % term)