From 70d67a417957cb16f0307be0677a346cc9e724f5 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Mon, 21 May 2012 09:40:20 -0400 Subject: fixes for missing genshi --- .../Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py | 2 +- src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py | 6 +++--- src/sbin/bcfg2-info | 12 +++++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py index 649bc38a5..6605cca7c 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py @@ -10,7 +10,7 @@ try: from genshi.template import TemplateLoader except ImportError: # CfgGenshiGenerator will raise errors if genshi doesn't exist - pass + TemplateLoader = object class EncryptedTemplateLoader(TemplateLoader): diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py index 4e0ff8534..5447717d8 100644 --- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py @@ -28,12 +28,12 @@ class CfgGenshiGenerator(CfgGenerator): def __init__(self, fname, spec, encoding): CfgGenerator.__init__(self, fname, spec, encoding) - self.loader = self.__loader_cls__() - self.template = None if not have_genshi: - msg = "Cfg: Genshi is not available: %s" % entry.get("name") + msg = "Cfg: Genshi is not available: %s" % fname logger.error(msg) raise Bcfg2.Server.Plugin.PluginExecutionError(msg) + self.loader = self.__loader_cls__() + self.template = None @classmethod def ignore(cls, event, basename=None): diff --git a/src/sbin/bcfg2-info b/src/sbin/bcfg2-info index fdcf9ac17..c9772ce6c 100755 --- a/src/sbin/bcfg2-info +++ b/src/sbin/bcfg2-info @@ -26,9 +26,14 @@ import Bcfg2.Logger import Bcfg2.Options import Bcfg2.Server.Core import Bcfg2.Server.Plugins.Metadata -import Bcfg2.Server.Plugins.SGenshi import Bcfg2.Server.Plugin +try: + import Bcfg2.Server.Plugins.SGenshi + has_genshi = True +except ImportError: + has_genshi = False + logger = logging.getLogger('bcfg2-info') USAGE = """Commands: build - Build config for hostname, writing to filename @@ -384,8 +389,9 @@ class infoCore(cmd.Cmd, Bcfg2.Server.Core.Core): metadata = self.build_metadata(client) if bname in self.plugins['Bundler'].entries: bundle = self.plugins['Bundler'].entries[bname] - if isinstance(bundle, - Bcfg2.Server.Plugins.SGenshi.SGenshiTemplateFile): + if (has_genshi and + isinstance(bundle, + Bcfg2.Server.Plugins.SGenshi.SGenshiTemplateFile)): stream = bundle.template.generate(metadata=metadata) print(stream.render("xml")) else: -- cgit v1.2.3-1-g7c22