)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"76f31aac64d47e2bf27b5722d6bb21b23a1368fe","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The token_api.list_tokens method should really only be used internally"},{"line_number":10,"context_line":"to keystone.  This has been the case (as per the docstring) since the"},{"line_number":11,"context_line":"Havana development cycle.  This patchset formalizes the deprecation and"},{"line_number":12,"context_line":"make slates the public access to token_api.list_tokens to be removed"},{"line_number":13,"context_line":"once Icehouse ships."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F94HY%3D","line":12,"updated":"2013-12-04 23:29:48.000000000","message":"\"make slates\" ?","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"764dc4bd310e0c50d52af2f44306b3a9d22d9552","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The token_api.list_tokens method should really only be used internally"},{"line_number":10,"context_line":"to keystone.  This has been the case (as per the docstring) since the"},{"line_number":11,"context_line":"Havana development cycle.  This patchset formalizes the deprecation and"},{"line_number":12,"context_line":"make slates the public access to token_api.list_tokens to be removed"},{"line_number":13,"context_line":"once Icehouse ships."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F93tQ%3D","line":12,"in_reply_to":"AAAATn%2F94HY%3D","updated":"2013-12-05 01:05:17.000000000","message":"Will fix in next patchset.  good catch","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5c49c370d186786f113d5f82148672ef9a9f7c05","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Havana development cycle.  This patchset formalizes the deprecation and"},{"line_number":12,"context_line":"make slates the public access to token_api.list_tokens to be removed"},{"line_number":13,"context_line":"once Icehouse ships."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F94nA%3D","line":14,"updated":"2013-12-04 21:49:48.000000000","message":"we should have a bug or blueprint for this and also a DocImpact to advertise that we\u0027ve deprecated something.","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cb70f2c7e337420d980a19181c6e7bdeb853fd35","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Havana development cycle.  This patchset formalizes the deprecation and"},{"line_number":12,"context_line":"make slates the public access to token_api.list_tokens to be removed"},{"line_number":13,"context_line":"once Icehouse ships."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F93nM%3D","line":14,"in_reply_to":"AAAATn%2F93s8%3D","updated":"2013-12-05 01:59:16.000000000","message":"Is DocImpact warranted for internal_api deprecation?  Will add if it is. (trivial rebase in that case)","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"764dc4bd310e0c50d52af2f44306b3a9d22d9552","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Havana development cycle.  This patchset formalizes the deprecation and"},{"line_number":12,"context_line":"make slates the public access to token_api.list_tokens to be removed"},{"line_number":13,"context_line":"once Icehouse ships."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I30a066d3775e67fd4a84f07dc351fcfd62751045"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F93s8%3D","line":14,"in_reply_to":"AAAATn%2F94nA%3D","updated":"2013-12-05 01:05:17.000000000","message":"I\u0027ll open a generic \"deprecated in Icehouse\" (vs. the \"removed deprecated\" bp we can track all of this with.","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"}],"keystone/tests/test_auth.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"76f31aac64d47e2bf27b5722d6bb21b23a1368fe","unresolved":false,"context_lines":[{"line_number":788,"context_line":""},{"line_number":789,"context_line":"    def assert_token_count_for_trust(self, expected_value):"},{"line_number":790,"context_line":"        tokens \u003d self.trust_controller.token_api._list_tokens("},{"line_number":791,"context_line":"            self.trustor[\u0027id\u0027], trust_id\u003dself.new_trust[\u0027id\u0027])"},{"line_number":792,"context_line":"        token_count \u003d len(tokens)"},{"line_number":793,"context_line":"        self.assertEqual(token_count, expected_value)"},{"line_number":794,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F94HQ%3D","line":791,"updated":"2013-12-04 23:29:48.000000000","message":"this looks like it\u0027s fixing a different bug?","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"764dc4bd310e0c50d52af2f44306b3a9d22d9552","unresolved":false,"context_lines":[{"line_number":788,"context_line":""},{"line_number":789,"context_line":"    def assert_token_count_for_trust(self, expected_value):"},{"line_number":790,"context_line":"        tokens \u003d self.trust_controller.token_api._list_tokens("},{"line_number":791,"context_line":"            self.trustor[\u0027id\u0027], trust_id\u003dself.new_trust[\u0027id\u0027])"},{"line_number":792,"context_line":"        token_count \u003d len(tokens)"},{"line_number":793,"context_line":"        self.assertEqual(token_count, expected_value)"},{"line_number":794,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F93tU%3D","line":791,"in_reply_to":"AAAATn%2F94HQ%3D","updated":"2013-12-05 01:05:17.000000000","message":"Will Revert that, should not have been changed.","commit_id":"39b85356e3f5a08e56f6332e7e3c77e3bcfc279b"}],"keystone/tests/test_backend.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bc5c8d26bd19fd06c5a9de60c6fcce90debe99d8","unresolved":false,"context_lines":[{"line_number":2863,"context_line":"        self.token_api.get_token(token_id2)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"    def test_token_list(self):"},{"line_number":2866,"context_line":"        tokens \u003d self.token_api._list_tokens(\u0027testuserid\u0027)"},{"line_number":2867,"context_line":"        self.assertEqual(len(tokens), 0)"},{"line_number":2868,"context_line":"        token_id1 \u003d self.create_token_sample_data()"},{"line_number":2869,"context_line":"        tokens \u003d self.token_api._list_tokens(\u0027testuserid\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9nC8%3D","line":2866,"updated":"2013-12-09 17:30:47.000000000","message":"rather than do a copy-paste, suggest have a common function and call it. Pass in the function to call.\n\n def _test_token_list(self, token_list_fn):\n    tokens \u003d token_list_fn(\u0027testuserid\u0027)\n    ...\n\n def test_token_list(self):\n   self._test_token_list(self.token_api._list_tokens)\n\n def test_token_list_deprecated_public_interface(self):\n   self._test_token_list(self.token_api.list_tokens)","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"27eeb66a1073bf2755067faaa362bd25ad6d9ac6","unresolved":false,"context_lines":[{"line_number":2904,"context_line":"        self.assertNotIn(token_id3, tokens)"},{"line_number":2905,"context_line":"        self.assertIn(token_id4, tokens)"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":"    def test_token_list_deprecated_public_interface(self):"},{"line_number":2908,"context_line":"        # TODO(morganfainberg): Remove once token_api.list_tokens is removed"},{"line_number":2909,"context_line":"        # (post Icehouse release)"},{"line_number":2910,"context_line":"        tokens \u003d self.token_api.list_tokens(\u0027testuserid\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9zBE%3D","line":2907,"updated":"2013-12-05 19:51:44.000000000","message":"Nice!  I was curious how you were going to write a test case to handle the deprecation.  I see you did provided the \"gold standard\" as usual.","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cd17168003432eb6c369f2e99e736f5dbb52a073","unresolved":false,"context_lines":[{"line_number":2904,"context_line":"        self.assertNotIn(token_id3, tokens)"},{"line_number":2905,"context_line":"        self.assertIn(token_id4, tokens)"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":"    def test_token_list_deprecated_public_interface(self):"},{"line_number":2908,"context_line":"        # TODO(morganfainberg): Remove once token_api.list_tokens is removed"},{"line_number":2909,"context_line":"        # (post Icehouse release)"},{"line_number":2910,"context_line":"        tokens \u003d self.token_api.list_tokens(\u0027testuserid\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9y6E%3D","line":2907,"in_reply_to":"AAAATn%2F9zBE%3D","updated":"2013-12-05 20:22:20.000000000","message":"Thankfully this one was easy to test!","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"}],"keystone/tests/test_v3_oauth1.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"292797b67f2c9b85c037444288ea8c0d82e7a4bc","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":440,"context_line":"            expected_status\u003d403)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def test_list_keystone_tokens_by_consumer(self):"},{"line_number":443,"context_line":"        self.test_oauth_flow()"},{"line_number":444,"context_line":"        tokens \u003d self.token_api._list_tokens(self.user_id,"},{"line_number":445,"context_line":"                                             consumer_id\u003dself.consumer.key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2BX0%3D","line":442,"updated":"2013-12-03 21:18:33.000000000","message":"Shouldn\u0027t this be deprecated as well, and use the deprecated function instead of the internal?","commit_id":"3d2f6c6735f9b90a81a4044fa9a02b738861ccde"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"43f6724db52aff45ce3344239e5d450a8717bc81","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":440,"context_line":"            expected_status\u003d403)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def test_list_keystone_tokens_by_consumer(self):"},{"line_number":443,"context_line":"        self.test_oauth_flow()"},{"line_number":444,"context_line":"        tokens \u003d self.token_api._list_tokens(self.user_id,"},{"line_number":445,"context_line":"                                             consumer_id\u003dself.consumer.key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2BBM%3D","line":442,"in_reply_to":"AAAATn%2F9%2BX0%3D","updated":"2013-12-03 22:09:30.000000000","message":"I\u0027ll work on removing this test and making the test validate via the public delete method instead of the \"internal\" reference.","commit_id":"3d2f6c6735f9b90a81a4044fa9a02b738861ccde"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"27eeb66a1073bf2755067faaa362bd25ad6d9ac6","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":440,"context_line":"            expected_status\u003d403)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def test_delete_keystone_tokens_by_consumer_id(self):"},{"line_number":443,"context_line":"        self.test_oauth_flow()"},{"line_number":444,"context_line":"        self.token_api.get_token(self.keystone_token_id)"},{"line_number":445,"context_line":"        self.token_api.delete_tokens(self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9zCw%3D","line":442,"updated":"2013-12-05 19:51:44.000000000","message":"So I understand why test_list_keystone_tokens_by_consumer needs to go away but why did you decide to add test_delete_keystone_tokens_by_consumer_id in its place?","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"cdb6d67341327f07a8dabb0e0bdbf3c4c0fa2f92","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":440,"context_line":"            expected_status\u003d403)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def test_delete_keystone_tokens_by_consumer_id(self):"},{"line_number":443,"context_line":"        self.test_oauth_flow()"},{"line_number":444,"context_line":"        self.token_api.get_token(self.keystone_token_id)"},{"line_number":445,"context_line":"        self.token_api.delete_tokens(self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9yvs%3D","line":442,"in_reply_to":"AAAATn%2F9y64%3D","updated":"2013-12-05 21:00:06.000000000","message":"Your test seems much clearer and more intuitive than what it replaced. Thanks for helping me to understand why you added it.","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cd17168003432eb6c369f2e99e736f5dbb52a073","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            method\u003d\u0027POST\u0027,"},{"line_number":440,"context_line":"            expected_status\u003d403)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def test_delete_keystone_tokens_by_consumer_id(self):"},{"line_number":443,"context_line":"        self.test_oauth_flow()"},{"line_number":444,"context_line":"        self.token_api.get_token(self.keystone_token_id)"},{"line_number":445,"context_line":"        self.token_api.delete_tokens(self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9y64%3D","line":442,"in_reply_to":"AAAATn%2F9zCw%3D","updated":"2013-12-05 20:22:20.000000000","message":"This is testing the same functionality just via the delete_tokens method.  Since we don\u0027t create more than a single consumer based token in the oauth_flow method, it makes sense to test actual functionality not the side effect (list_tokens was validating the list was empty in this case, which seems to be a bad choice, we want to check that the token(s) created are properly removed).","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"}],"keystone/token/backends/sql.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"27eeb66a1073bf2755067faaa362bd25ad6d9ac6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            session.flush()"},{"line_number":169,"context_line":"        return tokens"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":172,"context_line":"                     consumer_id\u003dNone):"},{"line_number":173,"context_line":"        if trust_id:"},{"line_number":174,"context_line":"            return self._list_tokens_for_trust(trust_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9zHo%3D","line":171,"updated":"2013-12-05 19:51:44.000000000","message":"Nice to see this properly marked as a private function","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"}],"keystone/token/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a09f401af298b8447387365da4c887b9b9c16cb1","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        \"\"\""},{"line_number":217,"context_line":"        return self.driver._list_tokens(user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":218,"context_line":"                                        consumer_id\u003dNone)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2BaY%3D","line":218,"updated":"2013-12-03 21:12:36.000000000","message":"These values are already defaulting to None in the method signature on line 198 and 199.","commit_id":"3d2f6c6735f9b90a81a4044fa9a02b738861ccde"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"43f6724db52aff45ce3344239e5d450a8717bc81","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        \"\"\""},{"line_number":217,"context_line":"        return self.driver._list_tokens(user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":218,"context_line":"                                        consumer_id\u003dNone)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2BCo%3D","line":218,"in_reply_to":"AAAATn%2F9%2BaY%3D","updated":"2013-12-03 22:09:30.000000000","message":"Whoopse.  Good catch.","commit_id":"3d2f6c6735f9b90a81a4044fa9a02b738861ccde"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"27eeb66a1073bf2755067faaa362bd25ad6d9ac6","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            except exception.NotFound:"},{"line_number":310,"context_line":"                pass"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    @abc.abstractmethod"},{"line_number":313,"context_line":"    def _list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":314,"context_line":"                     consumer_id\u003dNone):"},{"line_number":315,"context_line":"        \"\"\"Returns a list of current token_id\u0027s for a user"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9zI0%3D","line":312,"updated":"2013-12-05 19:51:44.000000000","message":"I did not realize we were starting to use the python 2 to python 3 transition stuff.  It\u0027s scary what you miss when you go on vacation for a few weeks :-)","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"cd17168003432eb6c369f2e99e736f5dbb52a073","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            except exception.NotFound:"},{"line_number":310,"context_line":"                pass"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    @abc.abstractmethod"},{"line_number":313,"context_line":"    def _list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":314,"context_line":"                     consumer_id\u003dNone):"},{"line_number":315,"context_line":"        \"\"\"Returns a list of current token_id\u0027s for a user"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9y6c%3D","line":312,"in_reply_to":"AAAATn%2F9zI0%3D","updated":"2013-12-05 20:22:20.000000000","message":"This happened to me for something similar when I took a week off.  I felt almost lost coming back.","commit_id":"91eb28345d9734ef06b3d1d577b708654c302278"}]}
