]>
git.proxmox.com Git - mirror_ifupdown2.git/blob - ifupdown2/ifupdown/template.py
3 # Copyright 2014 Cumulus Networks, Inc. All rights reserved.
4 # Author: Roopa Prabhu, roopa@cumulusnetworks.com
7 # helper class to render templates
14 class templateEngine():
15 """ provides template rendering methods """
17 def __init__(self
, template_engine
, template_lookuppath
=None):
18 self
.logger
= logging
.getLogger('ifupdown.' +
19 self
.__class
__.__name
__)
22 self
.render
= self
._render
_default
23 if template_engine
== 'mako':
25 self
.tclass
= utils
.importName('mako.template', 'Template')
27 self
.logger
.warn('unable to load template engine %s (%s)'
28 %(template_engine
, str(e
)))
30 if template_lookuppath
:
32 self
.logger
.debug('setting template lookuppath to %s'
34 lc
= utils
.importName('mako.lookup', 'TemplateLookup')
35 self
.tclassargs
['lookup'] = lc(
36 directories
=template_lookuppath
.split(':'))
38 self
.logger
.warn('unable to set template lookup path' +
39 ' %s (%s)' %(template_lookuppath
, str(e
)))
41 self
.render
= self
._render
_mako
43 self
.logger
.info('skip template processing.., ' +
44 'template engine not found')
46 def _render_default(self
, textdata
):
49 def _render_mako(self
, textdata
):
50 """ render textdata passed as argument using mako
52 Returns rendered textdata """
56 self
.logger
.info('template processing on interfaces file ...')
57 t
= self
.tclass(text
=textdata
, output_encoding
='utf-8',
58 lookup
=self
.tclassargs
.get('lookup'))