From 6b637011e1be7ff8cd67c208df8ae9ab28f11c4c Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Sun, 1 Sep 2013 13:32:01 -0500 Subject: Probes: Fix unicode probes Signed-off-by: Sol Jerome --- src/lib/Bcfg2/Client/__init__.py | 6 +++++- src/lib/Bcfg2/Server/Plugins/Probes.py | 11 ++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/lib/Bcfg2/Client/__init__.py b/src/lib/Bcfg2/Client/__init__.py index 19db94015..6243213cd 100644 --- a/src/lib/Bcfg2/Client/__init__.py +++ b/src/lib/Bcfg2/Client/__init__.py @@ -193,7 +193,11 @@ class Client(object): ret = XML.Element("probe-data", name=name, source=probe.get('source')) try: scripthandle, scriptname = tempfile.mkstemp() - script = os.fdopen(scripthandle, 'w') + if sys.hexversion >= 0x03000000: + script = os.fdopen(scripthandle, 'w', + encoding=Bcfg2.Options.setup.encoding) + else: + script = os.fdopen(scripthandle, 'w') try: script.write("#!%s\n" % (probe.attrib.get('interpreter', '/bin/sh'))) diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py index 010a69dd1..560546c70 100644 --- a/src/lib/Bcfg2/Server/Plugins/Probes.py +++ b/src/lib/Bcfg2/Server/Plugins/Probes.py @@ -238,9 +238,14 @@ class XMLProbeStore(ProbeStore): lxml.etree.SubElement(top, 'Client', name=client, timestamp=str(int(probedata.timestamp))) for probe in sorted(probedata): - lxml.etree.SubElement( - ctag, 'Probe', name=probe, - value=self._datacache[client][probe]) + try: + lxml.etree.SubElement( + ctag, 'Probe', name=probe, + value=self._datacache[client][probe].decode('utf-8')) + except AttributeError: + lxml.etree.SubElement( + ctag, 'Probe', name=probe, + value=self._datacache[client][probe]) for group in sorted(self._groupcache[client]): lxml.etree.SubElement(ctag, "Group", name=group) try: -- cgit v1.2.3-1-g7c22