)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"520d495511a5c70c64e6d8f8bbe08330d8cc760a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Improve user experience involving token flush"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently with the use of fernet tokens and memcache it is no longer"},{"line_number":10,"context_line":"necessary to use the token_flush command. Running this command with"},{"line_number":11,"context_line":"KVS driver and fernet tokens enabled fails and throws a Traceback"},{"line_number":12,"context_line":"and NotImplemented erros. For a better UX we allow the implementation"},{"line_number":13,"context_line":"to pass and log a warning message"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_9cdf4c0c","line":10,"updated":"2016-07-12 20:16:39.000000000","message":"This should be recreatable regardless of the token.provider being used, right? If I have uuid set as the token provider and kvs set as the token.driver, I should be able to recreate this.","commit_id":"d3086675404743cb1f8f7c37585c14a66ac3b40f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"520d495511a5c70c64e6d8f8bbe08330d8cc760a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently with the use of fernet tokens and memcache it is no longer"},{"line_number":10,"context_line":"necessary to use the token_flush command. Running this command with"},{"line_number":11,"context_line":"KVS driver and fernet tokens enabled fails and throws a Traceback"},{"line_number":12,"context_line":"and NotImplemented erros. For a better UX we allow the implementation"},{"line_number":13,"context_line":"to pass and log a warning message"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I95addc8df3a39135fb3fe3c63b6b21c1c279ace8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_1ca6bcad","line":12,"updated":"2016-07-12 20:16:39.000000000","message":"errors*","commit_id":"d3086675404743cb1f8f7c37585c14a66ac3b40f"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"c885164202101e1a58ff605c04e27f60997aecfc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve user experience involving token flush"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently with the use of sql and memcache it is no longer"},{"line_number":10,"context_line":"necessary to use the token_flush command. Running this command with"},{"line_number":11,"context_line":"KVS driver enabled fails and throws a Traceback and NotImplemented"},{"line_number":12,"context_line":"errors. For a better UX, we allow the implementation to pass and log"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_864f8433","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":29},"updated":"2016-07-14 19:18:38.000000000","message":"It is still necessary to use the command with sql driver.","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"4560c05188a91822a5819bb571bfddd0a8ab0dff","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve user experience involving token flush"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently with the use of sql and memcache it is no longer"},{"line_number":10,"context_line":"necessary to use the token_flush command. Running this command with"},{"line_number":11,"context_line":"KVS driver enabled fails and throws a Traceback and NotImplemented"},{"line_number":12,"context_line":"errors. For a better UX, we allow the implementation to pass and log"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_e62ac82e","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":29},"in_reply_to":"1aa78d24_864f8433","updated":"2016-07-14 19:21:51.000000000","message":"++","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"f115a4db280f674da9d96d972574c161c21c5b07","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve user experience involving token flush"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently with the use of sql and memcache it is no longer"},{"line_number":10,"context_line":"necessary to use the token_flush command. Running this command with"},{"line_number":11,"context_line":"KVS driver enabled fails and throws a Traceback and NotImplemented"},{"line_number":12,"context_line":"errors. For a better UX, we allow the implementation to pass and log"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1aa78d24_864304af","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":29},"in_reply_to":"1aa78d24_e62ac82e","updated":"2016-07-14 19:52:30.000000000","message":"Done","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"}],"keystone/cmd/cli.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9e2b3b719ab4828054fb0420ce1b64b71ce406d6","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    @classmethod"},{"line_number":541,"context_line":"    def main(cls):"},{"line_number":542,"context_line":"        token_manager \u003d token.persistence.PersistenceManager()"},{"line_number":543,"context_line":"        token_manager.flush_expired_tokens()"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"class MappingPurge(BaseApp):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_7c8d4030","side":"PARENT","line":543,"updated":"2016-07-12 20:14:50.000000000","message":"We should probably wrap this in a try/except that catches if a NotImplemented is raised. This will remove the flush token functionality regardless of which token.driver is being used.","commit_id":"c7b72705b1be3a9aa01d6f153929848a2ae20db4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3938dc24c19dcdb7156a36d4015e7ffd71e89c8d","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    @classmethod"},{"line_number":541,"context_line":"    def main(cls):"},{"line_number":542,"context_line":"        token_manager \u003d token.persistence.PersistenceManager()"},{"line_number":543,"context_line":"        token_manager.flush_expired_tokens()"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"class MappingPurge(BaseApp):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_bc84c8d2","side":"PARENT","line":543,"in_reply_to":"1aa78d24_7c8d4030","updated":"2016-07-12 20:19:54.000000000","message":"++ for wrapping it and catching, it\u0027s still valid for folks using SQL driver and UUID format -- the defaults... https://github.com/openstack/keystone/blob/master/keystone/conf/token.py#L43-L59","commit_id":"c7b72705b1be3a9aa01d6f153929848a2ae20db4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"39a200d6bc7fbb21156efb12fcf7b4aeef74c5fd","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        try:"},{"line_number":544,"context_line":"            token_manager.flush_expired_tokens()"},{"line_number":545,"context_line":"        except exception.NotImplemented:"},{"line_number":546,"context_line":"        #because we already have a Log.Warning which informs the user that"},{"line_number":547,"context_line":"        #KVM is recommended for testing and to switch to sql or memcache"},{"line_number":548,"context_line":"        #we don\u0027t need to relog a warning again."},{"line_number":549,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_cbb588ed","line":546,"updated":"2016-07-12 22:13:56.000000000","message":"Getting there!\n\nWe typically leave comments as NOTES\n\n  # NOTE(ravelar159): \u003cnote/reason\u003e\n\nThis makes it easier when others are reading the code, and if they have questions they\u0027re able to find someone in IRC who left the comment.\n\nWe could actually log something here saying the the token flush operation didn\u0027t actually flush any tokens because the token driver doesn\u0027t support it.","commit_id":"6998c6eadc79cc66b312e5995072c2e1a05ac219"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"ef082fe9312ce1fd8470fc1e6af114463246b758","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        try:"},{"line_number":544,"context_line":"            token_manager.flush_expired_tokens()"},{"line_number":545,"context_line":"        except exception.NotImplemented:"},{"line_number":546,"context_line":"        #because we already have a Log.Warning which informs the user that"},{"line_number":547,"context_line":"        #KVM is recommended for testing and to switch to sql or memcache"},{"line_number":548,"context_line":"        #we don\u0027t need to relog a warning again."},{"line_number":549,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_cb10e802","line":546,"updated":"2016-07-12 22:08:03.000000000","message":"This line should be indented to align with pass. And there should be a space after # (usually pep8 will complain)","commit_id":"6998c6eadc79cc66b312e5995072c2e1a05ac219"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"875a9aab34baf2027e3657a91c5bd5daf249741d","unresolved":false,"context_lines":[{"line_number":545,"context_line":"        except exception.NotImplemented:"},{"line_number":546,"context_line":"            # NOTE(ravelar159): Stop NotImplemented from unsupported token"},{"line_number":547,"context_line":"            # driver kvs when using token_flush and print out warning"},{"line_number":548,"context_line":"            LOG.warning(\u0027KVS does not support token_flush. \u0027"},{"line_number":549,"context_line":"                        \u0027token_flush did not flush any tokens.\u0027)"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"class MappingPurge(BaseApp):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b7278db4","line":548,"updated":"2016-07-13 17:04:42.000000000","message":"It could be that other things don\u0027t support token_flush as well.","commit_id":"6f0e06a267c9700ec7ca8e9f41dc40eb13c6ac47"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bc61436fbaa3a06bafb41576d5e0e3dc6fab19c7","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            # driver kvs when using token_flush and print out warning"},{"line_number":548,"context_line":"            LOG.warning(\u0027Token driver does not support token_flush. \u0027"},{"line_number":549,"context_line":"                        \u0027Please change token driver in keystone.conf file. \u0027"},{"line_number":550,"context_line":"                        \u0027token_flush did not flush any tokens.\u0027)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"class MappingPurge(BaseApp):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_66b44182","line":550,"range":{"start_line":550,"start_character":45,"end_line":550,"end_character":50},"updated":"2016-07-14 04:16:38.000000000","message":"I\u0027m not sure you want to suggest changing the token driver. We would hope people put thought into what token driver they are using. \n\nI think it sufficient to say \n\n\"Token driver %s does not support token_flush. The token_flush command has had no effect\" % CONF.token.driver\n\nalso you should wrap this in a _LW() from keystone.i18n","commit_id":"e3992614fb7752613a387c98fb877d00e2bbb88c"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"b9f718455ee8e3df694dbac37b2f3133eda4ec6a","unresolved":false,"context_lines":[{"line_number":547,"context_line":"            # driver kvs when using token_flush and print out warning"},{"line_number":548,"context_line":"            LOG.warning(\u0027Token driver does not support token_flush. \u0027"},{"line_number":549,"context_line":"                        \u0027Please change token driver in keystone.conf file. \u0027"},{"line_number":550,"context_line":"                        \u0027token_flush did not flush any tokens.\u0027)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"class MappingPurge(BaseApp):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_4adac818","line":550,"range":{"start_line":550,"start_character":45,"end_line":550,"end_character":50},"in_reply_to":"1aa78d24_66b44182","updated":"2016-07-14 16:14:25.000000000","message":"Done","commit_id":"e3992614fb7752613a387c98fb877d00e2bbb88c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"c885164202101e1a58ff605c04e27f60997aecfc","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            # NOTE(ravelar159): Stop NotImplemented from unsupported token"},{"line_number":547,"context_line":"            # driver when using token_flush and print out warning instead"},{"line_number":548,"context_line":"            LOG.warning(_LW(\u0027Token driver %s does not support token_flush. \u0027"},{"line_number":549,"context_line":"                        \u0027The token_flush command had no effect.\u0027),"},{"line_number":550,"context_line":"                        CONF.token.driver)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_868ae462","line":549,"range":{"start_line":549,"start_character":24,"end_line":549,"end_character":25},"updated":"2016-07-14 19:18:38.000000000","message":"please indent this so that it matches the first \u0027","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"f115a4db280f674da9d96d972574c161c21c5b07","unresolved":false,"context_lines":[{"line_number":546,"context_line":"            # NOTE(ravelar159): Stop NotImplemented from unsupported token"},{"line_number":547,"context_line":"            # driver when using token_flush and print out warning instead"},{"line_number":548,"context_line":"            LOG.warning(_LW(\u0027Token driver %s does not support token_flush. \u0027"},{"line_number":549,"context_line":"                        \u0027The token_flush command had no effect.\u0027),"},{"line_number":550,"context_line":"                        CONF.token.driver)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_663ed82a","line":549,"range":{"start_line":549,"start_character":24,"end_line":549,"end_character":25},"in_reply_to":"1aa78d24_868ae462","updated":"2016-07-14 19:52:30.000000000","message":"Agreed, good eye","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"}],"keystone/tests/unit/test_cli.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9751617424c388f5154437233f0bfe195c093be0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.load_backends()"},{"line_number":46,"context_line":"        cli.TokenFlush.main()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_bad_token_flush(self):"},{"line_number":49,"context_line":"        self.useFixture(database.Database())"},{"line_number":50,"context_line":"        self.load_backends()"},{"line_number":51,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, driver\u003d\u0027kvs\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_9d91a29d","line":48,"updated":"2016-07-14 13:34:19.000000000","message":"We could probably improve the naming here to include a few more bits of information when we read it.\n\n    def test_token_flush_excepts_not_implemented_and_logs_warning(self):","commit_id":"e3992614fb7752613a387c98fb877d00e2bbb88c"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"b9f718455ee8e3df694dbac37b2f3133eda4ec6a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.load_backends()"},{"line_number":46,"context_line":"        cli.TokenFlush.main()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_bad_token_flush(self):"},{"line_number":49,"context_line":"        self.useFixture(database.Database())"},{"line_number":50,"context_line":"        self.load_backends()"},{"line_number":51,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, driver\u003d\u0027kvs\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_8a02f070","line":48,"in_reply_to":"1aa78d24_9d91a29d","updated":"2016-07-14 16:14:25.000000000","message":"Done","commit_id":"e3992614fb7752613a387c98fb877d00e2bbb88c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"c885164202101e1a58ff605c04e27f60997aecfc","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def test_token_flush_excepts_not_implemented_and_logs_warning(self):"},{"line_number":53,"context_line":"        self.useFixture(database.Database())"},{"line_number":54,"context_line":"        self.load_backends()"},{"line_number":55,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, driver\u003d\u0027kvs\u0027)"},{"line_number":56,"context_line":"        log_info \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":57,"context_line":"        cli.TokenFlush.main()"},{"line_number":58,"context_line":"        self.assertIn(\"token_flush command had no effect\", log_info.output)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_a6bd6004","line":55,"range":{"start_line":55,"start_character":57,"end_line":55,"end_character":62},"updated":"2016-07-14 19:18:38.000000000","message":"lets not use this generic driver. Lets do something more commonly used. Like memcache.","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"f115a4db280f674da9d96d972574c161c21c5b07","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def test_token_flush_excepts_not_implemented_and_logs_warning(self):"},{"line_number":53,"context_line":"        self.useFixture(database.Database())"},{"line_number":54,"context_line":"        self.load_backends()"},{"line_number":55,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, driver\u003d\u0027kvs\u0027)"},{"line_number":56,"context_line":"        log_info \u003d self.useFixture(fixtures.FakeLogger(level\u003dlog.WARN))"},{"line_number":57,"context_line":"        cli.TokenFlush.main()"},{"line_number":58,"context_line":"        self.assertIn(\"token_flush command had no effect\", log_info.output)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_2634d048","line":55,"range":{"start_line":55,"start_character":57,"end_line":55,"end_character":62},"in_reply_to":"1aa78d24_a6bd6004","updated":"2016-07-14 19:52:30.000000000","message":"Alright will change. I am a little confused by the urgency of this, however, since the original bug was caused using kvs, and the point of the unit test is to make it fail and either one accomplishes this.","commit_id":"8e05bd596b6bca3be3b5ec4f5fd1f6bbad248e29"}]}
