]>
git.proxmox.com Git - mirror_ifupdown2.git/blob - 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_enable
='0',
18 template_lookuppath
=None):
19 self
.logger
= logging
.getLogger('ifupdown.' +
20 self
.__class
__.__name
__)
23 self
.render
= self
._render
_default
24 if template_enable
== '0':
26 if template_engine
== 'mako':
28 self
.tclass
= utils
.importName('mako.template', 'Template')
30 self
.logger
.warn('unable to load template engine %s (%s)'
31 %(template_engine
, str(e
)))
33 if template_lookuppath
:
35 self
.logger
.debug('setting template lookuppath to %s'
37 lc
= utils
.importName('mako.lookup', 'TemplateLookup')
38 self
.tclassargs
['lookup'] = lc(
39 directories
=template_lookuppath
.split(':'))
41 self
.logger
.warn('unable to set template lookup path'
42 ' %s (%s): are you sure \'python-mako\''
44 % (template_lookuppath
, str(e
)))
45 self
.render
= self
._render
_mako
47 self
.logger
.info('skip template processing.., ' +
48 'template engine not found')
50 def _render_default(self
, textdata
):
53 def _render_mako(self
, textdata
):
54 """ render textdata passed as argument using mako
56 Returns rendered textdata """
60 self
.logger
.info('template processing on interfaces file ...')
61 t
= self
.tclass(text
=textdata
, output_encoding
='utf-8',
62 lookup
=self
.tclassargs
.get('lookup'))