Merge pull request #530 from dhozac/templates-vars

Allow variables in variables in templates
This commit is contained in:
Michael DeHaan 2012-07-03 10:06:04 -07:00
commit 05121bf380

View file

@ -279,13 +279,13 @@ def template_from_file(basedir, path, vars, setup_cache):
''' run a file through the templating engine ''' ''' run a file through the templating engine '''
environment = jinja2.Environment(loader=jinja2.FileSystemLoader(basedir), trim_blocks=False) environment = jinja2.Environment(loader=jinja2.FileSystemLoader(basedir), trim_blocks=False)
data = codecs.open(path_dwim(basedir, path), encoding="utf8").read() data = codecs.open(path_dwim(basedir, path), encoding="utf8").read()
template = environment.from_string(data) t = environment.from_string(data)
vars = vars.copy() vars = vars.copy()
vars['hostvars'] = setup_cache vars['hostvars'] = setup_cache
res = template.render(vars) res = t.render(vars)
if data.endswith('\n') and not res.endswith('\n'): if data.endswith('\n') and not res.endswith('\n'):
res = res + '\n' res = res + '\n'
return res return template(res, vars, setup_cache)
def parse_yaml(data): def parse_yaml(data):
return yaml.load(data) return yaml.load(data)