From c87ad948999c28c3c9449f98d60b545481ea29d5 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Sat, 28 Nov 2020 08:25:39 +0100
Subject: vyos.template: T2720: fix remaining in-line time_block syntax

Commit a2ac9fac ("vyos.template: T2720: always enable Jinja2 trim_blocks
feature") globally enabled the trim_blocks feature. Some templates still used
in-line trim_blocks "{%"- or "-%}" which caused miss-placed line endings.

This is fixed by removing all in-line trim_block statememnts of Jinja2 templates.
---
 data/templates/accel-ppp/chap-secrets.ipoe.tmpl    |  26 +--
 .../accel-ppp/config_chap_secrets_radius.j2        |   2 +-
 data/templates/accel-ppp/ipoe.config.tmpl          |  24 +--
 data/templates/accel-ppp/l2tp.config.tmpl          |  28 +--
 data/templates/accel-ppp/pppoe.config.tmpl         |   2 +-
 data/templates/accel-ppp/pptp.config.tmpl          |  18 +-
 .../templates/bcast-relay/udp-broadcast-relay.tmpl |   2 +-
 data/templates/dhcp-server/dhcpd.conf.tmpl         | 180 ++++++++++----------
 data/templates/dhcpv6-server/dhcpdv6.conf.tmpl     | 100 +++++------
 data/templates/firewall/nftables-nat.tmpl          |   4 +-
 data/templates/frr/bfd.frr.tmpl                    |   8 +-
 data/templates/frr/igmp.frr.tmpl                   |  50 +++---
 data/templates/frr/pimd.frr.tmpl                   |  40 ++---
 data/templates/frr/rip.frr.tmpl                    | 188 ++++++++++-----------
 data/templates/frr/static_mcast.frr.tmpl           |  28 +--
 data/templates/ids/fastnetmon.tmpl                 |  18 +-
 data/templates/lldp/vyos.conf.tmpl                 |  18 +-
 data/templates/netflow/uacctd.conf.tmpl            |  80 ++++-----
 data/templates/pppoe/ip-pre-up.script.tmpl         |   2 +-
 data/templates/pppoe/ip-up.script.tmpl             |   6 +-
 data/templates/pppoe/ipv6-up.script.tmpl           |   8 +-
 data/templates/pppoe/peer.tmpl                     |   8 +-
 data/templates/router-advert/radvd.conf.tmpl       |   2 +-
 data/templates/salt-minion/minion.tmpl             |   2 +-
 data/templates/snmp/usr.snmpd.conf.tmpl            |   4 +-
 data/templates/snmp/var.snmpd.conf.tmpl            |  14 +-
 data/templates/syslog/rsyslog.conf.tmpl            |   8 +-
 data/templates/vrf/vrf.conf.tmpl                   |   4 +-
 data/templates/vrrp/keepalived.conf.tmpl           |  68 ++++----
 data/templates/vyos-hostsd/hosts.tmpl              |  16 +-
 data/templates/wwan/ip-pre-up.script.tmpl          |   2 +-
 31 files changed, 480 insertions(+), 480 deletions(-)

(limited to 'data')

diff --git a/data/templates/accel-ppp/chap-secrets.ipoe.tmpl b/data/templates/accel-ppp/chap-secrets.ipoe.tmpl
index a7d899354..1df878fcf 100644
--- a/data/templates/accel-ppp/chap-secrets.ipoe.tmpl
+++ b/data/templates/accel-ppp/chap-secrets.ipoe.tmpl
@@ -1,18 +1,18 @@
 # username  server  password  acceptable local IP addresses   shaper
-{% for interface in auth_interfaces -%}
-{% for mac in interface.mac -%}
-{% if mac.rate_upload and mac.rate_download -%}
-{% if mac.vlan_id -%}
+{% for interface in auth_interfaces %}
+{% for mac in interface.mac %}
+{% if mac.rate_upload and mac.rate_download %}
+{% if mac.vlan_id %}
 {{ interface.name }}.{{ mac.vlan_id }} * {{ mac.address | lower }} * {{ mac.rate_download }}/{{ mac.rate_upload }}
-{% else -%}
+{% else %}
 {{ interface.name }} * {{ mac.address | lower }}  * {{ mac.rate_download }}/{{ mac.rate_upload }}
-{% endif -%}
-{% else -%}
-{% if mac.vlan_id -%}
+{% endif %}
+{% else %}
+{% if mac.vlan_id %}
 {{ interface.name }}.{{ mac.vlan_id }} * {{ mac.address | lower }} *
-{% else -%}
+{% else %}
 {{ interface.name }} * {{ mac.address | lower }}  *
-{% endif -%}
-{% endif -%}
-{% endfor -%}
-{% endfor -%}
+{% endif %}
+{% endif %}
+{% endfor %}
+{% endfor %}
diff --git a/data/templates/accel-ppp/config_chap_secrets_radius.j2 b/data/templates/accel-ppp/config_chap_secrets_radius.j2
index c94e75a23..52d5d40e7 100644
--- a/data/templates/accel-ppp/config_chap_secrets_radius.j2
+++ b/data/templates/accel-ppp/config_chap_secrets_radius.j2
@@ -27,7 +27,7 @@ called-sid={{ authentication.radius.called_sid_format }}
 {% endif %}
 {%   if authentication.radius.dynamic_author.server is defined and authentication.radius.dynamic_author.server is not none %}
 dae-server={{ authentication.radius.dynamic_author.server }}:{{ authentication.radius.dynamic_author.port }},{{ authentication.radius.dynamic_author.key }}
-{%   endif -%}
+{%   endif %}
 {% endif %}
 {# Both chap-secrets and radius block required the gw-ip-address #}
 {% if gateway_address is defined and gateway_address is not none %}
diff --git a/data/templates/accel-ppp/ipoe.config.tmpl b/data/templates/accel-ppp/ipoe.config.tmpl
index ab61f7f5a..1cf2ab0be 100644
--- a/data/templates/accel-ppp/ipoe.config.tmpl
+++ b/data/templates/accel-ppp/ipoe.config.tmpl
@@ -35,7 +35,7 @@ password=csid
 {% endif %}
 proxy-arp=1
 
-{%- for interface in interfaces %}
+{% for interface in interfaces %}
 {% if (interface.shared == '0') and (interface.vlan_mon) %}
 vlan-mon={{ interface.name }},{{ interface.vlan_mon | join(',') }}
 {% endif %}
@@ -43,16 +43,16 @@ vlan-mon={{ interface.name }},{{ interface.vlan_mon | join(',') }}
 
 {% if dnsv4 %}
 [dns]
-{% for dns in dnsv4 -%}
+{% for dns in dnsv4 %}
 dns{{ loop.index }}={{ dns }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 {% if dnsv6 %}
 [ipv6-dns]
-{% for dns in dnsv6 -%}
+{% for dns in dnsv6 %}
 {{ dns }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 [ipv6-nd]
@@ -79,7 +79,7 @@ chap-secrets={{ chap_secrets_file }}
 verbose=1
 {% for r in radius_server %}
 server={{ r.server }},{{ r.key }},auth-port={{ r.port }},acct-port={{ r.acct_port }},req-limit=0,fail-time={{ r.fail_time }}
-{% endfor -%}
+{% endfor %}
 
 {% if radius_acct_inter_jitter %}
 acct-interim-jitter={{ radius_acct_inter_jitter }}
@@ -90,17 +90,17 @@ timeout={{ radius_timeout }}
 max-try={{ radius_max_try }}
 {% if radius_nas_id %}
 nas-identifier={{ radius_nas_id }}
-{% endif -%}
+{% endif %}
 {% if radius_nas_ip %}
 nas-ip-address={{ radius_nas_ip }}
-{% endif -%}
+{% endif %}
 {% if radius_source_address %}
 bind={{ radius_source_address }}
-{% endif -%}
+{% endif %}
 
 {% if radius_dynamic_author %}
 dae-server={{ radius_dynamic_author.server }}:{{ radius_dynamic_author.port }},{{ radius_dynamic_author.key }}
-{% endif -%}
+{% endif %}
 
 {% if radius_shaper_attr %}
 [shaper]
@@ -108,8 +108,8 @@ verbose=1
 attr={{ radius_shaper_attr }}
 {% if radius_shaper_vendor %}
 vendor={{ radius_shaper_vendor }}
-{% endif -%}
-{% endif -%}
+{% endif %}
+{% endif %}
 {% endif %}
 
 [cli]
diff --git a/data/templates/accel-ppp/l2tp.config.tmpl b/data/templates/accel-ppp/l2tp.config.tmpl
index 9a3c27912..070a966b7 100644
--- a/data/templates/accel-ppp/l2tp.config.tmpl
+++ b/data/templates/accel-ppp/l2tp.config.tmpl
@@ -9,7 +9,7 @@ chap-secrets
 
 {% if auth_mode == 'radius' %}
 radius
-{% endif -%}
+{% endif %}
 
 ippool
 shaper
@@ -27,23 +27,23 @@ level=5
 
 {% if dnsv4 %}
 [dns]
-{% for dns in dnsv4 -%}
+{% for dns in dnsv4 %}
 dns{{ loop.index }}={{ dns }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 {% if dnsv6 %}
 [ipv6-dns]
-{% for dns in dnsv6 -%}
+{% for dns in dnsv6 %}
 {{ dns }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 {% if wins %}
 [wins]
-{% for server in wins -%}
+{% for server in wins %}
 wins{{ loop.index }}={{ server }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 [l2tp]
@@ -65,11 +65,11 @@ secret={{ lns_shared_secret }}
 [ip-pool]
 {% if client_ip_pool %}
 {{ client_ip_pool }}
-{% endif -%}
+{% endif %}
 {% if client_ip_subnets %}
 {% for sn in client_ip_subnets %}
 {{sn}}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 {% endif %}
 {% if gateway_address %}
@@ -84,7 +84,7 @@ chap-secrets={{ chap_secrets_file }}
 verbose=1
 {% for r in radius_server %}
 server={{ r.server }},{{ r.key }},auth-port={{ r.port }},acct-port={{ r.acct_port }},req-limit=0,fail-time={{ r.fail_time }}
-{% endfor -%}
+{% endfor %}
 
 {% if radius_acct_inter_jitter %}
 acct-interim-jitter={{ radius_acct_inter_jitter }}
@@ -96,13 +96,13 @@ max-try={{ radius_max_try }}
 
 {% if radius_nas_id %}
 nas-identifier={{ radius_nas_id }}
-{% endif -%}
+{% endif %}
 {% if radius_nas_ip %}
 nas-ip-address={{ radius_nas_ip }}
-{% endif -%}
+{% endif %}
 {% if radius_source_address %}
 bind={{ radius_source_address }}
-{% endif -%}
+{% endif %}
 {% endif %}
 {% if gateway_address %}
 gw-ip-address={{ gateway_address }}
@@ -144,7 +144,7 @@ verbose=1
 attr={{ radius_shaper_attr }}
 {% if radius_shaper_vendor %}
 vendor={{ radius_shaper_vendor }}
-{% endif -%}
+{% endif %}
 {% endif %}
 
 [cli]
diff --git a/data/templates/accel-ppp/pppoe.config.tmpl b/data/templates/accel-ppp/pppoe.config.tmpl
index 19adbc890..1d6c1fefc 100644
--- a/data/templates/accel-ppp/pppoe.config.tmpl
+++ b/data/templates/accel-ppp/pppoe.config.tmpl
@@ -108,7 +108,7 @@ interface=re:{{ interface.name }}\.\d+
 
 {% if service_name %}
 service-name={{ service_name | join(',') }}
-{% endif -%}
+{% endif %}
 
 {% if pado_delay %}
 pado-delay={{ pado_delay }}
diff --git a/data/templates/accel-ppp/pptp.config.tmpl b/data/templates/accel-ppp/pptp.config.tmpl
index dc77b42e9..5a6cfe749 100644
--- a/data/templates/accel-ppp/pptp.config.tmpl
+++ b/data/templates/accel-ppp/pptp.config.tmpl
@@ -7,7 +7,7 @@ ippool
 chap-secrets
 {% elif auth_mode == 'radius' %}
 radius
-{% endif -%}
+{% endif %}
 {% for proto in auth_proto %}
 {{proto}}
 {% endfor %}
@@ -22,16 +22,16 @@ level=5
 
 {% if dnsv4 %}
 [dns]
-{% for dns in dnsv4 -%}
+{% for dns in dnsv4 %}
 dns{{ loop.index }}={{ dns }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 {% if wins %}
 [wins]
-{% for server in wins -%}
+{% for server in wins %}
 wins{{ loop.index }}={{ server }}
-{% endfor -%}
+{% endfor %}
 {% endif %}
 
 
@@ -67,7 +67,7 @@ chap-secrets={{ chap_secrets_file }}
 verbose=1
 {% for r in radius_server %}
 server={{ r.server }},{{ r.key }},auth-port={{ r.port }},acct-port={{ r.acct_port }},req-limit=0,fail-time={{ r.fail_time }}
-{% endfor -%}
+{% endfor %}
 
 {% if radius_acct_inter_jitter %}
 acct-interim-jitter={{ radius_acct_inter_jitter }}
@@ -79,13 +79,13 @@ max-try={{ radius_max_try }}
 
 {% if radius_nas_id %}
 nas-identifier={{ radius_nas_id }}
-{% endif -%}
+{% endif %}
 {% if radius_nas_ip %}
 nas-ip-address={{ radius_nas_ip }}
-{% endif -%}
+{% endif %}
 {% if radius_source_address %}
 bind={{ radius_source_address }}
-{% endif -%}
+{% endif %}
 {% endif %}
 
 [cli]
diff --git a/data/templates/bcast-relay/udp-broadcast-relay.tmpl b/data/templates/bcast-relay/udp-broadcast-relay.tmpl
index d0c7d8bf9..73e9acad4 100644
--- a/data/templates/bcast-relay/udp-broadcast-relay.tmpl
+++ b/data/templates/bcast-relay/udp-broadcast-relay.tmpl
@@ -1,7 +1,7 @@
 ### Autogenerated by bcast_relay.py ###
 
 # UDP broadcast relay configuration for instance {{ id }}
-{%- if description %}
+{% if description %}
 # Comment: {{ description }}
 {% endif %}
 DAEMON_ARGS="{{ '-s ' + address if address is defined }} {{ instance }} {{ port }} {{ interface | join(' ') }}"
diff --git a/data/templates/dhcp-server/dhcpd.conf.tmpl b/data/templates/dhcp-server/dhcpd.conf.tmpl
index 5f5129451..f431d3207 100644
--- a/data/templates/dhcp-server/dhcpd.conf.tmpl
+++ b/data/templates/dhcp-server/dhcpd.conf.tmpl
@@ -23,38 +23,38 @@ on expiry {
     execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "release", ClientName, ClientIp, ClientMac, ClientDomain);
 }
 {% endif %}
-{%- if host_decl_name %}
+{% if host_decl_name %}
 use-host-decl-names on;
-{%- endif %}
-ddns-update-style {% if ddns_enable -%} interim {%- else -%} none {%- endif %};
-{% if static_route -%}
+{% endif %}
+ddns-update-style {% if ddns_enable %} interim {% else %} none {% endif %};
+{% if static_route %}
 option rfc3442-static-route code 121 = array of integer 8;
 option windows-static-route code 249 = array of integer 8;
-{%- endif %}
-{% if wpad -%}
+{% endif %}
+{% if wpad %}
 option wpad-url code 252 = text;
 {% endif %}
 
-{%- if global_parameters %}
+{% if global_parameters %}
 # The following {{ global_parameters | length }} line(s) were added as global-parameters in the CLI and have not been validated
-{%- for param in global_parameters %}
+{% for param in global_parameters %}
 {{ param }}
-{%- endfor -%}
-{%- endif %}
+{% endfor %}
+{% endif %}
 
 # Failover configuration
 {% for network in shared_network %}
-{%- if not network.disabled -%}
-{%- for subnet in network.subnet %}
-{%- if subnet.failover_name -%}
+{% if not network.disabled %}
+{% for subnet in network.subnet %}
+{% if subnet.failover_name %}
 failover peer "{{ subnet.failover_name }}" {
-{%- if subnet.failover_status == 'primary' %}
+{% if subnet.failover_status == 'primary' %}
     primary;
     mclt 1800;
     split 128;
-{%- elif subnet.failover_status == 'secondary' %}
+{% elif subnet.failover_status == 'secondary' %}
     secondary;
-{%- endif %}
+{% endif %}
     address {{ subnet.failover_local_addr }};
     port 520;
     peer address {{ subnet.failover_peer_addr }};
@@ -63,133 +63,133 @@ failover peer "{{ subnet.failover_name }}" {
     max-unacked-updates 10;
     load balance max seconds 3;
 }
-{% endif -%}
-{% endfor -%}
-{% endif -%}
+{% endif %}
+{% endfor %}
+{% endif %}
 {% endfor %}
 
 # Shared network configration(s)
 {% for network in shared_network %}
-{%- if not network.disabled -%}
+{% if not network.disabled %}
 shared-network {{ network.name }} {
-    {%- if network.authoritative %}
+    {% if network.authoritative %}
     authoritative;
-    {%- endif %}
-    {%- if network.network_parameters %}
+    {% endif %}
+    {% if network.network_parameters %}
     # The following {{ network.network_parameters | length }} line(s) were added as shared-network-parameters in the CLI and have not been validated
-    {%- for param in network.network_parameters %}
+    {% for param in network.network_parameters %}
     {{ param }}
-    {%- endfor %}
-    {%- endif %}
-    {%- for subnet in network.subnet %}
+    {% endfor %}
+    {% endif %}
+    {% for subnet in network.subnet %}
     subnet {{ subnet.address }} netmask {{ subnet.netmask }} {
-        {%- if subnet.dns_server %}
+        {% if subnet.dns_server %}
         option domain-name-servers {{ subnet.dns_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.domain_search %}
+        {% endif %}
+        {% if subnet.domain_search %}
         option domain-search {{ subnet.domain_search | join(', ') }};
-        {%- endif %}
-        {%- if subnet.ntp_server %}
+        {% endif %}
+        {% if subnet.ntp_server %}
         option ntp-servers {{ subnet.ntp_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.pop_server %}
+        {% endif %}
+        {% if subnet.pop_server %}
         option pop-server {{ subnet.pop_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.smtp_server %}
+        {% endif %}
+        {% if subnet.smtp_server %}
         option smtp-server {{ subnet.smtp_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.time_server %}
+        {% endif %}
+        {% if subnet.time_server %}
         option time-servers {{ subnet.time_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.wins_server %}
+        {% endif %}
+        {% if subnet.wins_server %}
         option netbios-name-servers {{ subnet.wins_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.static_route %}
+        {% endif %}
+        {% if subnet.static_route %}
         option rfc3442-static-route {{ subnet.static_route }}{% if subnet.rfc3442_default_router %}, {{ subnet.rfc3442_default_router }}{% endif %};
         option windows-static-route {{ subnet.static_route }};
-        {%- endif %}
-        {%- if subnet.ip_forwarding %}
+        {% endif %}
+        {% if subnet.ip_forwarding %}
         option ip-forwarding true;
-        {%- endif -%}
-        {%- if subnet.default_router %}
+        {% endif %}
+        {% if subnet.default_router %}
         option routers {{ subnet.default_router }};
-        {%- endif -%}
-        {%- if subnet.server_identifier %}
+        {% endif %}
+        {% if subnet.server_identifier %}
         option dhcp-server-identifier {{ subnet.server_identifier }};
-        {%- endif -%}
-        {%- if subnet.domain_name %}
+        {% endif %}
+        {% if subnet.domain_name %}
         option domain-name "{{ subnet.domain_name }}";
-        {%- endif -%}
-        {%- if subnet.subnet_parameters %}
+        {% endif %}
+        {% if subnet.subnet_parameters %}
         # The following {{ subnet.subnet_parameters | length }} line(s) were added as subnet-parameters in the CLI and have not been validated
-        {%- for param in subnet.subnet_parameters %}
+        {% for param in subnet.subnet_parameters %}
         {{ param }}
-        {%- endfor -%}
-        {%- endif %}
-        {%- if subnet.tftp_server %}
+        {% endfor %}
+        {% endif %}
+        {% if subnet.tftp_server %}
         option tftp-server-name "{{ subnet.tftp_server }}";
-        {%- endif -%}
-        {%- if subnet.bootfile_name %}
+        {% endif %}
+        {% if subnet.bootfile_name %}
         option bootfile-name "{{ subnet.bootfile_name }}";
         filename "{{ subnet.bootfile_name }}";
-        {%- endif -%}
-        {%- if subnet.bootfile_server %}
+        {% endif %}
+        {% if subnet.bootfile_server %}
         next-server {{ subnet.bootfile_server }};
-        {%- endif -%}
-        {%- if subnet.time_offset %}
+        {% endif %}
+        {% if subnet.time_offset %}
         option time-offset {{ subnet.time_offset }};
-        {%- endif -%}
-        {%- if subnet.wpad_url %}
+        {% endif %}
+        {% if subnet.wpad_url %}
         option wpad-url "{{ subnet.wpad_url }}";
-        {%- endif -%}
-        {%- if subnet.client_prefix_length %}
+        {% endif %}
+        {% if subnet.client_prefix_length %}
         option subnet-mask {{ subnet.client_prefix_length }};
-        {%- endif -%}
+        {% endif %}
         {% if subnet.lease %}
         default-lease-time {{ subnet.lease }};
         max-lease-time {{ subnet.lease }};
-        {%- endif -%}
-        {%- for host in subnet.static_mapping %}
-        {% if not host.disabled -%}
-        host {% if host_decl_name -%} {{ host.name }} {%- else -%} {{ network.name }}_{{ host.name }} {%- endif %} {
-            {%- if host.ip_address %}
+        {% endif %}
+        {% for host in subnet.static_mapping %}
+        {% if not host.disabled %}
+        host {% if host_decl_name %} {{ host.name }} {% else %} {{ network.name }}_{{ host.name }} {% endif %} {
+            {% if host.ip_address %}
             fixed-address {{ host.ip_address }};
-            {%- endif %}
+            {% endif %}
             hardware ethernet {{ host.mac_address }};
-            {%- if host.static_parameters %}
+            {% if host.static_parameters %}
             # The following {{ host.static_parameters | length }} line(s) were added as static-mapping-parameters in the CLI and have not been validated
-            {%- for param in host.static_parameters %}
+            {% for param in host.static_parameters %}
             {{ param }}
-            {%- endfor -%}
-            {%- endif %}
+            {% endfor %}
+            {% endif %}
         }
-        {%- endif %}
-        {%- endfor %}
-        {%- if subnet.failover_name %}
+        {% endif %}
+        {% endfor %}
+        {% if subnet.failover_name %}
         pool {
             failover peer "{{ subnet.failover_name }}";
             deny dynamic bootp clients;
-            {%- for range in subnet.range %}
+            {% for range in subnet.range %}
             range {{ range.start }} {{ range.stop }};
-            {%- endfor %}
+            {% endfor %}
         }
-        {%- else %}
-        {%- for range in subnet.range %}
+        {% else %}
+        {% for range in subnet.range %}
         range {{ range.start }} {{ range.stop }};
-        {%- endfor %}
-        {%- endif %}
+        {% endfor %}
+        {% endif %}
     }
-    {%- endfor %}
+    {% endfor %}
     on commit {
         set shared-networkname = "{{ network.name }}";
-        {% if hostfile_update -%}
+        {% if hostfile_update %}
         set ClientName = pick-first-value(host-decl-name, option fqdn.hostname, option host-name);
         set ClientIp = binary-to-ascii(10, 8, ".", leased-address);
         set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
         set ClientDomain = pick-first-value(config-option domain-name, "..YYZ!");
         execute("/usr/libexec/vyos/system/on-dhcp-event.sh", "commit", ClientName, ClientIp, ClientMac, ClientDomain);
-        {%- endif %}
+        {% endif %}
     }
 }
-{%- endif %}
+{% endif %}
 {% endfor %}
diff --git a/data/templates/dhcpv6-server/dhcpdv6.conf.tmpl b/data/templates/dhcpv6-server/dhcpdv6.conf.tmpl
index bdeea71da..aa6d7fb5d 100644
--- a/data/templates/dhcpv6-server/dhcpdv6.conf.tmpl
+++ b/data/templates/dhcpv6-server/dhcpdv6.conf.tmpl
@@ -4,87 +4,87 @@
 # https://www.isc.org/wp-content/uploads/2017/08/dhcp43options.html
 
 log-facility local7;
-{%- if preference %}
+{% if preference %}
 option dhcp6.preference {{ preference }};
-{%- endif %}
+{% endif %}
 
 # Shared network configration(s)
 {% for network in shared_network %}
-{%- if not network.disabled -%}
+{% if not network.disabled %}
 shared-network {{ network.name }} {
-    {%- if network.common.info_refresh_time %}
+    {% if network.common.info_refresh_time %}
     option dhcp6.info-refresh-time {{ network.common.info_refresh_time }};
-    {%- endif %}
-    {%- if network.common.domain_search %}
+    {% endif %}
+    {% if network.common.domain_search %}
     option dhcp6.domain-search "{{ network.common.domain_search | join('", "') }}";
-    {%- endif %}
-    {%- if network.common.dns_server %}
+    {% endif %}
+    {% if network.common.dns_server %}
     option dhcp6.name-servers {{ network.common.dns_server | join(', ') }};
-    {%- endif %}
-    {%- for subnet in network.subnet %}
+    {% endif %}
+    {% for subnet in network.subnet %}
     subnet6 {{ subnet.network }} {
-        {%- for range in subnet.range6_prefix %}
+        {% for range in subnet.range6_prefix %}
         range6 {{ range.prefix }}{{ " temporary" if range.temporary }};
-        {%- endfor %}
-        {%- for range in subnet.range6 %}
+        {% endfor %}
+        {% for range in subnet.range6 %}
         range6 {{ range.start }} {{ range.stop }};
-        {%- endfor %}
-        {%- if subnet.domain_search %}
+        {% endfor %}
+        {% if subnet.domain_search %}
         option dhcp6.domain-search "{{ subnet.domain_search | join('", "') }}";
-        {%- endif %}
-        {%- if subnet.lease_def %}
+        {% endif %}
+        {% if subnet.lease_def %}
         default-lease-time {{ subnet.lease_def }};
-        {%- endif %}
-        {%- if subnet.lease_max %}
+        {% endif %}
+        {% if subnet.lease_max %}
         max-lease-time {{ subnet.lease_max }};
-        {%- endif %}
-        {%- if subnet.lease_min %}
+        {% endif %}
+        {% if subnet.lease_min %}
         min-lease-time {{ subnet.lease_min }};
-        {%- endif %}
-        {%- if subnet.dns_server %}
+        {% endif %}
+        {% if subnet.dns_server %}
         option dhcp6.name-servers {{ subnet.dns_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.nis_domain %}
+        {% endif %}
+        {% if subnet.nis_domain %}
         option dhcp6.nis-domain-name "{{ subnet.nis_domain }}";
-        {%- endif %}
-        {%- if subnet.nis_server %}
+        {% endif %}
+        {% if subnet.nis_server %}
         option dhcp6.nis-servers {{ subnet.nis_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.nisp_domain %}
+        {% endif %}
+        {% if subnet.nisp_domain %}
         option dhcp6.nisp-domain-name "{{ subnet.nisp_domain }}";
-        {%- endif %}
-        {%- if subnet.nisp_server %}
+        {% endif %}
+        {% if subnet.nisp_server %}
         option dhcp6.nisp-servers {{ subnet.nisp_server | join(', ') }};
-        {%- endif %}
-        {%- if subnet.sip_address %}
+        {% endif %}
+        {% if subnet.sip_address %}
         option dhcp6.sip-servers-addresses {{ subnet.sip_address | join(', ') }};
-        {%- endif %}
-        {%- if subnet.sip_hostname %}
+        {% endif %}
+        {% if subnet.sip_hostname %}
         option dhcp6.sip-servers-names "{{ subnet.sip_hostname | join('", "') }}";
-        {%- endif %}
-        {%- if subnet.sntp_server %}
+        {% endif %}
+        {% if subnet.sntp_server %}
         option dhcp6.sntp-servers {{ subnet.sntp_server | join(', ') }};
-        {%- endif %}
-        {%- for prefix in subnet.prefix_delegation %}
+        {% endif %}
+        {% for prefix in subnet.prefix_delegation %}
         prefix6 {{ prefix.start }} {{ prefix.stop }} /{{ prefix.length }};
-        {%- endfor %}
-        {%- for host in subnet.static_mapping %}
-        {% if not host.disabled -%}
+        {% endfor %}
+        {% for host in subnet.static_mapping %}
+        {% if not host.disabled %}
         host {{ network.name }}_{{ host.name }} {
-            {%- if host.client_identifier %}
+            {% if host.client_identifier %}
             host-identifier option dhcp6.client-id {{ host.client_identifier }};
-            {%- endif %}
-            {%- if host.ipv6_address %}
+            {% endif %}
+            {% if host.ipv6_address %}
             fixed-address6 {{ host.ipv6_address }};
-            {%- endif %}
+            {% endif %}
         }
-        {%- endif %}
-        {%- endfor %}
+        {% endif %}
+        {% endfor %}
     }
-    {%- endfor %}
+    {% endfor %}
     on commit {
         set shared-networkname = "{{ network.name }}";
     }
 }
-{%- endif %}
+{% endif %}
 {% endfor %}
diff --git a/data/templates/firewall/nftables-nat.tmpl b/data/templates/firewall/nftables-nat.tmpl
index 286c21859..eabad56f2 100644
--- a/data/templates/firewall/nftables-nat.tmpl
+++ b/data/templates/firewall/nftables-nat.tmpl
@@ -149,13 +149,13 @@ add rule ip raw NAT_CONNTRACK counter accept
 #
 # Destination NAT rules build up here
 #
-{% for rule in destination if not rule.disabled -%}
+{% for rule in destination if not rule.disabled %}
 {{ nat_rule(rule, 'PREROUTING') }}
 {% endfor %}
 
 #
 # Source NAT rules build up here
 #
-{% for rule in source if not rule.disabled -%}
+{% for rule in source if not rule.disabled %}
 {{ nat_rule(rule, 'POSTROUTING') }}
 {% endfor %}
diff --git a/data/templates/frr/bfd.frr.tmpl b/data/templates/frr/bfd.frr.tmpl
index 7df4bfd01..95a29e06a 100644
--- a/data/templates/frr/bfd.frr.tmpl
+++ b/data/templates/frr/bfd.frr.tmpl
@@ -1,10 +1,10 @@
 !
 bfd
-{% for peer in old_peers -%}
+{% for peer in old_peers %}
  no peer {{ peer.remote }}{% if peer.multihop %} multihop{% endif %}{% if peer.src_addr %} local-address {{ peer.src_addr }}{% endif %}{% if peer.src_if %} interface {{ peer.src_if }}{% endif %}
-{% endfor -%}
+{% endfor %}
 !
-{% for peer in new_peers -%}
+{% for peer in new_peers %}
  peer {{ peer.remote }}{% if peer.multihop %} multihop{% endif %}{% if peer.src_addr %} local-address {{ peer.src_addr }}{% endif %}{% if peer.src_if %} interface {{ peer.src_if }}{% endif %}
  detect-multiplier {{ peer.multiplier }}
  receive-interval {{ peer.rx_interval }}
@@ -12,5 +12,5 @@ bfd
  {% if peer.echo_mode %}echo-mode{% endif %}
  {% if peer.echo_interval != '' %}echo-interval {{ peer.echo_interval }}{% endif %}
  {% if not peer.shutdown %}no {% endif %}shutdown
-{% endfor -%}
+{% endfor %}
 !
diff --git a/data/templates/frr/igmp.frr.tmpl b/data/templates/frr/igmp.frr.tmpl
index de4696c1f..cdb7ee6cc 100644
--- a/data/templates/frr/igmp.frr.tmpl
+++ b/data/templates/frr/igmp.frr.tmpl
@@ -1,41 +1,41 @@
 !
-{% for iface in old_ifaces -%}
+{% for iface in old_ifaces %}
 interface {{ iface }}
-{% for group in old_ifaces[iface].gr_join -%}
-{% if old_ifaces[iface].gr_join[group] -%}
-{% for source in old_ifaces[iface].gr_join[group] -%}
+{% for group in old_ifaces[iface].gr_join %}
+{% if old_ifaces[iface].gr_join[group] %}
+{% for source in old_ifaces[iface].gr_join[group] %}
 no ip igmp join {{ group }} {{ source }}
-{% endfor -%}
-{% else -%}
+{% endfor %}
+{% else %}
 no ip igmp join {{ group }}
-{% endif -%}
-{% endfor -%}
+{% endif %}
+{% endfor %}
 no ip igmp
 !
-{% endfor -%}
-{% for iface in ifaces -%}
+{% endfor %}
+{% for iface in ifaces %}
 interface {{ iface }}
-{% if ifaces[iface].version -%}
+{% if ifaces[iface].version %}
 ip igmp version {{ ifaces[iface].version }}
-{% else -%}
+{% else %}
 {# IGMP default version 3 #}
 ip igmp
-{% endif -%}
-{% if ifaces[iface].query_interval -%}
+{% endif %}
+{% if ifaces[iface].query_interval %}
 ip igmp query-interval {{ ifaces[iface].query_interval }}
-{% endif -%}
-{% if ifaces[iface].query_max_resp_time -%}
+{% endif %}
+{% if ifaces[iface].query_max_resp_time %}
 ip igmp query-max-response-time {{ ifaces[iface].query_max_resp_time }}
-{% endif -%}
-{% for group in ifaces[iface].gr_join -%}
-{% if ifaces[iface].gr_join[group] -%}
-{% for source in ifaces[iface].gr_join[group] -%}
+{% endif %}
+{% for group in ifaces[iface].gr_join %}
+{% if ifaces[iface].gr_join[group] %}
+{% for source in ifaces[iface].gr_join[group] %}
 ip igmp join {{ group }} {{ source }}
-{% endfor -%}
-{% else -%}
+{% endfor %}
+{% else %}
 ip igmp join {{ group }}
-{% endif -%}
-{% endfor -%}
+{% endif %}
+{% endfor %}
 !
-{% endfor -%}
+{% endfor %}
 !
diff --git a/data/templates/frr/pimd.frr.tmpl b/data/templates/frr/pimd.frr.tmpl
index 1d1532c60..a5b56223a 100644
--- a/data/templates/frr/pimd.frr.tmpl
+++ b/data/templates/frr/pimd.frr.tmpl
@@ -1,34 +1,34 @@
 !
-{% for rp_addr in old_pim.rp -%}
-{% for group in old_pim.rp[rp_addr] -%}
+{% for rp_addr in old_pim.rp %}
+{% for group in old_pim.rp[rp_addr] %}
 no ip pim rp {{ rp_addr }} {{ group }}
-{% endfor -%}
-{% endfor -%}
-{% if old_pim.rp_keep_alive -%}
+{% endfor %}
+{% endfor %}
+{% if old_pim.rp_keep_alive %}
 no ip pim rp keep-alive-timer {{ old_pim.rp_keep_alive }}
-{% endif -%}
-{% for iface in old_pim.ifaces -%}
+{% endif %}
+{% for iface in old_pim.ifaces %}
 interface {{ iface }}
 no ip pim
 !
-{% endfor -%}
-{% for iface in pim.ifaces -%}
+{% endfor %}
+{% for iface in pim.ifaces %}
 interface {{ iface }}
 ip pim
-{% if pim.ifaces[iface].dr_prio -%}
+{% if pim.ifaces[iface].dr_prio %}
 ip pim drpriority {{ pim.ifaces[iface].dr_prio }}
-{% endif -%}
-{% if pim.ifaces[iface].hello -%}
+{% endif %}
+{% if pim.ifaces[iface].hello %}
 ip pim hello {{ pim.ifaces[iface].hello }}
-{% endif -%}
+{% endif %}
 !
-{% endfor -%}
-{% for rp_addr in pim.rp -%}
-{% for group in pim.rp[rp_addr] -%}
+{% endfor %}
+{% for rp_addr in pim.rp %}
+{% for group in pim.rp[rp_addr] %}
 ip pim rp {{ rp_addr }} {{ group }}
-{% endfor -%}
-{% endfor -%}
-{% if pim.rp_keep_alive -%}
+{% endfor %}
+{% endfor %}
+{% if pim.rp_keep_alive %}
 ip pim rp keep-alive-timer {{ pim.rp_keep_alive }}
-{% endif -%}
+{% endif %}
 !
diff --git a/data/templates/frr/rip.frr.tmpl b/data/templates/frr/rip.frr.tmpl
index 60bc686bd..83df4e203 100644
--- a/data/templates/frr/rip.frr.tmpl
+++ b/data/templates/frr/rip.frr.tmpl
@@ -1,143 +1,143 @@
 !
-{% if rip_conf -%}
+{% if rip_conf %}
 router rip
-{% if old_default_distance -%}
+{% if old_default_distance %}
 no distance {{old_default_distance}}
-{% endif -%}
-{% if default_distance -%}
+{% endif %}
+{% if default_distance %}
 distance {{default_distance}}
-{% endif -%}
-{% if old_default_originate -%}
+{% endif %}
+{% if old_default_originate %}
 no default-information originate
-{% endif -%}
-{% if default_originate -%}
+{% endif %}
+{% if default_originate %}
 default-information originate
-{% endif -%}
-{% if old_rip.default_metric -%}
+{% endif %}
+{% if old_rip.default_metric %}
 no default-metric {{old_rip.default_metric}}
-{% endif -%}
-{% if rip.default_metric -%}
+{% endif %}
+{% if rip.default_metric %}
 default-metric {{rip.default_metric}}
-{% endif -%}
-{% for protocol in old_rip.redist -%}
-{% if old_rip.redist[protocol]['metric'] and old_rip.redist[protocol]['route_map'] -%}
+{% endif %}
+{% for protocol in old_rip.redist %}
+{% if old_rip.redist[protocol]['metric'] and old_rip.redist[protocol]['route_map'] %}
 no redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}} route-map {{rip.redist[protocol]['route_map']}}
-{% elif old_rip.redist[protocol]['metric'] -%}
+{% elif old_rip.redist[protocol]['metric'] %}
 no redistribute {{protocol}} metric {{old_rip.redist[protocol]['metric']}}
-{% elif old_rip.redist[protocol]['route_map'] -%}
+{% elif old_rip.redist[protocol]['route_map'] %}
 no redistribute {{protocol}} route-map {{old_rip.redist[protocol]['route_map']}}
-{% else -%}
+{% else %}
 no redistribute {{protocol}}
-{% endif -%}
-{% endfor -%}
-{% for protocol in rip.redist -%}
-{% if rip.redist[protocol]['metric'] and rip.redist[protocol]['route_map'] -%}
+{% endif %}
+{% endfor %}
+{% for protocol in rip.redist %}
+{% if rip.redist[protocol]['metric'] and rip.redist[protocol]['route_map'] %}
 redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}} route-map {{rip.redist[protocol]['route_map']}}
-{% elif rip.redist[protocol]['metric'] -%}
+{% elif rip.redist[protocol]['metric'] %}
 redistribute {{protocol}} metric {{rip.redist[protocol]['metric']}}
-{% elif rip.redist[protocol]['route_map'] -%}
+{% elif rip.redist[protocol]['route_map'] %}
 redistribute {{protocol}} route-map {{rip.redist[protocol]['route_map']}}
-{% else -%}
+{% else %}
 redistribute {{protocol}}
-{% endif -%}
-{% endfor -%}
-{% for iface in old_rip.distribute -%}
-{% if old_rip.distribute[iface].iface_access_list_in -%}
+{% endif %}
+{% endfor %}
+{% for iface in old_rip.distribute %}
+{% if old_rip.distribute[iface].iface_access_list_in %}
 no distribute-list {{old_rip.distribute[iface].iface_access_list_in}} in {{iface}}
-{% endif -%}
-{% if old_rip.distribute[iface].iface_access_list_out -%}
+{% endif %}
+{% if old_rip.distribute[iface].iface_access_list_out %}
 no distribute-list {{old_rip.distribute[iface].iface_access_list_out}} out {{iface}}
-{% endif -%}
-{% if old_rip.distribute[iface].iface_prefix_list_in -%}
+{% endif %}
+{% if old_rip.distribute[iface].iface_prefix_list_in %}
 no distribute-list prefix {{old_rip.distribute[iface].iface_prefix_list_in}} in {{iface}}
-{% endif -%}
-{% if old_rip.distribute[iface].iface_prefix_list_out -%}
+{% endif %}
+{% if old_rip.distribute[iface].iface_prefix_list_out %}
 no distribute-list prefix {{old_rip.distribute[iface].iface_prefix_list_out}} out {{iface}}
-{% endif -%}
-{% endfor -%}
-{% for iface in rip.distribute -%}
-{% if rip.distribute[iface].iface_access_list_in -%}
+{% endif %}
+{% endfor %}
+{% for iface in rip.distribute %}
+{% if rip.distribute[iface].iface_access_list_in %}
 distribute-list {{rip.distribute[iface].iface_access_list_in}} in {{iface}}
-{% endif -%}
-{% if rip.distribute[iface].iface_access_list_out -%}
+{% endif %}
+{% if rip.distribute[iface].iface_access_list_out %}
 distribute-list {{rip.distribute[iface].iface_access_list_out}} out {{iface}}
-{% endif -%}
-{% if rip.distribute[iface].iface_prefix_list_in -%}
+{% endif %}
+{% if rip.distribute[iface].iface_prefix_list_in %}
 distribute-list prefix {{rip.distribute[iface].iface_prefix_list_in}} in {{iface}}
-{% endif -%}
-{% if rip.distribute[iface].iface_prefix_list_out -%}
+{% endif %}
+{% if rip.distribute[iface].iface_prefix_list_out %}
 distribute-list prefix {{rip.distribute[iface].iface_prefix_list_out}} out {{iface}}
-{% endif -%}
-{% endfor -%}
-{% if old_rip.dist_acl_in -%}
+{% endif %}
+{% endfor %}
+{% if old_rip.dist_acl_in %}
 no distribute-list {{old_rip.dist_acl_in}} in
-{% endif -%}
-{% if rip.dist_acl_in -%}
+{% endif %}
+{% if rip.dist_acl_in %}
 distribute-list {{rip.dist_acl_in}} in
-{% endif -%}
-{% if old_rip.dist_acl_out -%}
+{% endif %}
+{% if old_rip.dist_acl_out %}
 no distribute-list {{old_rip.dist_acl_out}} out
-{% endif -%}
-{% if rip.dist_acl_out -%}
+{% endif %}
+{% if rip.dist_acl_out %}
 distribute-list {{rip.dist_acl_out}} out
-{% endif -%}
-{% if old_rip.dist_prfx_in -%}
+{% endif %}
+{% if old_rip.dist_prfx_in %}
 no distribute-list prefix {{old_rip.dist_prfx_in}} in
-{% endif -%}
-{% if rip.dist_prfx_in -%}
+{% endif %}
+{% if rip.dist_prfx_in %}
 distribute-list prefix {{rip.dist_prfx_in}} in
-{% endif -%}
-{% if old_rip.dist_prfx_out -%}
+{% endif %}
+{% if old_rip.dist_prfx_out %}
 no distribute-list prefix {{old_rip.dist_prfx_out}} out
-{% endif -%}
-{% if rip.dist_prfx_out -%}
+{% endif %}
+{% if rip.dist_prfx_out %}
 distribute-list prefix {{rip.dist_prfx_out}} out
-{% endif -%}
-{% for network in old_rip.networks -%}
+{% endif %}
+{% for network in old_rip.networks %}
 no network {{network}}
-{% endfor -%}
-{% for network in rip.networks -%}
+{% endfor %}
+{% for network in rip.networks %}
 network {{network}}
-{% endfor -%}
-{% for iface in old_rip.ifaces -%}
+{% endfor %}
+{% for iface in old_rip.ifaces %}
 no network {{iface}}
-{% endfor -%}
-{% for iface in rip.ifaces -%}
+{% endfor %}
+{% for iface in rip.ifaces %}
 network {{iface}}
-{% endfor -%}
-{% for neighbor in old_rip.neighbors -%}
+{% endfor %}
+{% for neighbor in old_rip.neighbors %}
 no neighbor {{neighbor}}
-{% endfor -%}
-{% for neighbor in rip.neighbors -%}
+{% endfor %}
+{% for neighbor in rip.neighbors %}
 neighbor {{neighbor}}
-{% endfor -%}
-{% for net in rip.net_distance -%}
-{% if rip.net_distance[net].access_list and rip.net_distance[net].distance -%}
+{% endfor %}
+{% for net in rip.net_distance %}
+{% if rip.net_distance[net].access_list and rip.net_distance[net].distance %}
 distance {{rip.net_distance[net].distance}} {{net}} {{rip.net_distance[net].access_list}} 
-{% else -%}
+{% else %}
 distance {{rip.net_distance[net].distance}} {{net}} 
-{% endif -%}
-{% endfor -%}
-{% for passive_iface in old_rip.passive_iface -%}
+{% endif %}
+{% endfor %}
+{% for passive_iface in old_rip.passive_iface %}
 no passive-interface {{passive_iface}}
-{% endfor -%}
-{% for passive_iface in rip.passive_iface -%}
+{% endfor %}
+{% for passive_iface in rip.passive_iface %}
 passive-interface {{passive_iface}}
-{% endfor -%}
-{% for route in old_rip.route -%}
+{% endfor %}
+{% for route in old_rip.route %}
 no route {{route}}
-{% endfor -%}
-{% for route in rip.route -%}
+{% endfor %}
+{% for route in rip.route %}
 route {{route}}
-{% endfor -%}
-{% if old_rip.timer_update or old_rip.timer_timeout or old_rip.timer_garbage -%}
+{% endfor %}
+{% if old_rip.timer_update or old_rip.timer_timeout or old_rip.timer_garbage %}
 no timers basic
-{% endif -%}
-{% if rip.timer_update or rip.timer_timeout or rip.timer_garbage -%}
+{% endif %}
+{% if rip.timer_update or rip.timer_timeout or rip.timer_garbage %}
 timers basic {{rip.timer_update}} {{rip.timer_timeout}} {{rip.timer_garbage}}
-{% endif -%}
+{% endif %}
 !
-{% else -%}
+{% else %}
 no router rip
 !
-{% endif -%}
+{% endif %}
diff --git a/data/templates/frr/static_mcast.frr.tmpl b/data/templates/frr/static_mcast.frr.tmpl
index 86d619ab0..38635af32 100644
--- a/data/templates/frr/static_mcast.frr.tmpl
+++ b/data/templates/frr/static_mcast.frr.tmpl
@@ -1,20 +1,20 @@
 !
-{% for route_gr in old_mroute -%}
-{% for nh in old_mroute[route_gr] -%}
-{% if old_mroute[route_gr][nh] -%}
+{% for route_gr in old_mroute %}
+{% for nh in old_mroute[route_gr] %}
+{% if old_mroute[route_gr][nh] %}
 no ip mroute {{ route_gr }} {{ nh }} {{ old_mroute[route_gr][nh] }}
-{% else -%}
+{% else %}
 no ip mroute {{ route_gr }} {{ nh }}
-{% endif -%}
-{% endfor -%}
-{% endfor -%}
-{% for route_gr in mroute -%}
-{% for nh in mroute[route_gr] -%}
-{% if mroute[route_gr][nh] -%}
+{% endif %}
+{% endfor %}
+{% endfor %}
+{% for route_gr in mroute %}
+{% for nh in mroute[route_gr] %}
+{% if mroute[route_gr][nh] %}
 ip mroute {{ route_gr }} {{ nh }} {{ mroute[route_gr][nh] }}
-{% else -%}
+{% else %}
 ip mroute {{ route_gr }} {{ nh }}
-{% endif -%}
-{% endfor -%}
-{% endfor -%}
+{% endif %}
+{% endfor %}
+{% endfor %}
 !
diff --git a/data/templates/ids/fastnetmon.tmpl b/data/templates/ids/fastnetmon.tmpl
index 71a1b2bd7..1f6a1c808 100644
--- a/data/templates/ids/fastnetmon.tmpl
+++ b/data/templates/ids/fastnetmon.tmpl
@@ -27,34 +27,34 @@ enable_subnet_counters = off
 
 {% if "mirror" in mode %}
 mirror_afpacket = on
-{% endif -%}
+{% endif %}
 
 {% if "in" in direction %}
 process_incoming_traffic = on
-{% endif -%}
+{% endif %}
 {% if "out" in direction %}
 process_outgoing_traffic = on
-{% endif -%}
+{% endif %}
 {% for th in threshold %}
 {% if th == "fps" %}
 ban_for_flows = on
 threshold_flows = {{ threshold[th] }}
-{% endif -%}
+{% endif %}
 {% if th == "mbps" %}
 ban_for_bandwidth = on
 threshold_mbps = {{ threshold[th] }}
-{% endif -%}
+{% endif %}
 {% if th == "pps" %}
 ban_for_pps = on
 threshold_pps = {{ threshold[th] }}
-{% endif -%}
-{% endfor -%}
+{% endif %}
+{% endfor %}
 
 {% if listen_interface %}
 {% set value = listen_interface if listen_interface is string else listen_interface | join(',') %}
 interfaces = {{ value }}
-{% endif -%}
+{% endif %}
 
 {% if alert_script %}
 notify_script_path = {{ alert_script }}
-{% endif -%}
+{% endif %}
diff --git a/data/templates/lldp/vyos.conf.tmpl b/data/templates/lldp/vyos.conf.tmpl
index e724f42c6..07bbaf604 100644
--- a/data/templates/lldp/vyos.conf.tmpl
+++ b/data/templates/lldp/vyos.conf.tmpl
@@ -2,19 +2,19 @@
 
 configure system platform VyOS
 configure system description "VyOS {{ options.description }}"
-{% if options.listen_on -%}
+{% if options.listen_on %}
 configure system interface pattern "{{ ( options.listen_on | select('equalto','all') | map('replace','all','*') | list + options.listen_on | select('equalto','!all') | map('replace','!all','!*') | list + options.listen_on | reject('equalto','all') | reject('equalto','!all') | list ) | unique | join(",") }}"
-{%- endif %}
-{% if options.mgmt_addr -%}
+{% endif %}
+{% if options.mgmt_addr %}
 configure system ip management pattern {{ options.mgmt_addr | join(",") }}
-{%- endif %}
-{%- for loc in location -%}
-{%- if loc.elin %}
+{% endif %}
+{% for loc in location %}
+{% if loc.elin %}
 configure ports {{ loc.name }} med location elin "{{ loc.elin }}"
-{%- endif %}
-{%- if loc.coordinate_based %}
+{% endif %}
+{% if loc.coordinate_based %}
 configure ports {{ loc.name }} med location coordinate {% if loc.coordinate_based.latitude %}latitude {{ loc.coordinate_based.latitude }}{% endif %} {% if loc.coordinate_based.longitude %}longitude {{ loc.coordinate_based.longitude }}{% endif %} {% if loc.coordinate_based.altitude %}altitude {{ loc.coordinate_based.altitude }} m{% endif %} {% if loc.coordinate_based.datum %}datum {{ loc.coordinate_based.datum }}{% endif %}
-{%- endif %}
+{% endif %}
 
 
 {% endfor %}
diff --git a/data/templates/netflow/uacctd.conf.tmpl b/data/templates/netflow/uacctd.conf.tmpl
index d8615566f..fdf96e7c3 100644
--- a/data/templates/netflow/uacctd.conf.tmpl
+++ b/data/templates/netflow/uacctd.conf.tmpl
@@ -8,62 +8,62 @@ snaplen: {{ snaplen }}
 aggregate: in_iface,src_mac,dst_mac,vlan,src_host,dst_host,src_port,dst_port,proto,tos,flows
 plugin_pipe_size: {{ templatecfg['plugin_pipe_size'] }}
 plugin_buffer_size: {{ templatecfg['plugin_buffer_size'] }}
-{%- if templatecfg['syslog-facility'] != none %}
+{% if templatecfg['syslog-facility'] != none %}
 syslog: {{ templatecfg['syslog-facility'] }}
-{%- endif %}
-{%- if templatecfg['disable-imt'] == none %}
+{% endif %}
+{% if templatecfg['disable-imt'] == none %}
 imt_path: /tmp/uacctd.pipe
 imt_mem_pools_number: 169
-{%- endif %}
+{% endif %}
 plugins:
-{%- if templatecfg['netflow']['servers'] != none -%}
+{% if templatecfg['netflow']['servers'] != none %}
     {% for server in templatecfg['netflow']['servers'] %}
-        {%- if loop.last -%}nfprobe[nf_{{ server['address'] }}]{%- else %}nfprobe[nf_{{ server['address'] }}],{%- endif %}
-    {%- endfor -%}
+        {% if loop.last %}nfprobe[nf_{{ server['address'] }}]{% else %}nfprobe[nf_{{ server['address'] }}],{% endif %}
+    {% endfor %}
     {% set plugins_presented = true %}
-{%- endif %}
-{%- if templatecfg['sflow']['servers'] != none -%}
-    {% if plugins_presented -%}
-        {%- for server in templatecfg['sflow']['servers'] -%}
+{% endif %}
+{% if templatecfg['sflow']['servers'] != none %}
+    {% if plugins_presented %}
+        {% for server in templatecfg['sflow']['servers'] %}
             ,sfprobe[sf_{{ server['address'] }}]
-        {%- endfor %}
-    {%- else %}
-        {%- for server in templatecfg['sflow']['servers'] %}
-            {%- if loop.last -%}sfprobe[sf_{{ server['address'] }}]{%- else %}sfprobe[sf_{{ server['address'] }}],{%- endif %}
-        {%- endfor %}
-    {%- endif -%}
+        {% endfor %}
+    {% else %}
+        {% for server in templatecfg['sflow']['servers'] %}
+            {% if loop.last %}sfprobe[sf_{{ server['address'] }}]{% else %}sfprobe[sf_{{ server['address'] }}],{% endif %}
+        {% endfor %}
+    {% endif %}
     {% set plugins_presented = true %}
-{%- endif %}
-{%- if templatecfg['disable-imt'] == none %}
-    {%- if plugins_presented -%},memory{%- else %}memory{%- endif %}
-{%- endif %}
-{%- if templatecfg['netflow']['servers'] != none %}
-{%- for server in templatecfg['netflow']['servers'] %}
+{% endif %}
+{% if templatecfg['disable-imt'] == none %}
+    {% if plugins_presented %},memory{% else %}memory{% endif %}
+{% endif %}
+{% if templatecfg['netflow']['servers'] != none %}
+{% for server in templatecfg['netflow']['servers'] %}
 nfprobe_receiver[nf_{{ server['address'] }}]: {{ server['address'] }}:{{ server['port'] }}
 nfprobe_version[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['version'] }}
-{%- if templatecfg['netflow']['engine-id'] != none %}
+{% if templatecfg['netflow']['engine-id'] != none %}
 nfprobe_engine[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['engine-id'] }}
-{%- endif %}
-{%- if templatecfg['netflow']['max-flows'] != none %}
+{% endif %}
+{% if templatecfg['netflow']['max-flows'] != none %}
 nfprobe_maxflows[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['max-flows'] }}
-{%- endif %}
-{%- if templatecfg['netflow']['sampling-rate'] != none %}
+{% endif %}
+{% if templatecfg['netflow']['sampling-rate'] != none %}
 sampling_rate[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['sampling-rate'] }}
-{%- endif %}
-{%- if templatecfg['netflow']['source-ip'] != none %}
+{% endif %}
+{% if templatecfg['netflow']['source-ip'] != none %}
 nfprobe_source_ip[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['source-ip'] }}
-{%- endif %}
-{%- if templatecfg['netflow']['timeout_string'] != '' %}
+{% endif %}
+{% if templatecfg['netflow']['timeout_string'] != '' %}
 nfprobe_timeouts[nf_{{ server['address'] }}]: {{ templatecfg['netflow']['timeout_string'] }}
-{%- endif %}
-{%- endfor %}
-{%- endif %}
-{%- if templatecfg['sflow']['servers'] != none %}
-{%- for server in templatecfg['sflow']['servers'] %}
+{% endif %}
+{% endfor %}
+{% endif %}
+{% if templatecfg['sflow']['servers'] != none %}
+{% for server in templatecfg['sflow']['servers'] %}
 sfprobe_receiver[sf_{{ server['address'] }}]: {{ server['address'] }}:{{ server['port'] }}
 sfprobe_agentip[sf_{{ server['address'] }}]: {{ templatecfg['sflow']['agent-address'] }}
-{%- if templatecfg['sflow']['sampling-rate'] != none %}
+{% if templatecfg['sflow']['sampling-rate'] != none %}
 sampling_rate[sf_{{ server['address'] }}]: {{ templatecfg['sflow']['sampling-rate'] }}
-{%- endif %}
-{%- endfor %}
+{% endif %}
+{% endfor %}
 {% endif %}
diff --git a/data/templates/pppoe/ip-pre-up.script.tmpl b/data/templates/pppoe/ip-pre-up.script.tmpl
index cf85ed067..a54e4e9bd 100644
--- a/data/templates/pppoe/ip-pre-up.script.tmpl
+++ b/data/templates/pppoe/ip-pre-up.script.tmpl
@@ -12,7 +12,7 @@ logger -t pppd[$DIALER_PID] "executing $0"
 
 echo "{{ description }}" > /sys/class/net/{{ ifname }}/ifalias
 
-{% if vrf -%}
+{% if vrf %}
 logger -t pppd[$DIALER_PID] "configuring dialer interface $6 for VRF {{ vrf }}"
 ip link set dev {{ ifname }} master {{ vrf }}
 {% endif %}
diff --git a/data/templates/pppoe/ip-up.script.tmpl b/data/templates/pppoe/ip-up.script.tmpl
index 568e21c4e..302756960 100644
--- a/data/templates/pppoe/ip-up.script.tmpl
+++ b/data/templates/pppoe/ip-up.script.tmpl
@@ -11,7 +11,7 @@ fi
 DIALER_PID=$(cat /var/run/{{ ifname }}.pid)
 logger -t pppd[$DIALER_PID] "executing $0"
 
-{%   if default_route != 'none' -%}
+{%   if default_route != 'none' %}
 # See https://phabricator.vyos.net/T2248 & T2220. Determine if we are enslaved
 # to a VRF, this is needed to properly insert the default route.
 
@@ -28,14 +28,14 @@ if [ -d /sys/class/net/{{ ifname }}/upper_* ]; then
     VRF_NAME="vrf ${VRF}"
 fi
 
-{%     if default_route == 'auto' -%}
+{%     if default_route == 'auto' %}
 # Only insert a new default route if there is no default route configured
 routes=$(vtysh -c "show running-config" | sed -n "/${SED_OPT}/,/!/p" | grep 0.0.0.0/0 | wc -l)
 if [ "$routes" -ne 0 ]; then
     exit 1
 fi
 
-{%     elif default_route == 'force' -%}
+{%     elif default_route == 'force' %}
 # Retrieve current static default routes and remove it from the routing table
 vtysh -c "show running-config" | sed -n "/${SED_OPT}/,/!/p" | grep 0.0.0.0/0 | while read route ; do
     vtysh -c "conf t" ${VTY_OPT} -c "no ${route} ${VRF_NAME}"
diff --git a/data/templates/pppoe/ipv6-up.script.tmpl b/data/templates/pppoe/ipv6-up.script.tmpl
index d0a62478c..ed6102d6c 100644
--- a/data/templates/pppoe/ipv6-up.script.tmpl
+++ b/data/templates/pppoe/ipv6-up.script.tmpl
@@ -7,7 +7,7 @@ if [ "$6" != "{{ ifname }}" ]; then
     exit
 fi
 
-{% if ipv6 is defined and ipv6.address is defined and ipv6.address.autoconf is defined -%}
+{% if ipv6 is defined and ipv6.address is defined and ipv6.address.autoconf is defined %}
 # add some info to syslog
 DIALER_PID=$(cat /var/run/{{ ifname }}.pid)
 logger -t pppd[$DIALER_PID] "executing $0"
@@ -45,7 +45,7 @@ echo 1 > /proc/sys/net/ipv6/conf/{{ ifname }}/autoconf
 systemctl start dhcp6c@{{ ifname }}.service
 {% endif %}
 
-{% if default_route != 'none' -%}
+{% if default_route != 'none' %}
 # See https://phabricator.vyos.net/T2248 & T2220. Determine if we are enslaved
 # to a VRF, this is needed to properly insert the default route.
 
@@ -62,14 +62,14 @@ if [ -d /sys/class/net/{{ ifname }}/upper_* ]; then
     VRF_NAME="vrf ${VRF}"
 fi
 
-{%   if default_route == 'auto' -%}
+{%   if default_route == 'auto' %}
 # Only insert a new default route if there is no default route configured
 routes=$(vtysh -c "show running-config" | sed -n "/${SED_OPT}/,/!/p" | grep ::/0 | wc -l)
 if [ "$routes" -ne 0 ]; then
     exit 1
 fi
 
-{%   elif default_route == 'force' -%}
+{%   elif default_route == 'force' %}
 # Retrieve current static default routes and remove it from the routing table
 vtysh -c "show running-config" | sed -n "/${SED_OPT}/,/!/p" | grep ::/0 | while read route ; do
     vtysh -c "conf t" ${VTY_OPT} -c "no ${route} ${VRF_NAME}"
diff --git a/data/templates/pppoe/peer.tmpl b/data/templates/pppoe/peer.tmpl
index e909843a5..dd4272a98 100644
--- a/data/templates/pppoe/peer.tmpl
+++ b/data/templates/pppoe/peer.tmpl
@@ -53,12 +53,12 @@ mru {{ mtu }}
 
 {{ "usepeerdns" if no_peer_dns is not defined }}
 
-{% if ipv6 is defined and ipv6.enable is defined -%}
+{% if ipv6 is defined and ipv6.enable is defined %}
 +ipv6
 ipv6cp-use-ipaddr
 {% endif %}
 
-{% if service_name is defined -%}
+{% if service_name is defined %}
 rp_pppoe_service "{{ service_name }}"
 {% endif %}
 
@@ -67,9 +67,9 @@ demand
 # See T2249. PPP default route options should only be set when in on-demand
 # mode. As soon as we are not in on-demand mode the default-route handling is
 # passed to the ip-up.d/ip-down.s scripts which is required for VRF support.
-{%   if 'auto' in default_route -%}
+{%   if 'auto' in default_route %}
 defaultroute
-{%   elif 'force' in default_route -%}
+{%   elif 'force' in default_route %}
 defaultroute
 replacedefaultroute
 {%   endif %}
diff --git a/data/templates/router-advert/radvd.conf.tmpl b/data/templates/router-advert/radvd.conf.tmpl
index cebfc54b5..2fde78fec 100644
--- a/data/templates/router-advert/radvd.conf.tmpl
+++ b/data/templates/router-advert/radvd.conf.tmpl
@@ -43,5 +43,5 @@ interface {{ iface }} {
     };
 {%     endif %}
 };
-{%   endfor -%}
+{%   endfor %}
 {% endif %}
diff --git a/data/templates/salt-minion/minion.tmpl b/data/templates/salt-minion/minion.tmpl
index 9369573a4..405fb9131 100644
--- a/data/templates/salt-minion/minion.tmpl
+++ b/data/templates/salt-minion/minion.tmpl
@@ -35,7 +35,7 @@ log_level: {{ log_level }}
 # Set the location of the salt master server, if the master server cannot be
 # resolved, then the minion will fail to start.
 master:
-{% for host in master -%}
+{% for host in master %}
 - {{ host }}
 {% endfor %}
 
diff --git a/data/templates/snmp/usr.snmpd.conf.tmpl b/data/templates/snmp/usr.snmpd.conf.tmpl
index 9c0337fa8..e2c5ec102 100644
--- a/data/templates/snmp/usr.snmpd.conf.tmpl
+++ b/data/templates/snmp/usr.snmpd.conf.tmpl
@@ -1,6 +1,6 @@
 ### Autogenerated by snmp.py ###
-{%- for u in v3_users %}
+{% for u in v3_users %}
 {{ u.mode }}user {{ u.name }}
-{%- endfor %}
+{% endfor %}
 
 rwuser {{ vyos_user }}
diff --git a/data/templates/snmp/var.snmpd.conf.tmpl b/data/templates/snmp/var.snmpd.conf.tmpl
index 6cbc687ef..c779587df 100644
--- a/data/templates/snmp/var.snmpd.conf.tmpl
+++ b/data/templates/snmp/var.snmpd.conf.tmpl
@@ -1,14 +1,14 @@
 ### Autogenerated by snmp.py ###
 # user
-{%- for u in v3_users %}
-{%- if u.authOID == 'none' %}
+{% for u in v3_users %}
+{% if u.authOID == 'none' %}
 createUser {{ u.name }}
-{%- else %}
+{% else %}
 usmUser 1 3 0x{{ v3_engineid }} "{{ u.name }}" "{{ u.name }}" NULL {{ u.authOID }} 0x{{ u.authMasterKey }} {{ u.privOID }} 0x{{ u.privMasterKey }} 0x
-{%- endif %}
-{%- endfor %}
+{% endif %}
+{% endfor %}
 
 createUser {{ vyos_user }} MD5 "{{ vyos_user_pass }}" DES
-{%- if v3_engineid %}
+{% if v3_engineid %}
 oldEngineID 0x{{ v3_engineid }}
-{%- endif %}
+{% endif %}
diff --git a/data/templates/syslog/rsyslog.conf.tmpl b/data/templates/syslog/rsyslog.conf.tmpl
index a610d132f..10fbb9d3c 100644
--- a/data/templates/syslog/rsyslog.conf.tmpl
+++ b/data/templates/syslog/rsyslog.conf.tmpl
@@ -1,14 +1,14 @@
 ## generated by syslog.py ##
 ## file based logging
-{% if files['global']['marker'] -%}
+{% if files['global']['marker'] %}
 $ModLoad immark
 {% if files['global']['marker-interval'] %}
 $MarkMessagePeriod  {{files['global']['marker-interval']}}
 {% endif %}
-{% endif -%}
-{% if files['global']['preserver_fqdn'] -%}
+{% endif %}
+{% if files['global']['preserver_fqdn'] %}
 $PreserveFQDN on
-{% endif -%}
+{% endif %}
 {% for file in files %}
 $outchannel {{file}},{{files[file]['log-file']}},{{files[file]['max-size']}},{{files[file]['action-on-max-size']}}
 {{files[file]['selectors']}} :omfile:${{file}}
diff --git a/data/templates/vrf/vrf.conf.tmpl b/data/templates/vrf/vrf.conf.tmpl
index 761b0bb6f..6d01d2b89 100644
--- a/data/templates/vrf/vrf.conf.tmpl
+++ b/data/templates/vrf/vrf.conf.tmpl
@@ -3,6 +3,6 @@
 # Routing table ID to name mapping reference
 
 # id       vrf name         comment
-{% for vrf in vrf_add -%}
+{% for vrf in vrf_add %}
 {{ "%-10s" | format(vrf.table) }} {{ "%-16s" | format(vrf.name) }} # {{ vrf.description }}
-{% endfor -%}
+{% endfor %}
diff --git a/data/templates/vrrp/keepalived.conf.tmpl b/data/templates/vrrp/keepalived.conf.tmpl
index 210621681..d51522e45 100644
--- a/data/templates/vrrp/keepalived.conf.tmpl
+++ b/data/templates/vrrp/keepalived.conf.tmpl
@@ -9,9 +9,9 @@ global_defs {
     notify_fifo_script /usr/libexec/vyos/system/keepalived-fifo.py
 }
 
-{% for group in groups -%}
+{% for group in groups %}
 
-{% if group.health_check_script -%}
+{% if group.health_check_script %}
 vrrp_script healthcheck_{{ group.name }} {
     script "{{ group.health_check_script }}"
     interval {{ group.health_check_interval }}
@@ -22,9 +22,9 @@ vrrp_script healthcheck_{{ group.name }} {
 {% endif %}
 
 vrrp_instance {{ group.name }} {
-    {% if group.description -%}
+    {% if group.description %}
     # {{ group.description }}
-    {% endif -%}
+    {% endif %}
 
     state BACKUP
     interface {{ group.interface }}
@@ -32,74 +32,74 @@ vrrp_instance {{ group.name }} {
     priority {{ group.priority }}
     advert_int {{ group.advertise_interval }}
 
-    {% if group.preempt -%}
+    {% if group.preempt %}
     preempt_delay {{ group.preempt_delay }}
-    {% else -%}
+    {% else %}
     nopreempt
-    {% endif -%}
+    {% endif %}
 
-    {% if group.peer_address -%}
+    {% if group.peer_address %}
     unicast_peer { {{ group.peer_address }} }
-    {% endif -%}
+    {% endif %}
 
-    {% if group.hello_source -%}
-      {%- if group.peer_address -%}
+    {% if group.hello_source %}
+      {% if group.peer_address %}
       unicast_src_ip {{ group.hello_source }}
-      {%- else -%}
+      {% else %}
       mcast_src_ip {{ group.hello_source }}
-      {%- endif %}
-    {% endif -%}
+      {% endif %}
+    {% endif %}
 
-    {% if group.use_vmac and group.peer_address -%}
+    {% if group.use_vmac and group.peer_address %}
       use_vmac {{group.interface}}v{{group.vrid}}
       vmac_xmit_base
-    {% elif group.use_vmac -%}
+    {% elif group.use_vmac %}
       use_vmac {{group.interface}}v{{group.vrid}}
-    {% endif -%}
+    {% endif %}
 
-    {% if group.auth_password -%}
+    {% if group.auth_password %}
       authentication {
         auth_pass "{{ group.auth_password }}"
         auth_type {{ group.auth_type }}
       }
-    {% endif -%}
+    {% endif %}
 
     virtual_ipaddress {
-    {% for addr in group.virtual_addresses -%}
+    {% for addr in group.virtual_addresses %}
         {{ addr }}
-    {% endfor -%}
+    {% endfor %}
     }
 
-    {% if group.virtual_addresses_excluded -%}
+    {% if group.virtual_addresses_excluded %}
     virtual_ipaddress_excluded {
-    {% for addr in group.virtual_addresses_excluded -%}
+    {% for addr in group.virtual_addresses_excluded %}
         {{ addr }}
-    {% endfor -%}
+    {% endfor %}
     }
-    {% endif -%}
+    {% endif %}
 
-    {% if group.health_check_script -%}
+    {% if group.health_check_script %}
     track_script {
         healthcheck_{{ group.name }}
     }
-    {% endif -%}
+    {% endif %}
 }
 
-{% endfor -%}
+{% endfor %}
 
-{% for sync_group in sync_groups -%}
+{% for sync_group in sync_groups %}
 vrrp_sync_group {{ sync_group.name }} {
        group {
-            {% for member in sync_group.members -%}
+            {% for member in sync_group.members %}
                 {{ member }}
-            {% endfor -%}
+            {% endfor %}
         }
 
-        {% if sync_group.conntrack_sync -%}
+        {% if sync_group.conntrack_sync %}
             notify_master "/opt/vyatta/sbin/vyatta-vrrp-conntracksync.sh master {{ sync_group.name }}"
             notify_backup "/opt/vyatta/sbin/vyatta-vrrp-conntracksync.sh backup {{ sync_group.name }}"
             notify_fault "/opt/vyatta/sbin/vyatta-vrrp-conntracksync.sh fault {{ sync_group.name }}"
-        {% endif -%}
+        {% endif %}
 }
 
-{% endfor -%}
+{% endfor %}
diff --git a/data/templates/vyos-hostsd/hosts.tmpl b/data/templates/vyos-hostsd/hosts.tmpl
index 566f9a5dd..be8692104 100644
--- a/data/templates/vyos-hostsd/hosts.tmpl
+++ b/data/templates/vyos-hostsd/hosts.tmpl
@@ -12,15 +12,15 @@ ff00::0         ip6-mcastprefix
 ff02::1         ip6-allnodes
 ff02::2         ip6-allrouters
 
-{% if hosts -%}
+{% if hosts %}
 # From 'system static-host-mapping' and DHCP server
-{%- for tag, taghosts in hosts.items() %}
+{% for tag, taghosts in hosts.items() %}
 # {{ tag }}
-{%- for host, hostprops in taghosts.items() %}
-{%- if hostprops['address'] %}
+{% for host, hostprops in taghosts.items() %}
+{% if hostprops['address'] %}
 {{ hostprops['address'] }}	{{ host }}{% for a in hostprops['aliases'] %} {{ a }}{% endfor %}
-{%- endif %}
-{%- endfor %}
-{%- endfor %}
-{%- endif %}
+{% endif %}
+{% endfor %}
+{% endfor %}
+{% endif %}
 
diff --git a/data/templates/wwan/ip-pre-up.script.tmpl b/data/templates/wwan/ip-pre-up.script.tmpl
index efc065bad..199150947 100644
--- a/data/templates/wwan/ip-pre-up.script.tmpl
+++ b/data/templates/wwan/ip-pre-up.script.tmpl
@@ -17,7 +17,7 @@ logger -t pppd[$DIALER_PID] "executing $0"
 
 echo "{{ description }}" > /sys/class/net/{{ ifname }}/ifalias
 
-{% if vrf -%}
+{% if vrf %}
 logger -t pppd[$DIALER_PID] "configuring interface {{ ifname }} for VRF {{ vrf }}"
 ip link set dev {{ ifname }} master {{ vrf }}
 {% endif %}
-- 
cgit v1.2.3