summaryrefslogtreecommitdiff
path: root/src/conf_mode/dhcpv6_relay.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-04-05 18:24:56 +0200
committerChristian Poessinger <christian@poessinger.com>2020-04-05 18:28:10 +0200
commita7c70fae028bc64164502c9c29a606f7260e31a3 (patch)
tree23420c209c10bfffd698233dc2509a3a707b4ced /src/conf_mode/dhcpv6_relay.py
parent7b56a45fe866f62e47c04e1dabb32b1240297ed6 (diff)
downloadvyos-1x-a7c70fae028bc64164502c9c29a606f7260e31a3.tar.gz
vyos-1x-a7c70fae028bc64164502c9c29a606f7260e31a3.zip
dhcpv6-relay: T2230: move inlined templates to dedicated files
Diffstat (limited to 'src/conf_mode/dhcpv6_relay.py')
-rwxr-xr-xsrc/conf_mode/dhcpv6_relay.py31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/conf_mode/dhcpv6_relay.py b/src/conf_mode/dhcpv6_relay.py
index ccabc901d..d942daf37 100755
--- a/src/conf_mode/dhcpv6_relay.py
+++ b/src/conf_mode/dhcpv6_relay.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2018 VyOS maintainers and contributors
+# Copyright (C) 2018-2020 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@@ -13,27 +13,19 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-import sys
import os
-import jinja2
+
+from sys import exit
+from copy import deepcopy
+from jinja2 import FileSystemLoader, Environment
from vyos.config import Config
+from vyos.defaults import directories as vyos_data_dir
from vyos import ConfigError
config_file = r'/etc/default/isc-dhcpv6-relay'
-# Please be careful if you edit the template.
-config_tmpl = """
-### Autogenerated by dhcpv6_relay.py ###
-
-# Defaults for isc-dhcpv6-relay initscript sourced by /etc/init.d/isc-dhcpv6-relay
-OPTIONS="-6 -l {{ listen_addr | join(' -l ') }} -u {{ upstream_addr | join(' -u ') }} {{ options | join(' ') }}"
-
-"""
-
default_config_data = {
'listen_addr': [],
'upstream_addr': [],
@@ -41,7 +33,7 @@ default_config_data = {
}
def get_config():
- relay = default_config_data
+ relay = deepcopy(default_config_data)
conf = Config()
if not conf.exists('service dhcpv6-relay'):
return None
@@ -92,7 +84,12 @@ def generate(relay):
if relay is None:
return None
- tmpl = jinja2.Template(config_tmpl)
+ # Prepare Jinja2 template loader from files
+ tmpl_path = os.path.join(vyos_data_dir['data'], 'templates', 'dhcpv6-relay')
+ fs_loader = FileSystemLoader(tmpl_path)
+ env = Environment(loader=fs_loader)
+
+ tmpl = env.get_template('config.tmpl')
config_text = tmpl.render(relay)
with open(config_file, 'w') as f:
f.write(config_text)
@@ -117,4 +114,4 @@ if __name__ == '__main__':
apply(c)
except ConfigError as e:
print(e)
- sys.exit(1)
+ exit(1)