summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2008-10-08 12:48:22 +0000
committerNarayan Desai <desai@mcs.anl.gov>2008-10-08 12:48:22 +0000
commitcb5e67f9134fa6445c1360fb4293259d1c41a0c9 (patch)
tree9c5bb3aac10c064b6b50c84a3a8a87575a2c00af /src
parent44db9bfa747b33ac8e4b820a0fe80cd857cbecdf (diff)
downloadbcfg2-cb5e67f9134fa6445c1360fb4293259d1c41a0c9.tar.gz
bcfg2-cb5e67f9134fa6445c1360fb4293259d1c41a0c9.tar.bz2
bcfg2-cb5e67f9134fa6445c1360fb4293259d1c41a0c9.zip
Fix [TS]Genshi to work with both genshi 0.4 and 0.5
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4927 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r--src/lib/Server/Plugins/TGenshi.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/Server/Plugins/TGenshi.py b/src/lib/Server/Plugins/TGenshi.py
index 471bde091..f453b0450 100644
--- a/src/lib/Server/Plugins/TGenshi.py
+++ b/src/lib/Server/Plugins/TGenshi.py
@@ -1,8 +1,13 @@
'''This module implements a templating generator based on Genshi'''
__revision__ = '$Revision$'
-from genshi.template import TemplateLoader, NewTextTemplate, \
+from genshi.template import TemplateLoader, \
TextTemplate, MarkupTemplate, TemplateError
+try:
+ from genshi.template import NewTextTemplate
+ have_ntt = True
+except:
+ have_ntt = False
import logging
import Bcfg2.Server.Plugin
import genshi.core, genshi.input
@@ -32,7 +37,10 @@ class TemplateFile:
if matchname.endswith('.txt'):
self.template_cls = TextTemplate
elif matchname.endswith('.newtxt'):
- self.template_cls = NewTextTemplate
+ if not have_ntt:
+ logger.error("Genshi NewTextTemplates not supported by this version of Genshi")
+ else:
+ self.template_cls = NewTextTemplate
else:
self.template_cls = MarkupTemplate
@@ -56,7 +64,11 @@ class TemplateFile:
stream = self.template.generate( \
name=fname, metadata=metadata, path=self.name,
properties=self.properties).filter(removecomment)
- if isinstance(self.template, TextTemplate) or isinstance(self.template, NewTextTemplate):
+ if have_ntt:
+ ttypes = [TextTemplate, NewTextTemplate]
+ else:
+ ttypes = [TextTemplate]
+ if True in [isinstance(self.template, t) for t in ttypes]:
textdata = stream.render('text')
if type(textdata) == unicode:
entry.text = textdata