)]}'
{"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"9a0890b3c4b0eae22397479b719d3aebc99e57c0","unresolved":false,"context_lines":[{"line_number":762,"context_line":""},{"line_number":763,"context_line":"                self._token_cache.set(token_hashes[0], data)"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        except (ksa_exceptions.ConnectionError,"},{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_7a4d1198","line":765,"range":{"start_line":765,"start_character":16,"end_line":765,"end_character":47},"updated":"2018-09-10 09:41:28.000000000","message":"how about add its other sub-class (i.e. ConnectTimeout, SSLError) here, because I see an error \"UnknownConnectionError\" in it which I don\u0027t think it should be included.","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"e0edb27cd8d4f5ad1539b87fd5dacc9e6918dd18","unresolved":false,"context_lines":[{"line_number":762,"context_line":""},{"line_number":763,"context_line":"                self._token_cache.set(token_hashes[0], data)"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        except (ksa_exceptions.ConnectionError,"},{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c0d3045f","line":765,"range":{"start_line":765,"start_character":16,"end_line":765,"end_character":47},"in_reply_to":"3f79a3b5_0e385f39","updated":"2018-09-11 02:43:16.000000000","message":"Because There may be some other reasons lead \"UnknownConnectionError\"(such as client side mistake?), I think we can\u0027t say \"UnknownConnectionError\" always means \"HTTPServiceUnavailable\"","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"657f0e9a3d81d0569c26ea965e569590da33c6c1","unresolved":false,"context_lines":[{"line_number":762,"context_line":""},{"line_number":763,"context_line":"                self._token_cache.set(token_hashes[0], data)"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        except (ksa_exceptions.ConnectionError,"},{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_0e385f39","line":765,"range":{"start_line":765,"start_character":16,"end_line":765,"end_character":47},"in_reply_to":"3f79a3b5_7a4d1198","updated":"2018-09-10 14:08:14.000000000","message":"Why shouldn\u0027t it be included? Maybe more importantly, where else would it get caught?\n\n(FWIW, I was really tempted to catch all of ksa_exceptions.ClientException but decided to be a bit more surgical.)","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"9a0890b3c4b0eae22397479b719d3aebc99e57c0","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        except (ksa_exceptions.ConnectionError,"},{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_7af1916a","line":768,"range":{"start_line":768,"start_character":15,"end_line":768,"end_character":46},"updated":"2018-09-10 09:41:28.000000000","message":"this error contains 500-505, I think they may be useful for caller, is it too rough to change all of them to 503?","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"9a0890b3c4b0eae22397479b719d3aebc99e57c0","unresolved":false,"context_lines":[{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_fa1da177","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":47},"updated":"2018-09-10 09:41:28.000000000","message":"why this? InvalidResponse is usually for response format error. Not sure 503 is better.","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"e0edb27cd8d4f5ad1539b87fd5dacc9e6918dd18","unresolved":false,"context_lines":[{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_60c8f0a7","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":47},"in_reply_to":"3f79a3b5_6e5eb37a","updated":"2018-09-11 02:43:16.000000000","message":"I\u0027m OK with 600862 now.","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"657f0e9a3d81d0569c26ea965e569590da33c6c1","unresolved":false,"context_lines":[{"line_number":766,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":767,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_6e5eb37a","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":47},"in_reply_to":"3f79a3b5_fa1da177","updated":"2018-09-10 14:08:14.000000000","message":"\u003e Not sure 503 is better.\n\nBut a 500 is? Those are the only two response codes that make much sense to me -- and 503 at least has the benefit of saying \"yeah, I can\u0027t really help you, but *it\u0027s not my fault*.\"\n\nHonestly, I\u0027m not looking for a 503 anyway -- see https://review.openstack.org/#/c/600862/ ;-)","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"9a0890b3c4b0eae22397479b719d3aebc99e57c0","unresolved":false,"context_lines":[{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"},{"line_number":773,"context_line":"            raise webob.exc.HTTPServiceUnavailable("},{"line_number":774,"context_line":"                \u0027The Keystone service is temporarily unavailable.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_7d00ab01","line":771,"updated":"2018-09-10 09:41:28.000000000","message":"There is a concern that if the services handled the errors you added here already, it\u0027ll be backward incompatible since they will receive 503 instead of exception itself.\n\nLet\u0027s dig into it and make sure it\u0027ll impact less services, and of cause a release note should be added.\n\nThanks.","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"e0edb27cd8d4f5ad1539b87fd5dacc9e6918dd18","unresolved":false,"context_lines":[{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"},{"line_number":773,"context_line":"            raise webob.exc.HTTPServiceUnavailable("},{"line_number":774,"context_line":"                \u0027The Keystone service is temporarily unavailable.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_409cd45a","line":771,"in_reply_to":"3f79a3b5_4e9ad762","updated":"2018-09-11 02:43:16.000000000","message":"yeah, I know it\u0027s a small probability event, just want to double check it. :)","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"657f0e9a3d81d0569c26ea965e569590da33c6c1","unresolved":false,"context_lines":[{"line_number":768,"context_line":"                ksa_exceptions.HttpServerError,"},{"line_number":769,"context_line":"                ksa_exceptions.InvalidResponse,"},{"line_number":770,"context_line":"                ksm_exceptions.RevocationListError,"},{"line_number":771,"context_line":"                ksm_exceptions.ServiceError) as e:"},{"line_number":772,"context_line":"            self.log.critical(\u0027Unable to validate token: %s\u0027, e)"},{"line_number":773,"context_line":"            raise webob.exc.HTTPServiceUnavailable("},{"line_number":774,"context_line":"                \u0027The Keystone service is temporarily unavailable.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_4e9ad762","line":771,"in_reply_to":"3f79a3b5_7d00ab01","updated":"2018-09-10 14:08:14.000000000","message":"\u003e if the services handled the errors you added here already\n\nIs that... normal? I guess I\u0027d always read PEP-3333\u0027s\n\n\u003e In general, applications should try to trap their own, internal errors, and display a helpful message in the browser.\n\nas meaning that middlewares (which play the role of both server and application) should rely on start_response/iterables rather than exception propagation to communicate with components further left in the pipeline/up the stack.","commit_id":"4ed33043d3fa9da2cec17f176f1239fbad6c9538"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"b1c4e3e3e0899fb600eb15729bf6ec536fb75e90","unresolved":false,"context_lines":[{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        except (ksa_exceptions.ConnectFailure,"},{"line_number":766,"context_line":"                ksa_exceptions.ConnectTimeout,"},{"line_number":767,"context_line":"                ksa_exceptions.SSLError,"},{"line_number":768,"context_line":"                ksa_exceptions.DiscoveryFailure,"},{"line_number":769,"context_line":"                ksa_exceptions.RequestTimeout,"},{"line_number":770,"context_line":"                ksa_exceptions.HttpServerError,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0089fc6d","line":767,"updated":"2018-10-05 12:18:55.000000000","message":"An SSL error is often the result of a misconfiguration of the client (here, the openstack service), so I wouldn\u0027t catch it here and imply that this is a problem with the keystone service.","commit_id":"90a33021bf1f012c8f5412b78c3de1d3c407bc21"}]}
