diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2017-08-23 23:19:55 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-24 09:34:53 +0100 |
commit | baa78420d8d8e716935852c9c7b749af0161395a (patch) | |
tree | 721618c13ca304927421bc615dcdf021052fa693 | |
parent | 9f32d9405ed5430e9e55de2f1562baac963e807c (diff) | |
download | openembedded-core-baa78420d8d8e716935852c9c7b749af0161395a.tar.gz openembedded-core-baa78420d8d8e716935852c9c7b749af0161395a.tar.bz2 openembedded-core-baa78420d8d8e716935852c9c7b749af0161395a.zip |
core/target/ssh.py: use reader to handle partial data
This can avoid UnicodeDecodeError error.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/core/target/ssh.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/meta/lib/oeqa/core/target/ssh.py b/meta/lib/oeqa/core/target/ssh.py index a2eafcd6f2..927d659525 100644 --- a/meta/lib/oeqa/core/target/ssh.py +++ b/meta/lib/oeqa/core/target/ssh.py @@ -6,6 +6,7 @@ import time import select import logging import subprocess +import codecs from . import OETarget @@ -206,12 +207,12 @@ def SSHCall(command, logger, timeout=None, **opts): logger.debug('time: %s, endtime: %s' % (time.time(), endtime)) try: if select.select([process.stdout], [], [], 5)[0] != []: - data = os.read(process.stdout.fileno(), 1024) + reader = codecs.getreader('utf-8')(process.stdout) + data = reader.read(1024, 1024) if not data: process.stdout.close() eof = True else: - data = data.decode("utf-8", errors='replace') output += data logger.debug('Partial data from SSH call: %s' % data) endtime = time.time() + timeout |