)]}'
{"keystone/tests/test_token_provider.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"28a70ca47db5497c97e052f93f438cc2b3cf1122","unresolved":false,"context_lines":[{"line_number":767,"context_line":"                         token.provider.Manager.get_token_provider())"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def test_provider_override_token_format(self):"},{"line_number":770,"context_line":"        # (Dave Chen) I\u0027d like to prevent unexpected token provider rather"},{"line_number":771,"context_line":"        # than thrown exception when trying to initialize non-existed"},{"line_number":772,"context_line":"        # instance during backends loading. The exception thrown in"},{"line_number":773,"context_line":"        # that way has bad readability for average user."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_5384fab0","line":770,"updated":"2014-12-29 01:56:02.000000000","message":"NOTE or TODO?","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6bbb385135282d5e3d943af3ca6572bdc09c3a3f","unresolved":false,"context_lines":[{"line_number":767,"context_line":"                         token.provider.Manager.get_token_provider())"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def test_provider_override_token_format(self):"},{"line_number":770,"context_line":"        # (Dave Chen) I\u0027d like to prevent unexpected token provider rather"},{"line_number":771,"context_line":"        # than thrown exception when trying to initialize non-existed"},{"line_number":772,"context_line":"        # instance during backends loading. The exception thrown in"},{"line_number":773,"context_line":"        # that way has bad readability for average user."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ff8047f9","line":770,"in_reply_to":"3a961159_5384fab0","updated":"2014-12-29 09:49:56.000000000","message":"Done","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"38187c58163dbee8b5c9c34f9f30134a8cb9a822","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":799,"context_line":"                                   provider\u003d\u0027PKI\u0027)"},{"line_number":800,"context_line":"        self.assertRaises(exception.UnexpectedError,"},{"line_number":801,"context_line":"                          token.provider.Manager.get_token_provider)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"    def test_provider_token_expiration_validation(self):"},{"line_number":804,"context_line":"        self.assertRaises(exception.TokenNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_4818d21e","line":801,"updated":"2014-12-27 01:57:04.000000000","message":"I think we\u0027d better add a new test.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6bbb385135282d5e3d943af3ca6572bdc09c3a3f","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":799,"context_line":"                                   provider\u003d\u0027PKI\u0027)"},{"line_number":800,"context_line":"        self.assertRaises(exception.UnexpectedError,"},{"line_number":801,"context_line":"                          token.provider.Manager.get_token_provider)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"    def test_provider_token_expiration_validation(self):"},{"line_number":804,"context_line":"        self.assertRaises(exception.TokenNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_3f7acf25","line":801,"in_reply_to":"3a961159_13a35250","updated":"2014-12-29 09:49:56.000000000","message":"Done","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"288b91ba13034b22e68adc49edebf2c06b07a776","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":799,"context_line":"                                   provider\u003d\u0027PKI\u0027)"},{"line_number":800,"context_line":"        self.assertRaises(exception.UnexpectedError,"},{"line_number":801,"context_line":"                          token.provider.Manager.get_token_provider)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"    def test_provider_token_expiration_validation(self):"},{"line_number":804,"context_line":"        self.assertRaises(exception.TokenNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_fb6f8691","line":801,"in_reply_to":"3a961159_4818d21e","updated":"2014-12-27 06:35:29.000000000","message":"wanghong, I am not quite understand why a new testcase is needed? the function here is supposed to test the token format and cover my changes well, so why not use it directly?","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"28a70ca47db5497c97e052f93f438cc2b3cf1122","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":799,"context_line":"                                   provider\u003d\u0027PKI\u0027)"},{"line_number":800,"context_line":"        self.assertRaises(exception.UnexpectedError,"},{"line_number":801,"context_line":"                          token.provider.Manager.get_token_provider)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"    def test_provider_token_expiration_validation(self):"},{"line_number":804,"context_line":"        self.assertRaises(exception.TokenNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_13a35250","line":801,"in_reply_to":"3a961159_fb6f8691","updated":"2014-12-29 01:56:02.000000000","message":"I just think that this is test provider should override token_format but you are resolving the bug that we do not check token_format.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"}],"keystone/token/provider.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"38187c58163dbee8b5c9c34f9f30134a8cb9a822","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            except KeyError:"},{"line_number":141,"context_line":"                raise exception.UnexpectedError("},{"line_number":142,"context_line":"                    _(\u0027Unrecognized keystone.conf [signing] token_format: \u0027"},{"line_number":143,"context_line":"                      \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027))"},{"line_number":144,"context_line":"            return mapped"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if CONF.token.provider is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_e8297e38","line":143,"updated":"2014-12-27 01:57:04.000000000","message":"I think we should not hard code UUID,PKI,PKIZ, instead, we should get from _FORMAT_TO_PROVIDER.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6bbb385135282d5e3d943af3ca6572bdc09c3a3f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            except KeyError:"},{"line_number":141,"context_line":"                raise exception.UnexpectedError("},{"line_number":142,"context_line":"                    _(\u0027Unrecognized keystone.conf [signing] token_format: \u0027"},{"line_number":143,"context_line":"                      \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027))"},{"line_number":144,"context_line":"            return mapped"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if CONF.token.provider is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_9f9ae36c","line":143,"in_reply_to":"3a961159_336bee20","updated":"2014-12-29 09:49:56.000000000","message":"Done","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"28a70ca47db5497c97e052f93f438cc2b3cf1122","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            except KeyError:"},{"line_number":141,"context_line":"                raise exception.UnexpectedError("},{"line_number":142,"context_line":"                    _(\u0027Unrecognized keystone.conf [signing] token_format: \u0027"},{"line_number":143,"context_line":"                      \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027))"},{"line_number":144,"context_line":"            return mapped"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if CONF.token.provider is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_336bee20","line":143,"in_reply_to":"3a961159_3bef4eeb","updated":"2014-12-29 01:56:02.000000000","message":"I do not think so. The reason you change line 143 is we do not get from _FORMAT_TO_PROVIDER. But, I think it\u0027s OK that separate to two patches.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"288b91ba13034b22e68adc49edebf2c06b07a776","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            except KeyError:"},{"line_number":141,"context_line":"                raise exception.UnexpectedError("},{"line_number":142,"context_line":"                    _(\u0027Unrecognized keystone.conf [signing] token_format: \u0027"},{"line_number":143,"context_line":"                      \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027))"},{"line_number":144,"context_line":"            return mapped"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if CONF.token.provider is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_3bef4eeb","line":143,"in_reply_to":"3a961159_e8297e38","updated":"2014-12-27 06:35:29.000000000","message":"I agree hard code should be avoided in a sense, it seems is not so meaningful in this case.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"38187c58163dbee8b5c9c34f9f30134a8cb9a822","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        raise exception.UnexpectedError("},{"line_number":154,"context_line":"            _(\u0027Unrecognized keystone.conf [token] provider: \u0027"},{"line_number":155,"context_line":"              \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027"},{"line_number":156,"context_line":"              \u0027 with full-class path\u0027))"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def __init__(self):"},{"line_number":159,"context_line":"        super(Manager, self).__init__(self.get_token_provider())"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_081eca0d","line":156,"updated":"2014-12-27 01:57:04.000000000","message":"This too.","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"6bbb385135282d5e3d943af3ca6572bdc09c3a3f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        raise exception.UnexpectedError("},{"line_number":154,"context_line":"            _(\u0027Unrecognized keystone.conf [token] provider: \u0027"},{"line_number":155,"context_line":"              \u0027expected either \\\u0027UUID\\\u0027, \\\u0027PKI\\\u0027 or \\\u0027PKIZ\\\u0027\u0027"},{"line_number":156,"context_line":"              \u0027 with full-class path\u0027))"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def __init__(self):"},{"line_number":159,"context_line":"        super(Manager, self).__init__(self.get_token_provider())"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_bf86bf14","line":156,"in_reply_to":"3a961159_081eca0d","updated":"2014-12-29 09:49:56.000000000","message":"Done","commit_id":"c606daf651747e5a241a0b7c1a2bdb9e1133cb9e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"4a49870db8d36dc0ff1df871e2db55e6d71781aa","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            return UUID_PROVIDER"},{"line_number":150,"context_line":"        # Make sure the provider is the supported provider with full-class"},{"line_number":151,"context_line":"        # path, \u0027PKI\u0027 for example is currently not supported."},{"line_number":152,"context_line":"        for (k, v) in _FORMAT_TO_PROVIDER.items():"},{"line_number":153,"context_line":"            if CONF.token.provider.lower() \u003d\u003d v.lower():"},{"line_number":154,"context_line":"                    return CONF.token.provider"},{"line_number":155,"context_line":"        raise exception.UnexpectedError("}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_b22bf493","line":152,"updated":"2015-03-19 09:00:23.000000000","message":"it can be just \"if CONF.token.provider in _FORMAT_TO_PROVIDER.items(): return \u003c...\u003e\".","commit_id":"b37f979855666b5c88f2747496b47b946dc0df83"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"4a49870db8d36dc0ff1df871e2db55e6d71781aa","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        # path, \u0027PKI\u0027 for example is currently not supported."},{"line_number":152,"context_line":"        for (k, v) in _FORMAT_TO_PROVIDER.items():"},{"line_number":153,"context_line":"            if CONF.token.provider.lower() \u003d\u003d v.lower():"},{"line_number":154,"context_line":"                    return CONF.token.provider"},{"line_number":155,"context_line":"        raise exception.UnexpectedError("},{"line_number":156,"context_line":"            _(\u0027Unrecognized keystone.conf [token] provider: \u0027"},{"line_number":157,"context_line":"              \u0027expected value is %s with full-class path\u0027) % valid_format)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a80dd14_526f18fc","line":154,"updated":"2015-03-19 09:00:23.000000000","message":"indentation","commit_id":"b37f979855666b5c88f2747496b47b946dc0df83"}]}
