Add support for Jinja2 includes
This replicates the behavior of the custom Jinja2 loader from tripleo-common to allow template validation on the local filesystem using tox. Change-Id: I27683ab31187c6334dc5b4b5363a3347874b9a90 Partially-Implements: blueprint overcloud-upgrades-per-service Depends-On: Idc5c3f49c7a2fc7f3622c76da001992cc657384e
This commit is contained in:
committed by
Steven Hardy
parent
c349789089
commit
6bdfd93c9c
@@ -19,6 +19,8 @@ import six
|
|||||||
import sys
|
import sys
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
__tht_root_dir = os.path.dirname(os.path.dirname(__file__))
|
||||||
|
|
||||||
|
|
||||||
def parse_opts(argv):
|
def parse_opts(argv):
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
@@ -51,9 +53,14 @@ def _j2_render_to_file(j2_template, j2_data, outfile_name=None,
|
|||||||
print('ERROR: path already exists for file: %s' % outfile_name)
|
print('ERROR: path already exists for file: %s' % outfile_name)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Search for templates relative to the current template path first
|
||||||
|
template_base = os.path.dirname(yaml_f)
|
||||||
|
j2_loader = jinja2.loaders.FileSystemLoader([template_base, __tht_root_dir])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Render the j2 template
|
# Render the j2 template
|
||||||
template = jinja2.Environment().from_string(j2_template)
|
template = jinja2.Environment(loader=j2_loader).from_string(
|
||||||
|
j2_template)
|
||||||
r_template = template.render(**j2_data)
|
r_template = template.render(**j2_data)
|
||||||
except jinja2.exceptions.TemplateError as ex:
|
except jinja2.exceptions.TemplateError as ex:
|
||||||
error_msg = ("Error rendering template %s : %s"
|
error_msg = ("Error rendering template %s : %s"
|
||||||
|
|||||||
Reference in New Issue
Block a user