[gnome-continuous-yocto/gnomeostree-3.28-rocko: 1221/8267] bitbake: eventreplay: fix event loading code



commit 70cc20daef087b2dd1567168c9091be0476fefc8
Author: Ed Bartosh <ed bartosh linux intel com>
Date:   Wed Jul 6 12:00:31 2016 +0100

    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 <ed bartosh linux intel com>
    Signed-off-by: Elliot Smith <elliot smith intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/bin/toaster-eventreplay |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/bitbake/bin/toaster-eventreplay b/bitbake/bin/toaster-eventreplay
index 03b5dde..a107298 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]