From 0aa65ecf94ecbab93fa858607f1051535ac2d59e Mon Sep 17 00:00:00 2001 From: Deepak S Date: Tue, 17 Jan 2017 06:07:39 +0530 Subject: Verify stdin data before doing encodeutils safe_encode Process running via ssh can return "None" or emtpy data from the application. To avoid encodutils raise NoneType issue. Check the data before encode. JIRA: YARDSTICK-539 Change-Id: I7e86e6a17c0adc95d41714f6fec463dfadc2b81b Signed-off-by: Deepak S --- yardstick/ssh.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/yardstick/ssh.py b/yardstick/ssh.py index 1cad8eefa..cfbc3ca96 100644 --- a/yardstick/ssh.py +++ b/yardstick/ssh.py @@ -202,7 +202,7 @@ class SSH(object): start_time = time.time() # encode on transmit, decode on receive - data_to_send = encodeutils.safe_encode("") + data_to_send = encodeutils.safe_encode("", incoming='utf-8') stderr_data = None # If we have data to be sent to stdin then `select' should also @@ -234,8 +234,11 @@ class SSH(object): if session.send_ready(): if stdin is not None and not stdin.closed: if not data_to_send: + stdin_txt = stdin.read(4096) + if stdin_txt is None: + stdin_txt = '' data_to_send = encodeutils.safe_encode( - stdin.read(4096), incoming='utf-8') + stdin_txt, incoming='utf-8') if not data_to_send: # we may need to keep stdin open if not keep_stdin_open: -- cgit 1.2.3-korg