)]}'
{"tempest/api/identity/v2/test_users.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d1842bb98d62eda81ceefc1038b5b579c41c2c1d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            # Clear auth restores the original credentials and deletes"},{"line_number":45,"context_line":"            # cached auth data"},{"line_number":46,"context_line":"            client.auth_provider.clear_auth()"},{"line_number":47,"context_line":"            time.sleep(1)"},{"line_number":48,"context_line":"            client.auth_provider.set_auth()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        old_pass \u003d self.creds.password"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_1273674e","line":47,"updated":"2016-09-15 14:28:01.000000000","message":"I don\"t understand. Do we have a  bug somewhere, is it a Keystone limitation or Fernet-token issue ?","commit_id":"cc873384d3b6503aeb13aeab4c33a4bbf6ce6fd0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f039726f597a4c405d6766c8eddfc50f15bf099a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            # Clear auth restores the original credentials and deletes"},{"line_number":45,"context_line":"            # cached auth data"},{"line_number":46,"context_line":"            client.auth_provider.clear_auth()"},{"line_number":47,"context_line":"            time.sleep(1)"},{"line_number":48,"context_line":"            client.auth_provider.set_auth()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        old_pass \u003d self.creds.password"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_25a334a0","line":47,"in_reply_to":"5a8bc5a2_3778b58f","updated":"2016-09-28 13:21:57.000000000","message":"Done","commit_id":"cc873384d3b6503aeb13aeab4c33a4bbf6ce6fd0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a4c8418c636a1d131d0bfd22330c1fee688ee156","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            # Clear auth restores the original credentials and deletes"},{"line_number":45,"context_line":"            # cached auth data"},{"line_number":46,"context_line":"            client.auth_provider.clear_auth()"},{"line_number":47,"context_line":"            time.sleep(1)"},{"line_number":48,"context_line":"            client.auth_provider.set_auth()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        old_pass \u003d self.creds.password"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_656f83c5","line":47,"in_reply_to":"7a8ec9b2_1273674e","updated":"2016-09-15 14:38:09.000000000","message":"It\u0027s not so much that the password change isn\u0027t synchronous, it is. This is a limitation introduced by the underlying cryptographic implementation of Fernet tokens only being precise to the second.\n\nIn keystone, a password change will create a revocation event. If a token is issued within the same second of creating the revocation event, keystone will err on the side of security and consider the token revoked. Here we\u0027re making a call to set the password back to it\u0027s original value, clearing the previous credentials, then setting them again. If all of this happens with in the same second, keystone will consider the newly created token revoked.\n\nThis is the same pattern used on line 63 right after we change the password the first time, but before we test that we can get a new token.\n\nDoes this help clear things up?","commit_id":"cc873384d3b6503aeb13aeab4c33a4bbf6ce6fd0"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"f55e620520e7807b05b4b2ca3aceb0869dbfe1bb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            # Clear auth restores the original credentials and deletes"},{"line_number":45,"context_line":"            # cached auth data"},{"line_number":46,"context_line":"            client.auth_provider.clear_auth()"},{"line_number":47,"context_line":"            time.sleep(1)"},{"line_number":48,"context_line":"            client.auth_provider.set_auth()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        old_pass \u003d self.creds.password"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_3778b58f","line":47,"in_reply_to":"7a8ec9b2_656f83c5","updated":"2016-09-28 05:55:36.000000000","message":"how about adding this good explanation as comment into the code?","commit_id":"cc873384d3b6503aeb13aeab4c33a4bbf6ce6fd0"}]}
