summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-05-21 09:40:20 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-05-21 09:40:20 -0400
commit70d67a417957cb16f0307be0677a346cc9e724f5 (patch)
tree6c5a55cd43fb2b86e74dda3456310b4d819b3c46
parentd78e0cc91947a06ae7687cb54f805787fb00d28f (diff)
downloadbcfg2-70d67a417957cb16f0307be0677a346cc9e724f5.tar.gz
bcfg2-70d67a417957cb16f0307be0677a346cc9e724f5.tar.bz2
bcfg2-70d67a417957cb16f0307be0677a346cc9e724f5.zip
fixes for missing genshi
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenshiGenerator.py2
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py6
-rwxr-xr-xsrc/sbin/bcfg2-info12
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 <hostname> <filename> - 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: