diff --git a/lxc_net/templates/network.xml b/lxc_net/templates/network.xml index 4a4201b..a35dc17 100644 --- a/lxc_net/templates/network.xml +++ b/lxc_net/templates/network.xml @@ -1,11 +1,11 @@ - {name} - {uuid} - - - - + {{ name }} + {{ uuid }} + + + + - + diff --git a/lxc_net/xml_template.py b/lxc_net/xml_template.py index b678de2..b6508b3 100644 --- a/lxc_net/xml_template.py +++ b/lxc_net/xml_template.py @@ -1,16 +1,23 @@ """ Reads an XML template from a file """ import os +import jinja2 class XMLTemplate: """ Reads and instanciates a template from a file """ + base_path = os.path.dirname(os.path.abspath(__file__)) + env = jinja2.Environment( + loader=jinja2.FileSystemLoader(base_path), + autoescape=jinja2.select_autoescape( + enabled_extensions=("xml"), default_for_string=True, + ), + ) + def __init__(self, path): - self.path = os.path.join(os.path.dirname(os.path.abspath(__file__)), path) - with open(self.path, "r") as handle: - self.template_str = handle.read() + self.template = self.env.get_template(path) def inst(self, *args, **kwargs): """ instanciates the template """ - return self.template_str.format(*args, **kwargs) + return self.template.render(*args, **kwargs)