summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Cfg
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-16 07:25:07 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-22 08:31:06 -0400
commitce9b7aedbe9cfe8de4e576dbe125c5a7161f5f5d (patch)
treec9ec96afeb1066c6ec4a2780a12a39349b213374 /src/lib/Bcfg2/Server/Plugins/Cfg
parentd065f384846867fbee14be74209a1e56436314e8 (diff)
downloadbcfg2-ce9b7aedbe9cfe8de4e576dbe125c5a7161f5f5d.tar.gz
bcfg2-ce9b7aedbe9cfe8de4e576dbe125c5a7161f5f5d.tar.bz2
bcfg2-ce9b7aedbe9cfe8de4e576dbe125c5a7161f5f5d.zip
merged cheetah encoding fixes from maint
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Cfg')
-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])