Commit 922f6189 by Tomaz Muraus

Throw a more user-friendly exception during template rendering process.

parent 807e6022
...@@ -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
t = environment.from_string(data) try:
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