)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b9a1ae4d7d4db9ecb8fda9ef3451cda504c5e94c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to the docstring and the name of test case I think the"},{"line_number":10,"context_line":"code logic is wrong and should be fixed."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1406172"},{"line_number":13,"context_line":"Change-Id: I3cd1e2e5a51c4a87edf00647bc1b95a0347e3316"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_aedad714","line":11,"updated":"2015-01-02 21:09:50.000000000","message":"add: \n\n    partially-implements blueprint removed-as-of-kilo","commit_id":"1cde62a15a681b227245d8f9722cd2181098e98c"}],"etc/keystone.conf.sample":[{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"123c623b61e34ed5d28d4f670732cbb8783a17d3","unresolved":false,"context_lines":[{"line_number":1452,"context_line":"# Controls the token construction, validation, and revocation operations. Core"},{"line_number":1453,"context_line":"# providers are \"keystone.token.providers.[pkiz|pki|uuid].Provider\". The"},{"line_number":1454,"context_line":"# default provider is uuid. (string value)"},{"line_number":1455,"context_line":"#provider\u003dkeystone.token.providers.uuid.Provider"},{"line_number":1456,"context_line":""},{"line_number":1457,"context_line":"# Token persistence backend driver. (string value)"},{"line_number":1458,"context_line":"#driver \u003d keystone.token.persistence.backends.sql.Token"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"3a961159_0f67ac52","line":1455,"updated":"2015-01-12 03:24:26.000000000","message":"To be consistent with existing documentation, add spaces around the equals operator.","commit_id":"3a9f510880b8c6a29124ce7a5f931641e39ed77d"}],"keystone/common/config.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ee8c150a2353bf4a555f6176f611af662538be10","unresolved":false,"context_lines":[{"line_number":406,"context_line":"    ],"},{"line_number":407,"context_line":"    \u0027signing\u0027: ["},{"line_number":408,"context_line":"        cfg.StrOpt(\u0027token_format\u0027,"},{"line_number":409,"context_line":"                   help\u003d\u0027Deprecated in favor of provider in the \u0027"},{"line_number":410,"context_line":"                        \u0027[token] section.\u0027),"},{"line_number":411,"context_line":"        cfg.StrOpt(\u0027certfile\u0027,"},{"line_number":412,"context_line":"                   default\u003d_CERTFILE,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_26bf46ac","side":"PARENT","line":409,"updated":"2015-02-13 16:56:37.000000000","message":"This config option didn\u0027t have a default value of UUID before.","commit_id":"500fb35e69ed3b66879e1a316f8a628a07a62b10"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ee8c150a2353bf4a555f6176f611af662538be10","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                   help\u003d\u0027Amount of time a token should remain valid \u0027"},{"line_number":249,"context_line":"                        \u0027(in seconds).\u0027),"},{"line_number":250,"context_line":"        cfg.StrOpt(\u0027provider\u0027,"},{"line_number":251,"context_line":"                   default\u003d\u0027keystone.token.providers.uuid.Provider\u0027,"},{"line_number":252,"context_line":"                   help\u003d\u0027Controls the token construction, validation, and \u0027"},{"line_number":253,"context_line":"                        \u0027revocation operations. Core providers are \u0027"},{"line_number":254,"context_line":"                        \u0027\"keystone.token.providers.[pkiz|pki|uuid].\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_46299af1","line":251,"updated":"2015-02-13 16:56:37.000000000","message":"I think this should still be None since the commit message says this refactors out a deprecated config option. It doesn\u0027t say that we are changing default values.","commit_id":"0ef05d032f312cd97dcce8caa0a80b0b13ec38ee"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"6bc7cc1dec53c834ac1dfba1e858fe9ea919fa35","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                   help\u003d\u0027Amount of time a token should remain valid \u0027"},{"line_number":249,"context_line":"                        \u0027(in seconds).\u0027),"},{"line_number":250,"context_line":"        cfg.StrOpt(\u0027provider\u0027,"},{"line_number":251,"context_line":"                   default\u003d\u0027keystone.token.providers.uuid.Provider\u0027,"},{"line_number":252,"context_line":"                   help\u003d\u0027Controls the token construction, validation, and \u0027"},{"line_number":253,"context_line":"                        \u0027revocation operations. Core providers are \u0027"},{"line_number":254,"context_line":"                        \u0027\"keystone.token.providers.[pkiz|pki|uuid].\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_8f2f1e3e","line":251,"in_reply_to":"da86d52c_46299af1","updated":"2015-02-13 20:12:01.000000000","message":"++","commit_id":"0ef05d032f312cd97dcce8caa0a80b0b13ec38ee"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"6f937ec3e088b25172bd7892a9c2ba4aa9c22c14","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                   help\u003d\u0027Amount of time a token should remain valid \u0027"},{"line_number":249,"context_line":"                        \u0027(in seconds).\u0027),"},{"line_number":250,"context_line":"        cfg.StrOpt(\u0027provider\u0027,"},{"line_number":251,"context_line":"                   default\u003d\u0027keystone.token.providers.uuid.Provider\u0027,"},{"line_number":252,"context_line":"                   help\u003d\u0027Controls the token construction, validation, and \u0027"},{"line_number":253,"context_line":"                        \u0027revocation operations. Core providers are \u0027"},{"line_number":254,"context_line":"                        \u0027\"keystone.token.providers.[pkiz|pki|uuid].\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_d31e135f","line":251,"in_reply_to":"da86d52c_8f2f1e3e","updated":"2015-02-15 01:01:59.000000000","message":"I don\u0027t think I am changing default values. From the test test_default_token_format in test_token_provider.py and the original code of token/provider.py we can know that UUID provider is set as default.","commit_id":"0ef05d032f312cd97dcce8caa0a80b0b13ec38ee"}],"keystone/tests/test_auth.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"54b3f3396b9eea58c605168e18f0930c00201b8b","unresolved":false,"context_lines":[{"line_number":1200,"context_line":""},{"line_number":1201,"context_line":"    def test_maintain_uuid_token_expiration(self):"},{"line_number":1202,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":1203,"context_line":"                                   provider\u003dprovider.UUID_PROVIDER)"},{"line_number":1204,"context_line":"        self._maintain_token_expiration()"},{"line_number":1205,"context_line":""},{"line_number":1206,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c6048180","line":1203,"updated":"2015-02-02 17:15:24.000000000","message":"Since the test is the only thing using the constant, why not move it here?","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"}],"keystone/tests/test_token_provider.py":[{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"de4429149577fdde3ec49a7f7b96973abde95950","unresolved":false,"context_lines":[{"line_number":733,"context_line":"                          self.token_provider_api.get_token_version,"},{"line_number":734,"context_line":"                          \u0027bogus\u0027)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def test_default_token_format(self):"},{"line_number":737,"context_line":"        self.assertEqual(token.provider.UUID_PROVIDER,"},{"line_number":738,"context_line":"                         token.provider.Manager.get_token_provider())"},{"line_number":739,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_e528b887","side":"PARENT","line":736,"updated":"2015-01-12 12:02:46.000000000","message":"Why not just rename this method to test_default_token_provider? And then we keep the default token provider being tested.","commit_id":"5319d02ca5be631d7d54864c492163da70347118"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"de4429149577fdde3ec49a7f7b96973abde95950","unresolved":false,"context_lines":[{"line_number":789,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":790,"context_line":"                                   provider\u003d\u0027my.package.MyProvider\u0027)"},{"line_number":791,"context_line":"        self.assertRaises(exception.UnexpectedError,"},{"line_number":792,"context_line":"                          token.provider.Manager.get_token_provider)"},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    def test_provider_token_expiration_validation(self):"},{"line_number":795,"context_line":"        self.assertRaises(exception.TokenNotFound,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_e506f884","side":"PARENT","line":792,"updated":"2015-01-12 12:02:46.000000000","message":"L789-792 should still be a valid test, since they are asserting and exception is raised when an invalid token provider is set.\nIt could be:\n\ndef test_unsupported_token_provider(self):\n    self.config_fixture.config(group\u003d\u0027token\u0027,\t\t\n                               provider\u003d\u0027my.package.MyProvider\u0027)\t\t\n    self.assertRaises(exception.UnexpectedError,\t\t\n                      token.provider.Manager.get_token_provider)","commit_id":"5319d02ca5be631d7d54864c492163da70347118"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"dd6667578106a3f20b1507e82fb96b5f8527cef9","unresolved":false,"context_lines":[{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def test_default_providers(self):"},{"line_number":737,"context_line":"        # test we have default config"},{"line_number":738,"context_line":"        token.provider.Manager()"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":741,"context_line":"                                   provider\u003dtoken.provider.UUID_PROVIDER)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_390641ce","line":738,"updated":"2015-01-13 11:38:04.000000000","message":"Well, I think it would be better to assert the default token provider is UUID_PROVIDER, instead of just asserting a default can be loaded.\nIf we change the default, this test is there to say: \"hey, what\u0027s up? do you really want to do this?\" :-)\n\nIt is just for the non complete removal of the method test_default_token_format that existed before this change. This change should not change how things are tested.\n\nIt should look like the code below, very similar to what we had before, just renaming the method.\n\n    def test_default_token_provider(self):\n        self.assertEqual(token.provider.UUID_PROVIDER,\n                         token.provider.Manager.get_token_provider())","commit_id":"20af43aa007e53fa34afa0831d270f7cee37cd4c"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"54b3f3396b9eea58c605168e18f0930c00201b8b","unresolved":false,"context_lines":[{"line_number":734,"context_line":"                          self.token_provider_api.get_token_version,"},{"line_number":735,"context_line":"                          \u0027bogus\u0027)"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"    def test_default_providers(self):"},{"line_number":738,"context_line":"        # test default config"},{"line_number":739,"context_line":"        self.assertIsInstance(token.provider.Manager().driver,"},{"line_number":740,"context_line":"                              uuid.Provider)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_e6bfc5ce","line":737,"updated":"2015-02-02 17:15:24.000000000","message":"It feels the the name here is off. This is actually testing setting the token driver in the config.","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"54b3f3396b9eea58c605168e18f0930c00201b8b","unresolved":false,"context_lines":[{"line_number":754,"context_line":"    def test_unsupported_token_provider(self):"},{"line_number":755,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":756,"context_line":"                                   provider\u003d\u0027my.package.MyProvider\u0027)"},{"line_number":757,"context_line":"        self.assertRaises(ImportError,"},{"line_number":758,"context_line":"                          token.provider.Manager)"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"    def test_provider_token_expiration_validation(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_46a3319e","line":757,"updated":"2015-02-02 17:15:24.000000000","message":"This is an interface change? What is the impact on the thing making the call here? I assume the user won\u0027t see anything different because this should not happen at runtime, but will the operator see anything different?","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"a761eda86c2053125ba4e9306ca17c62c6f77f31","unresolved":false,"context_lines":[{"line_number":754,"context_line":"    def test_unsupported_token_provider(self):"},{"line_number":755,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027,"},{"line_number":756,"context_line":"                                   provider\u003d\u0027my.package.MyProvider\u0027)"},{"line_number":757,"context_line":"        self.assertRaises(ImportError,"},{"line_number":758,"context_line":"                          token.provider.Manager)"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"    def test_provider_token_expiration_validation(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_d142fd3c","line":757,"in_reply_to":"da86d52c_46a3319e","updated":"2015-02-05 08:16:15.000000000","message":"I think this isn\u0027t an interface change, this exception would happen in start-up phase and I don\u0027t think operator would catch this exception...","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"}],"keystone/token/provider.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b9a1ae4d7d4db9ecb8fda9ef3451cda504c5e94c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        if CONF.token.provider is not None:"},{"line_number":134,"context_line":"            return CONF.token.provider"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        if CONF.signing.token_format:"},{"line_number":137,"context_line":"            LOG.warn(_LW(\u0027[signing] token_format is deprecated. \u0027"},{"line_number":138,"context_line":"                         \u0027Please change to setting the [token] provider \u0027"},{"line_number":139,"context_line":"                         \u0027configuration value instead\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_4eea53ad","line":136,"updated":"2015-01-02 21:09:50.000000000","message":"This should be removed now according to the doc string (line 125). \n\n    if CONF.token.provider is not None:\n         return CONF.token.provider\n    # we no longer need to check for CONF.signing.token_format\n    # since we are past Havana + 2\n    return UUID_PROVIDER","commit_id":"1cde62a15a681b227245d8f9722cd2181098e98c"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"54b3f3396b9eea58c605168e18f0930c00201b8b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"VERSIONS \u003d token_model.VERSIONS"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"# default token providers"},{"line_number":57,"context_line":"PKI_PROVIDER \u003d \u0027keystone.token.providers.pki.Provider\u0027"},{"line_number":58,"context_line":"PKIZ_PROVIDER \u003d \u0027keystone.token.providers.pkiz.Provider\u0027"},{"line_number":59,"context_line":"UUID_PROVIDER \u003d \u0027keystone.token.providers.uuid.Provider\u0027"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c63721af","line":57,"updated":"2015-02-02 17:15:24.000000000","message":"These PKI* constants are no longer used. Is there any reason to keep them around? I\u0027m also not completely sold on keeping the UUID constant.","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"54b3f3396b9eea58c605168e18f0930c00201b8b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    _persistence_manager \u003d None"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def __init__(self):"},{"line_number":113,"context_line":"        super(Manager, self).__init__(CONF.token.provider)"},{"line_number":114,"context_line":"        self._register_callback_listeners()"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _register_callback_listeners(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_866c499e","line":113,"updated":"2015-02-02 17:15:24.000000000","message":"Looks much better!","commit_id":"f99cf8da2e8114fd5eddbdc80c1c011406123d90"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0dd13956fcb45d8d9c1afc03a2077094ae5ccdd8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"# default token providers"},{"line_number":57,"context_line":"PKI_PROVIDER \u003d \u0027keystone.token.providers.pki.Provider\u0027"},{"line_number":58,"context_line":"PKIZ_PROVIDER \u003d \u0027keystone.token.providers.pkiz.Provider\u0027"},{"line_number":59,"context_line":"UUID_PROVIDER \u003d \u0027keystone.token.providers.uuid.Provider\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"_FORMAT_TO_PROVIDER \u003d {"},{"line_number":62,"context_line":"    \u0027PKI\u0027: PKI_PROVIDER,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_c4c0784c","side":"PARENT","line":59,"updated":"2015-02-19 00:55:46.000000000","message":"why are we removing this? It is actually nice to keep the constants, so we can re-use them in the test.","commit_id":"115d9660de21f5520e5c5f6a92364607b368281b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"f4e22deae092c2721668eda7bda5b2f7bfb1b0cd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"# default token providers"},{"line_number":57,"context_line":"PKI_PROVIDER \u003d \u0027keystone.token.providers.pki.Provider\u0027"},{"line_number":58,"context_line":"PKIZ_PROVIDER \u003d \u0027keystone.token.providers.pkiz.Provider\u0027"},{"line_number":59,"context_line":"UUID_PROVIDER \u003d \u0027keystone.token.providers.uuid.Provider\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"_FORMAT_TO_PROVIDER \u003d {"},{"line_number":62,"context_line":"    \u0027PKI\u0027: PKI_PROVIDER,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_8ffa0cbb","side":"PARENT","line":59,"in_reply_to":"da86d52c_4d0d84e7","updated":"2015-02-19 10:41:26.000000000","message":"++","commit_id":"115d9660de21f5520e5c5f6a92364607b368281b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"831d1e6fb03657e7ecf8eb7db4f57f5e0ae2356d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"# default token providers"},{"line_number":57,"context_line":"PKI_PROVIDER \u003d \u0027keystone.token.providers.pki.Provider\u0027"},{"line_number":58,"context_line":"PKIZ_PROVIDER \u003d \u0027keystone.token.providers.pkiz.Provider\u0027"},{"line_number":59,"context_line":"UUID_PROVIDER \u003d \u0027keystone.token.providers.uuid.Provider\u0027"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"_FORMAT_TO_PROVIDER \u003d {"},{"line_number":62,"context_line":"    \u0027PKI\u0027: PKI_PROVIDER,"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_4d0d84e7","side":"PARENT","line":59,"in_reply_to":"da86d52c_c4c0784c","updated":"2015-02-19 07:09:35.000000000","message":"keeping code in our code base for the purpose of a test doesn\u0027t make sense to me. if anything we should move these to a test. but i\u0027m also okay with this as is","commit_id":"115d9660de21f5520e5c5f6a92364607b368281b"}]}
