summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-11-27 15:41:17 +0100
committerChristian Poessinger <christian@poessinger.com>2020-11-27 15:41:17 +0100
commita2ac9fac16eeb626d3969092fecf463650750640 (patch)
treeab54dfe9c575e1bf719735e859ac136e375cf5c8 /python
parentfb7e761ae3efa8f17d9199f29dae2fdc1f51f188 (diff)
downloadvyos-1x-a2ac9fac16eeb626d3969092fecf463650750640.tar.gz
vyos-1x-a2ac9fac16eeb626d3969092fecf463650750640.zip
vyos.template: T2720: always enable Jinja2 trim_blocks feature
Diffstat (limited to 'python')
-rw-r--r--python/vyos/ifconfig/interface.py6
-rw-r--r--python/vyos/template.py21
2 files changed, 13 insertions, 14 deletions
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py
index 39b80ce08..43cd7220a 100644
--- a/python/vyos/ifconfig/interface.py
+++ b/python/vyos/ifconfig/interface.py
@@ -890,9 +890,9 @@ class Interface(Control):
self._config = dict_merge(tmp, self._config)
render(options_file, 'dhcp-client/daemon-options.tmpl',
- self._config, trim_blocks=True)
+ self._config)
render(config_file, 'dhcp-client/ipv4.tmpl',
- self._config, trim_blocks=True)
+ self._config)
# 'up' check is mandatory b/c even if the interface is A/D, as soon as
# the DHCP client is started the interface will be placed in u/u state.
@@ -919,7 +919,7 @@ class Interface(Control):
if enable and 'disable' not in self._config:
render(config_file, 'dhcp-client/ipv6.tmpl',
- self._config, trim_blocks=True)
+ self._config)
# We must ignore any return codes. This is required to enable DHCPv6-PD
# for interfaces which are yet not up and running.
diff --git a/python/vyos/template.py b/python/vyos/template.py
index 7860b581f..b31f5bea2 100644
--- a/python/vyos/template.py
+++ b/python/vyos/template.py
@@ -18,24 +18,25 @@ import os
from jinja2 import Environment
from jinja2 import FileSystemLoader
-from vyos.defaults import directories
-from vyos.util import chmod, chown, makedir
+from vyos.defaults import directories
+from vyos.util import chmod
+from vyos.util import chown
+from vyos.util import makedir
# Holds template filters registered via register_filter()
_FILTERS = {}
-
-# reuse Environments with identical trim_blocks setting to improve performance
+# reuse Environments with identical settings to improve performance
@functools.lru_cache(maxsize=2)
-def _get_environment(trim_blocks):
+def _get_environment():
env = Environment(
# Don't check if template files were modified upon re-rendering
auto_reload=False,
# Cache up to this number of templates for quick re-rendering
cache_size=100,
loader=FileSystemLoader(directories["templates"]),
- trim_blocks=trim_blocks,
+ trim_blocks=True,
)
env.filters.update(_FILTERS)
return env
@@ -62,12 +63,11 @@ def register_filter(name, func=None):
return func
-def render_to_string(template, content, trim_blocks=False, formater=None):
+def render_to_string(template, content, formater=None):
"""Render a template from the template directory, raise on any errors.
:param template: the path to the template relative to the template folder
:param content: the dictionary of variables to put into rendering context
- :param trim_blocks: controls the trim_blocks jinja2 feature
:param formater:
if given, it has to be a callable the rendered string is passed through
@@ -78,7 +78,7 @@ def render_to_string(template, content, trim_blocks=False, formater=None):
package is build (recovering the load time and overhead caused by having the
file out of the code).
"""
- template = _get_environment(bool(trim_blocks)).get_template(template)
+ template = _get_environment().get_template(template)
rendered = template.render(content)
if formater is not None:
rendered = formater(rendered)
@@ -89,7 +89,6 @@ def render(
destination,
template,
content,
- trim_blocks=False,
formater=None,
permission=None,
user=None,
@@ -110,7 +109,7 @@ def render(
# As we are opening the file with 'w', we are performing the rendering before
# calling open() to not accidentally erase the file if rendering fails
- rendered = render_to_string(template, content, trim_blocks, formater)
+ rendered = render_to_string(template, content, formater)
# Write to file
with open(destination, "w") as file: