From e0687d4f9014919dda15fa41b48d7ce8f6ffa401 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Thu, 2 Oct 2014 12:00:47 +0000 Subject: distbuild: base64-encode exec-output messages JSON can only handle unicode strings, but commands can write anything to stdout/stderr, so let's base64 encode the data. --- distbuild/initiator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'distbuild/initiator.py') diff --git a/distbuild/initiator.py b/distbuild/initiator.py index b60700fd..a803c781 100644 --- a/distbuild/initiator.py +++ b/distbuild/initiator.py @@ -16,6 +16,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.. +import base64 import cliapp import logging import random @@ -145,8 +146,8 @@ class Initiator(distbuild.StateMachine): step_name = msg['step_name'] if step_name in self._step_outputs: f = self._step_outputs[step_name] - f.write(msg['stdout']) - f.write(msg['stderr']) + f.write(base64.standard_b64decode(msg['stdout'])) + f.write(base64.standard_b64decode(msg['stderr'])) f.flush() else: logging.warning( -- cgit v1.2.1