From: Deepak S Date: Tue, 17 Jan 2017 00:37:39 +0000 (+0530) Subject: Verify stdin data before doing encodeutils safe_encode X-Git-Tag: danube.1.0~130^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=0aa65ecf94ecbab93fa858607f1051535ac2d59e;p=yardstick.git 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 --- 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: