)]}'
{"keystoneclient/middleware/auth_token.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"de3008361ca4ba6ee414c171a1a2ee0b541b9aef","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        if not self.auth_version:"},{"line_number":1365,"context_line":"            self.auth_version \u003d self._choose_api_version()"},{"line_number":1366,"context_line":""},{"line_number":1367,"context_line":"        if self.auth_version \u003d\u003d \u0027v3.0\u0027:"},{"line_number":1368,"context_line":"            if cert_type \u003d\u003d \u0027signing\u0027:"},{"line_number":1369,"context_line":"                cert_type \u003d \u0027certificates\u0027"},{"line_number":1370,"context_line":"            path \u003d \u0027/v3/OS-SIMPLE-CERT/\u0027 + cert_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B9r8%3D","line":1367,"updated":"2014-03-21 10:55:45.000000000","message":"It looks like \u0027v3.0\u0027 is hardcoded. Consider about usage of constants,\nfor example:\n\n# this is on the top of module\n\nAUTH_VERSION_2 \u003d \u0027v2.0\u0027\n\nAUTH_VERSION_3 \u003d \u0027v3.0\u0027\n\nLIST_OF_VERSIONS_TO_ATTEMPT \u003d [AUTH_VERSION_2, AUTH_VERSION_3]\n\n# this is inside AuthProtocol._fetch_cert_file()\n        if self.auth_version \u003d\u003d AUTH_VERSION_3:\n            ...","commit_id":"645e5bacf2c4c8bd9ee37f84af9a9c6aa3cf284a"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"fd591be7decf2a983b15c4b8f36ca8959dc9312f","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        if not self.auth_version:"},{"line_number":1365,"context_line":"            self.auth_version \u003d self._choose_api_version()"},{"line_number":1366,"context_line":""},{"line_number":1367,"context_line":"        if self.auth_version \u003d\u003d \u0027v3.0\u0027:"},{"line_number":1368,"context_line":"            if cert_type \u003d\u003d \u0027signing\u0027:"},{"line_number":1369,"context_line":"                cert_type \u003d \u0027certificates\u0027"},{"line_number":1370,"context_line":"            path \u003d \u0027/v3/OS-SIMPLE-CERT/\u0027 + cert_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BLQg%3D","line":1367,"in_reply_to":"AAAAWH%2F%2B9r8%3D","updated":"2014-03-28 16:19:08.000000000","message":"\"v3.0\" (although entirely inaccurate since we\u0027re on v3.2+ now), is the only auth version string we recognize, and i\u0027d like to keep it that way.. it\u0027d be nice to use a constant, but do either \u003d\u003d \u0027v3.0\u0027 or !\u003d \u0027v3.0\u0027 (which is basically the else here), rather than attempting to match any other string","commit_id":"645e5bacf2c4c8bd9ee37f84af9a9c6aa3cf284a"}],"keystoneclient/tests/test_auth_token_middleware.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"de3008361ca4ba6ee414c171a1a2ee0b541b9aef","unresolved":false,"context_lines":[{"line_number":1067,"context_line":""},{"line_number":1068,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":1069,"context_line":"        super(V2CertDownloadMiddlewareTest, self).__init__(*args, **kwargs)"},{"line_number":1070,"context_line":"        self.auth_version \u003d \u0027v2.0\u0027"},{"line_number":1071,"context_line":"        self.fake_app \u003d None"},{"line_number":1072,"context_line":"        self.ca_path \u003d \u0027/v2.0/certificates/ca\u0027"},{"line_number":1073,"context_line":"        self.signing_path \u003d \u0027/v2.0/certificates/signing\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B9pg%3D","line":1070,"updated":"2014-03-21 10:55:45.000000000","message":"Consider about defining \u0027v2.0\u0027 in the auth_token module (see my comment in auth_token.py)\nExample:\n    self.auth_version \u003d auth_token.AUTH_VERSION_2","commit_id":"645e5bacf2c4c8bd9ee37f84af9a9c6aa3cf284a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"88cca1aac8280a8eef306ec67c87fb4270796088","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"                         httpretty.last_request().path)"},{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":""},{"line_number":1180,"context_line":"class V3CertDownloadMiddlewareTest(V2CertDownloadMiddlewareTest):"},{"line_number":1181,"context_line":""},{"line_number":1182,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":1183,"context_line":"        super(V3CertDownloadMiddlewareTest, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BFt4%3D","line":1180,"updated":"2014-03-30 14:56:00.000000000","message":"V3 shouldn\u0027t be derived from V2. Create a new base class that they can both derive from.","commit_id":"645e5bacf2c4c8bd9ee37f84af9a9c6aa3cf284a"}]}
