)]}'
{"neutronclient/client.py":[{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"7c3bf13fdb094bf5b78c7ea9a00375222b62a918","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"},{"line_number":111,"context_line":"            # connection exception (it is excepted in the upper layers of code)"},{"line_number":112,"context_line":"            _logger.debug(\"throwing ConnectionFailed : %s\", e)"},{"line_number":113,"context_line":"            raise exceptions.ConnectionFailed(reason\u003dstr(e))"},{"line_number":114,"context_line":"        utils.http_log_resp(_logger, resp, body)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # log request-id for each api call"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_764258ae","line":113,"updated":"2020-01-07 21:22:15.000000000","message":"why not do \"reason\u003de.message\" and save a little time?  ConnectionFailed is defined here: https://opendev.org/openstack/python-neutronclient/src/branch/master/neutronclient/common/exceptions.py#L224","commit_id":"fcd7f079ddbc59fcd55c853be2305350b4baf48b"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"7f54c1dac8fdfe56e4e33ffa3135fe437056388b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"},{"line_number":111,"context_line":"            # connection exception (it is excepted in the upper layers of code)"},{"line_number":112,"context_line":"            _logger.debug(\"throwing ConnectionFailed : %s\", e)"},{"line_number":113,"context_line":"            raise exceptions.ConnectionFailed(reason\u003dstr(e))"},{"line_number":114,"context_line":"        utils.http_log_resp(_logger, resp, body)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # log request-id for each api call"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f1665228","line":113,"in_reply_to":"3fa7e38b_1659a48b","updated":"2020-01-07 22:54:48.000000000","message":"No objection.","commit_id":"fcd7f079ddbc59fcd55c853be2305350b4baf48b"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"455f9559ed7a499dd70a912fedd997d9356bc14a","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"},{"line_number":111,"context_line":"            # connection exception (it is excepted in the upper layers of code)"},{"line_number":112,"context_line":"            _logger.debug(\"throwing ConnectionFailed : %s\", e)"},{"line_number":113,"context_line":"            raise exceptions.ConnectionFailed(reason\u003dstr(e))"},{"line_number":114,"context_line":"        utils.http_log_resp(_logger, resp, body)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # log request-id for each api call"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1659a48b","line":113,"in_reply_to":"3fa7e38b_764258ae","updated":"2020-01-07 21:33:22.000000000","message":"If I change that here, I assume you don\u0027t have an objection to me changing line 112 to print e.message instead of stringifying it as well? \n\nI chose to str() here to maintain the same behavior as the logline.","commit_id":"fcd7f079ddbc59fcd55c853be2305350b4baf48b"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"77543cbe28a9c77c70e2216009fa2e1775ec4cbd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # Wrap the low-level connection error (socket timeout, redirect"},{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"},{"line_number":111,"context_line":"            # connection exception (it is excepted in the upper layers of code)"},{"line_number":112,"context_line":"            _logger.debug(\"throwing ConnectionFailed : %s\", e.message)"},{"line_number":113,"context_line":"            raise exceptions.ConnectionFailed(reason\u003de.message)"},{"line_number":114,"context_line":"        utils.http_log_resp(_logger, resp, body)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8e67aaea","line":112,"updated":"2020-01-08 21:36:40.000000000","message":"is there always a \u0027message\u0027 attribute in any Exception?","commit_id":"ee16723b04d211cf252a3ad153f612298887d837"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c93eed2173883fa578c1aa32da67f3b789d161f3","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # Wrap the low-level connection error (socket timeout, redirect"},{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"},{"line_number":111,"context_line":"            # connection exception (it is excepted in the upper layers of code)"},{"line_number":112,"context_line":"            _logger.debug(\"throwing ConnectionFailed : %s\", e.message)"},{"line_number":113,"context_line":"            raise exceptions.ConnectionFailed(reason\u003de.message)"},{"line_number":114,"context_line":"        utils.http_log_resp(_logger, resp, body)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8ea00a93","line":112,"in_reply_to":"3fa7e38b_8e67aaea","updated":"2020-01-08 22:07:43.000000000","message":"Nope, you\u0027re dead on here -- I think the original reviewer was thinking about ConnectionFailed, which is guaranteed to have a message. I\u0027m going to revert to the previous version of this PR.","commit_id":"ee16723b04d211cf252a3ad153f612298887d837"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"54b7d474cc9809ece7da8fbf1ddc6f9df502d29f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            resp, body \u003d self.request(*args, **kargs)"},{"line_number":106,"context_line":"        except requests.exceptions.SSLError as e:"},{"line_number":107,"context_line":"            raise exceptions.SslCertificateValidationError(reason\u003de)"},{"line_number":108,"context_line":"        except Exception as e:"},{"line_number":109,"context_line":"            # Wrap the low-level connection error (socket timeout, redirect"},{"line_number":110,"context_line":"            # limit, decompression error, etc) into our custom high-level"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_87e8ab7b","line":107,"range":{"start_line":107,"start_character":59,"end_line":107,"end_character":67},"updated":"2020-01-14 14:02:22.000000000","message":"I think this will fail with the same reason. Could you fix it too?","commit_id":"1f8057dfe29b450d475e83eb9db62abf67255621"}]}
