Merge pull request #4541 from Kami/improve_template_render_error_messages

Make errors which get thrown during template rendering more user-friendly
This commit is contained in:
jctanner 2013-10-16 17:52:07 -07:00
commit 6480945184

View file

@ -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):
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