From 70cc20daef087b2dd1567168c9091be0476fefc8 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Wed, 6 Jul 2016 12:00:31 +0100 Subject: bitbake: eventreplay: fix event loading code Event objects are represented by base64-encoded strings in the event file and can't be loaded by existing eventreplay code. Fixed the code of loading events from file by decoding base64 strings into the binary form and loading them with pickle.load. [YOCTO #9585] (Bitbake rev: a55c280c167f84caed6518119246e5a55f56cfd4) Signed-off-by: Ed Bartosh Signed-off-by: Elliot Smith Signed-off-by: Richard Purdie --- bitbake/bin/toaster-eventreplay | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'bitbake/bin') diff --git a/bitbake/bin/toaster-eventreplay b/bitbake/bin/toaster-eventreplay index 03b5dde938..a1072988ac 100755 --- a/bitbake/bin/toaster-eventreplay +++ b/bitbake/bin/toaster-eventreplay @@ -29,6 +29,7 @@ from __future__ import print_function import os import sys, logging +import codecs # mangle syspath to allow easy import of modules sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), @@ -117,7 +118,8 @@ class FileReadEventsServerConnection(): try: event_data = json.loads(line.strip()) event_class = _import_class(event_data['class']) - event_object = pickle.loads(json.loads(event_data['vars'])) + event_str = event_data['vars'].encode('utf-8') + event_object = pickle.loads(codecs.decode(event_str, 'base64')) except ValueError as e: print("Failed loading ", line) raise e -- cgit v1.2.3-54-g00ecf