)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"ad09c19ccc37f9c0bb7ff13eebd5c62e549c7e2d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"issue_v3_token instead. Any tokens that needed to be represented"},{"line_number":11,"context_line":"as a v2.0 token we translate using the V2TokenDataHelper class."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"At this point nothing really uses the issue_v2_token method and it"},{"line_number":14,"context_line":"can be safely removed. A subsequent patch will rename the"},{"line_number":15,"context_line":"issue_v3_token method to just issue_token since we no longer need"},{"line_number":16,"context_line":"to make a distinction between two different methods."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9a629dbe_50b3c009","line":13,"range":{"start_line":13,"start_character":22,"end_line":13,"end_character":28},"updated":"2016-11-11 09:03:36.000000000","message":"nit...maybe delate \"really\" so hopefully absolutely nothing no uses it...zip, nada, zilch etc.","commit_id":"2ccdd327d68f327aa3e928f70f6aac26e53cb20a"}],"keystone/tests/unit/token/test_backends.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"713dda074061c4a819f05c28974e090dd8e55024","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        self.token_provider_api._persistence.delete_token("},{"line_number":467,"context_line":"            self.unscoped_token_id)"},{"line_number":468,"context_line":"        self._check_unscoped_tokens_are_invalid()"},{"line_number":469,"context_line":"        self._check_scoped_tokens_are_valid()"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    def test_delete_scoped_token_by_id(self):"},{"line_number":472,"context_line":"        self.token_provider_api._persistence.delete_token(self.scoped_token_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_795fa70e","side":"PARENT","line":469,"updated":"2016-10-20 18:14:27.000000000","message":"I removed these methods because over the course of cleaning up the token provider, it didn\u0027t make sense to have a single method to validate a single token. Instead, I opted to just have the assertion about the token\u0027s validity in the test because it results in less running around finding method definitions.","commit_id":"dbefd432e66cc218b89010728528f3f186be8ac3"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"9da92af2e9ed35e61d3d1d7068e224e11126face","unresolved":false,"context_lines":[{"line_number":389,"context_line":"class TokenCacheInvalidation(object):"},{"line_number":390,"context_line":"    def _create_test_data(self):"},{"line_number":391,"context_line":"        time \u003d datetime.datetime.utcnow()"},{"line_number":392,"context_line":"        with freezegun.freeze_time(time) as frozen_datetime:"},{"line_number":393,"context_line":"            # Create an equivalent of a scoped token"},{"line_number":394,"context_line":"            token_id, data \u003d self.token_provider_api.issue_v3_token("},{"line_number":395,"context_line":"                self.user_foo[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a629dbe_ec6d3c99","line":392,"range":{"start_line":392,"start_character":8,"end_line":392,"end_character":60},"updated":"2016-11-09 13:42:30.000000000","message":"why was this necessary and why it worked before?","commit_id":"2ccdd327d68f327aa3e928f70f6aac26e53cb20a"}],"keystone/v2_crud/user_crud.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c493b7709db801cf8d63aa5b8cfffce1feb7c118","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        # not the norm as most cases do not need to yank apart a token to"},{"line_number":93,"context_line":"        # issue a new one."},{"line_number":94,"context_line":"        new_token_ref \u003d {}"},{"line_number":95,"context_line":"        # metadata_ref \u003d {}"},{"line_number":96,"context_line":"        # roles_ref \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        new_token_ref[\u0027user\u0027] \u003d user_ref"},{"line_number":99,"context_line":"        if token_ref.bind:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_96eaab72","line":96,"range":{"start_line":95,"start_character":0,"end_line":96,"end_character":26},"updated":"2016-10-15 12:43:27.000000000","message":"nope","commit_id":"4e5118875f03b42394c0e33a1ff2c900e8a5bb8b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8d5f9db57fb5aa6a20e2700775e4a46e49f3c5c3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # issue a new one."},{"line_number":94,"context_line":"        new_token_ref \u003d {}"},{"line_number":95,"context_line":"        # metadata_ref \u003d {}"},{"line_number":96,"context_line":"        # roles_ref \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        new_token_ref[\u0027user\u0027] \u003d user_ref"},{"line_number":99,"context_line":"        if token_ref.bind:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_80e31a33","line":96,"in_reply_to":"fa6399be_96eaab72","updated":"2016-10-17 14:38:37.000000000","message":"Done","commit_id":"4e5118875f03b42394c0e33a1ff2c900e8a5bb8b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"713dda074061c4a819f05c28974e090dd8e55024","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        #     new_token_ref[\u0027bind\u0027] \u003d token_ref.bind"},{"line_number":99,"context_line":"        # if token_ref.project_id:"},{"line_number":100,"context_line":"        #     new_token_ref[\u0027tenant\u0027] \u003d self.resource_api.get_project("},{"line_number":101,"context_line":"        #         token_ref.project_id)"},{"line_number":102,"context_line":"        # NOTE(lbragstad): Since we just updated the password and presisted a"},{"line_number":103,"context_line":"        # revocation event for the user changing the password, it is necessary"},{"line_number":104,"context_line":"        # to wait one second before authenticating. This ensure we are in the"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6895a0_59b9032e","line":101,"updated":"2016-10-20 18:14:27.000000000","message":"This stuff here could probably be removed.","commit_id":"864224bc11e1a71b8ee22fe6922ade7cb5d97ca8"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"9da92af2e9ed35e61d3d1d7068e224e11126face","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        # revocation event for the user changing the password, it is necessary"},{"line_number":92,"context_line":"        # to wait one second before authenticating. This ensures we are in the"},{"line_number":93,"context_line":"        # threshold of a new second before getting a new token."},{"line_number":94,"context_line":"        import time"},{"line_number":95,"context_line":"        time.sleep(1)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        new_token_id, new_token_data \u003d self.token_provider_api.issue_v3_token("},{"line_number":98,"context_line":"            token_ref.user_id, token_ref.methods,"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a629dbe_0c9c3068","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":21},"updated":"2016-11-09 13:42:30.000000000","message":"This patch depends on Ia51f28a70ae099f1ec93851d271db8556aced836. Do we still need this sleep? I think this sleep should be mentioned somewhere.","commit_id":"2ccdd327d68f327aa3e928f70f6aac26e53cb20a"}]}
