Commit 64809451 by jctanner

Merge pull request #4541 from Kami/improve_template_render_error_messages

Make errors which get thrown during template rendering more user-friendly
parents 7e8e186b 922f6189
...@@ -20,6 +20,7 @@ import re ...@@ -20,6 +20,7 @@ import re
import codecs import codecs
import jinja2 import jinja2
from jinja2.runtime import StrictUndefined from jinja2.runtime import StrictUndefined
from jinja2.exceptions import TemplateSyntaxError
import yaml import yaml
import json import json
from ansible import errors from ansible import errors
...@@ -448,7 +449,15 @@ def template_from_file(basedir, path, vars): ...@@ -448,7 +449,15 @@ def template_from_file(basedir, path, vars):
setattr(environment,key.strip(),ast.literal_eval(val.strip())) setattr(environment,key.strip(),ast.literal_eval(val.strip()))
environment.template_class = J2Template environment.template_class = J2Template
try:
t = environment.from_string(data) t = environment.from_string(data)
except TemplateSyntaxError, e:
# Throw an exception which includes a more user friendly error message
values = {'name': realpath, 'lineno': e.lineno, 'error': str(e)}
msg = 'file: %(name)s, line number: %(lineno)s, error: %(error)s' % \
values
error = errors.AnsibleError(msg)
raise error
vars = vars.copy() vars = vars.copy()
try: try:
template_uid = pwd.getpwuid(os.stat(realpath).st_uid).pw_name template_uid = pwd.getpwuid(os.stat(realpath).st_uid).pw_name
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment