]>
git.proxmox.com Git - mirror_ifupdown2.git/blob - ifupdown2/ifupdown/template.py
3 # Copyright 2014-2017 Cumulus Networks, Inc. All rights reserved.
4 # Author: Roopa Prabhu, roopa@cumulusnetworks.com
7 # helper class to render templates
11 from ifupdown2
.ifupdown
.utils
import *
13 from ifupdown
.utils
import *
16 class templateEngine():
17 """ provides template rendering methods """
19 def __init__(self
, template_engine
, template_enable
='0',
20 template_lookuppath
=None):
21 self
.logger
= logging
.getLogger('ifupdown.' +
22 self
.__class
__.__name
__)
25 self
.render
= self
._render
_default
26 if template_enable
== '0':
28 if template_engine
== 'mako':
30 self
.tclass
= utils
.importName('mako.template', 'Template')
32 self
.logger
.warn('unable to load template engine %s (%s)'
33 %(template_engine
, str(e
)))
35 if template_lookuppath
:
37 self
.logger
.debug('setting template lookuppath to %s'
39 lc
= utils
.importName('mako.lookup', 'TemplateLookup')
40 self
.tclassargs
['lookup'] = lc(
41 directories
=template_lookuppath
.split(':'))
43 self
.logger
.warn('unable to set template lookup path'
44 ' %s (%s): are you sure \'python-mako\''
46 % (template_lookuppath
, str(e
)))
47 self
.render
= self
._render
_mako
49 self
.logger
.info('skip template processing.., ' +
50 'template engine not found')
52 def _render_default(self
, textdata
):
55 def _render_mako(self
, textdata
):
56 """ render textdata passed as argument using mako
58 Returns rendered textdata """
62 self
.logger
.info('template processing on interfaces file ...')
63 t
= self
.tclass(text
=textdata
, output_encoding
='utf-8',
64 lookup
=self
.tclassargs
.get('lookup'))