diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2008-10-08 12:48:22 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2008-10-08 12:48:22 +0000 |
commit | cb5e67f9134fa6445c1360fb4293259d1c41a0c9 (patch) | |
tree | 9c5bb3aac10c064b6b50c84a3a8a87575a2c00af | |
parent | 44db9bfa747b33ac8e4b820a0fe80cd857cbecdf (diff) | |
download | bcfg2-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
-rw-r--r-- | src/lib/Server/Plugins/TGenshi.py | 18 |
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 |