summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py3
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py
index e74b77e83..f02461673 100644
--- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py
+++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgCheetahGenerator.py
@@ -24,7 +24,8 @@ class CfgCheetahGenerator(CfgGenerator):
raise Bcfg2.Server.Plugin.PluginExecutionError(msg)
def get_data(self, entry, metadata):
- template = Template(self.data, compilerSettings=self.settings)
+ template = Template(self.data.decode(self.encoding),
+ compilerSettings=self.settings)
template.metadata = metadata
template.path = entry.get('realname', entry.get('name'))
template.source_path = self.name
diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
index aef239fce..7513632f4 100644
--- a/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
+++ b/src/lib/Bcfg2/Server/Plugins/Cfg/__init__.py
@@ -9,7 +9,7 @@ import logging
import lxml.etree
import Bcfg2.Options
import Bcfg2.Server.Plugin
-from Bcfg2.Bcfg2Py3k import u_str, b64encode
+from Bcfg2.Bcfg2Py3k import u_str, unicode, b64encode
import Bcfg2.Server.Lint
logger = logging.getLogger(__name__)
@@ -292,7 +292,8 @@ class CfgEntrySet(Bcfg2.Server.Plugin.EntrySet):
data = b64encode(data)
else:
try:
- data = u_str(data, self.encoding)
+ if type(data) != unicode:
+ data = u_str(data, self.encoding)
except UnicodeDecodeError:
msg = "Failed to decode %s: %s" % (entry.get('name'),
sys.exc_info()[1])