)]}'
{"neutron_tempest_plugin/common/ssh.py":[{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"5976e9052ee12ddf71b93595847edceafe40bee4","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            while channel.recv_stderr_ready():"},{"line_number":257,"context_line":"                error_data +\u003d channel.recv_stderr(self.buf_size)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        stdout \u003d output_data.decode(\u0027utf-8\u0027)"},{"line_number":260,"context_line":"        if exit_status \u003d\u003d 0:"},{"line_number":261,"context_line":"            return stdout"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_591d3f0e","line":259,"updated":"2018-10-23 20:08:40.000000000","message":"Should this use UTF-8, or should it use the locally set LANG and LC_* variables?  Especially since care was taken to accomodate them on lines 218-219.  I just don\u0027t want to have an i18n problem if someone is running with those set to zh_CN.","commit_id":"9ae9b382ceca5ce3b6508deb0a93674063764fef"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"5976e9052ee12ddf71b93595847edceafe40bee4","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        if exit_status \u003d\u003d 0:"},{"line_number":261,"context_line":"            return stdout"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        stderr \u003d error_data.decode(\u0027utf-8\u0027)"},{"line_number":264,"context_line":"        raise SSHScriptFailed(host\u003dself.host, script\u003dscript, stderr\u003dstderr,"},{"line_number":265,"context_line":"                              stdout\u003dstdout, exit_status\u003dexit_status)"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_19e827de","line":263,"updated":"2018-10-23 20:08:40.000000000","message":"see above","commit_id":"9ae9b382ceca5ce3b6508deb0a93674063764fef"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c32d9d9de8e757aabc931b074370a8a1e79218d5","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        stderr \u003d _to_string(error_data, encoding)"},{"line_number":270,"context_line":"        raise SSHScriptFailed(host\u003dself.host, script\u003dscript, stderr\u003dstderr,"},{"line_number":271,"context_line":"                              stdout\u003dstdout, exit_status\u003dexit_status)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"def _to_string(data_buffer, encoding):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_139f4af6","line":271,"updated":"2018-10-28 09:52:16.000000000","message":"all is fine here but I don\u0027t see how You will return that script was timed out. In such case, IIUC, You will have exit_status\u003dNone, output_data\u003db\u0027\u0027 and error_data\u003db\u0027\u0027, and that\u0027s all what user will see in test\u0027s result, right?\nMaybe You should raise some different exception, something like \"SSHScriptExecutionTimeout\" or something like that then?","commit_id":"b1fbb3348ff086907a59a738b806824dae5e514a"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"2f93bef53b0f20fb3109a596eafd0df60573cee9","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        stderr \u003d _to_string(error_data, encoding)"},{"line_number":270,"context_line":"        raise SSHScriptFailed(host\u003dself.host, script\u003dscript, stderr\u003dstderr,"},{"line_number":271,"context_line":"                              stdout\u003dstdout, exit_status\u003dexit_status)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"def _to_string(data_buffer, encoding):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_65c3503a","line":271,"in_reply_to":"3f79a3b5_139f4af6","updated":"2018-10-29 08:43:23.000000000","message":"Indeed it make lot of sense to have two type of exceptions here! Thanks","commit_id":"b1fbb3348ff086907a59a738b806824dae5e514a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c32d9d9de8e757aabc931b074370a8a1e79218d5","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \"\\r\", \"\\n\")"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"class SSHScriptFailed(exceptions.TempestException):"},{"line_number":280,"context_line":"    message \u003d (\"Failed executing script on remote host %(host)r:\\n\""},{"line_number":281,"context_line":"               \"script:\\n%(script)s\\n\""},{"line_number":282,"context_line":"               \"stderr:\\n%(stderr)s\\n\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_b35f764b","line":279,"updated":"2018-10-28 09:52:16.000000000","message":"maybe this could be moved to neutron_tempest_plugin.exceptions module?","commit_id":"b1fbb3348ff086907a59a738b806824dae5e514a"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"2f93bef53b0f20fb3109a596eafd0df60573cee9","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \"\\r\", \"\\n\")"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"class SSHScriptFailed(exceptions.TempestException):"},{"line_number":280,"context_line":"    message \u003d (\"Failed executing script on remote host %(host)r:\\n\""},{"line_number":281,"context_line":"               \"script:\\n%(script)s\\n\""},{"line_number":282,"context_line":"               \"stderr:\\n%(stderr)s\\n\""}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_b7275bb5","line":279,"in_reply_to":"3f79a3b5_b35f764b","updated":"2018-10-29 08:43:23.000000000","message":"Done","commit_id":"b1fbb3348ff086907a59a738b806824dae5e514a"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"ab72ed9d6f0aebf4b22a90a91621859baf567294","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            # Combine STOUT and STDERR to have to handle with only one stream"},{"line_number":214,"context_line":"            channel.set_combine_stderr(combine_stderr)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            lang \u003d os.environ.get(\u0027LANG\u0027) or self.default_ssh_lang"},{"line_number":217,"context_line":"            if lang:"},{"line_number":218,"context_line":"                encoding \u003d lang.split(\u0027.\u0027)[-1]"},{"line_number":219,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_02692824","line":216,"updated":"2018-10-29 16:40:53.000000000","message":"I think it would be more pythonic to import locale at the top and use functions like these [0]:\n    \n    \u003e\u003e\u003e import locale\n    \u003e\u003e\u003e locale.getdefaultlocale()\n    (\u0027en_US\u0027, \u0027UTF-8\u0027)\n    \u003e\u003e\u003e locale.getlocale()\n    (None, None)\n\nCheck and see what those localizations are set for you, but at a minimum I think getlocale should be used rather than parsing $LANG.\n\n[0] https://docs.python.org/2/library/locale.html#locale.getdefaultlocale","commit_id":"1e53108c2bf7d6c1858234d36968b3adf082a0e8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7f6582f1ecedc2a563a3fc953921990e1feccb76","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            # Combine STOUT and STDERR to have to handle with only one stream"},{"line_number":214,"context_line":"            channel.set_combine_stderr(combine_stderr)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            lang \u003d os.environ.get(\u0027LANG\u0027) or self.default_ssh_lang"},{"line_number":217,"context_line":"            if lang:"},{"line_number":218,"context_line":"                encoding \u003d lang.split(\u0027.\u0027)[-1]"},{"line_number":219,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_f735bad4","line":216,"in_reply_to":"3f79a3b5_02692824","updated":"2018-10-30 12:00:11.000000000","message":"That is good idea Nate. +1","commit_id":"1e53108c2bf7d6c1858234d36968b3adf082a0e8"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"6d3156da01f7e934c3a345ad5358904c9f64092e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            # Combine STOUT and STDERR to have to handle with only one stream"},{"line_number":214,"context_line":"            channel.set_combine_stderr(combine_stderr)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"            lang \u003d os.environ.get(\u0027LANG\u0027) or self.default_ssh_lang"},{"line_number":217,"context_line":"            if lang:"},{"line_number":218,"context_line":"                encoding \u003d lang.split(\u0027.\u0027)[-1]"},{"line_number":219,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_83f8b37e","line":216,"in_reply_to":"3f79a3b5_f735bad4","updated":"2018-10-31 11:52:29.000000000","message":"Cool!","commit_id":"1e53108c2bf7d6c1858234d36968b3adf082a0e8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fa77994b57b93eb943fb12b5a9b0a7981a76d25d","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        default it executes Bash with -eux options enabled. This means that"},{"line_number":199,"context_line":"        any command returning non-zero exist status or any any undefined"},{"line_number":200,"context_line":"        variable would interrupt script execution with an error and every"},{"line_number":201,"context_line":"        command executed by the script is going to be traced to STDERR."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param params: script parameter values to be assigned at the beginning"},{"line_number":204,"context_line":"        of the script"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_7fe28638","line":201,"updated":"2018-11-02 21:56:33.000000000","message":"nit: missing \u0027timeout\u0027 param that was added\n\nsorry, i tend to notice these things","commit_id":"7ccd1f3dc86f6d3d424f828942bd9912c045d5f6"}]}
