)]}'
{"tempest/api/identity/v2/test_tokens.py":[{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"8dd4ae17d5f05e83077bb46a497016de41a716ac","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest import test"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_106b371f","line":20,"updated":"2015-07-09 12:53:50.000000000","message":"Remove blank line","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"88fc4d141f240eaf0183a05370555f9754e8c4d7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest import test"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_cf75f4cc","line":20,"in_reply_to":"ba3cc151_106b371f","updated":"2015-07-10 13:07:50.000000000","message":"Done","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b7b46fac49d6be4433c3b8b2ee6c5114cbe9a621","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_utils import timeutils"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_02afe881","line":18,"updated":"2015-07-14 01:55:50.000000000","message":"nice catch, but this change should be out of scope because of this patch purpose.","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"934dd696911bd4c23b6370d1ecfbe1e402f2921d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_utils import timeutils"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_2e6529e0","line":18,"in_reply_to":"9a41bdd9_02afe881","updated":"2015-07-14 09:33:39.000000000","message":"Done","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"}],"tempest/api/identity/v2/test_users.py":[{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"8dd4ae17d5f05e83077bb46a497016de41a716ac","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        # current public_identity_client token will be revoked after updating"},{"line_number":42,"context_line":"        # password"},{"line_number":43,"context_line":"        self.public_identity_client_for_cleanup \u003d\\"},{"line_number":44,"context_line":"            copy.copy(self.public_identity_client)"},{"line_number":45,"context_line":"        self.public_identity_client_for_cleanup.auth_provider \u003d\\"},{"line_number":46,"context_line":"            manager.get_auth_provider(self.new_creds)"},{"line_number":47,"context_line":"        user_id \u003d self.creds.credentials.user_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_901d0775","line":44,"updated":"2015-07-09 12:53:50.000000000","message":"Backslash should not be there for line continuation, prefer to wrap long lines in parentheses.\n\nhttp://docs.openstack.org/developer/hacking/#general","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"88fc4d141f240eaf0183a05370555f9754e8c4d7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        # current public_identity_client token will be revoked after updating"},{"line_number":42,"context_line":"        # password"},{"line_number":43,"context_line":"        self.public_identity_client_for_cleanup \u003d\\"},{"line_number":44,"context_line":"            copy.copy(self.public_identity_client)"},{"line_number":45,"context_line":"        self.public_identity_client_for_cleanup.auth_provider \u003d\\"},{"line_number":46,"context_line":"            manager.get_auth_provider(self.new_creds)"},{"line_number":47,"context_line":"        user_id \u003d self.creds.credentials.user_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_f2d8db81","line":44,"in_reply_to":"ba3cc151_901d0775","updated":"2015-07-10 13:07:50.000000000","message":"Done","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b7b46fac49d6be4433c3b8b2ee6c5114cbe9a621","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_c2b7c0d6","line":1,"updated":"2015-07-14 01:55:50.000000000","message":"Since your e-mail, you are working for ..","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"934dd696911bd4c23b6370d1ecfbe1e402f2921d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_2e48c92c","line":1,"in_reply_to":"9a41bdd9_c2b7c0d6","updated":"2015-07-14 09:33:39.000000000","message":"Yes, my email is actual, but I am working under the contract with OpenStack Foundation.","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"f9b06384785bb178dac8b79d2879bdb38ae1597a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                         new_pass,"},{"line_number":66,"context_line":"                                         self.tenant_name)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # authorize with old token should lead to Unauthorized"},{"line_number":69,"context_line":"        self.assertRaises(exceptions.Unauthorized,"},{"line_number":70,"context_line":"                          self.non_admin_token_client.auth_token,"},{"line_number":71,"context_line":"                          self.non_admin_client.token)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_d719fb7a","line":68,"updated":"2015-08-10 06:11:46.000000000","message":"Is it expected with all token type ? Is it documented ?\nI have doubts about a password change really has to invalidate all previous token.","commit_id":"ab3ad863fdaca1f04b3ac6803097c82333300cbb"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"372b4c8ed99bde0a087bfac3ac9d83d78050c34b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                         new_pass,"},{"line_number":66,"context_line":"                                         self.tenant_name)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # authorize with old token should lead to Unauthorized"},{"line_number":69,"context_line":"        self.assertRaises(exceptions.Unauthorized,"},{"line_number":70,"context_line":"                          self.non_admin_token_client.auth_token,"},{"line_number":71,"context_line":"                          self.non_admin_client.token)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a4dcd0f_37529ade","line":68,"in_reply_to":"1a4dcd0f_d719fb7a","updated":"2015-08-10 08:56:39.000000000","message":"Yes, it is documented that in addition to changing user\u0027s password, all current tokens for the user are invalidated: http://docs.openstack.org/admin-guide-cloud/content/user-crud.html. Also, we can see this requirement when the user changes his(her) password via Horizon and then user is logged out and needs to log in again with new password.","commit_id":"ab3ad863fdaca1f04b3ac6803097c82333300cbb"},{"author":{"_account_id":10526,"name":"Catherine Diep","email":"cdiep@us.ibm.com","username":"cdiep"},"change_message_id":"5179057661f1dd64e50cf1e452a68c67cd4abbaa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.non_admin_client_for_cleanup.update_user_own_password,"},{"line_number":53,"context_line":"            user_id\u003duser_id,"},{"line_number":54,"context_line":"            new_pass\u003dold_pass,"},{"line_number":55,"context_line":"            old_pass\u003dnew_pass)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # user updates own password"},{"line_number":58,"context_line":"        resp \u003d self.non_admin_client.update_user_own_password("}],"source_content_type":"text/x-python","patch_set":28,"id":"fa1b9901_59541120","line":55,"updated":"2015-08-18 20:04:01.000000000","message":"This may not work in an environment where password rules may not allow password reuse until some number of password changes.","commit_id":"1d1796730b11337e2748659e963d8e2398ae67c0"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"9d5bbec2fd6441da160cbed811c13ac98d0475a8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            self.non_admin_client_for_cleanup.update_user_own_password,"},{"line_number":53,"context_line":"            user_id\u003duser_id,"},{"line_number":54,"context_line":"            new_pass\u003dold_pass,"},{"line_number":55,"context_line":"            old_pass\u003dnew_pass)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # user updates own password"},{"line_number":58,"context_line":"        resp \u003d self.non_admin_client.update_user_own_password("}],"source_content_type":"text/x-python","patch_set":28,"id":"fa1b9901_f64135aa","line":55,"in_reply_to":"fa1b9901_59541120","updated":"2015-08-19 19:41:49.000000000","message":"That may be true but I\u0027m not sure what can be done about it if this test is not going to create its own user/tenant and would then require admin creds to run. I thinkk there was a plan to be able to give tempest its own domain so tests like this could create test users without needing real admin.","commit_id":"1d1796730b11337e2748659e963d8e2398ae67c0"}],"tempest/api/identity/v3/test_tokens.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b7b46fac49d6be4433c3b8b2ee6c5114cbe9a621","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_utils import timeutils"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_22c1cc2e","line":18,"updated":"2015-07-14 01:55:50.000000000","message":"ditto: out of scope","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"934dd696911bd4c23b6370d1ecfbe1e402f2921d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_utils import timeutils"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.identity import base"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_ae6299ab","line":18,"in_reply_to":"9a41bdd9_22c1cc2e","updated":"2015-07-14 09:33:39.000000000","message":"Done","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"}],"tempest/api/identity/v3/test_users.py":[{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"8dd4ae17d5f05e83077bb46a497016de41a716ac","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        # current public_identity_client token will be revoked after updating"},{"line_number":42,"context_line":"        # password"},{"line_number":43,"context_line":"        self.public_identity_v3_client_for_cleanup \u003d\\"},{"line_number":44,"context_line":"            copy.copy(self.public_identity_v3_client)"},{"line_number":45,"context_line":"        self.public_identity_v3_client_for_cleanup.auth_provider \u003d\\"},{"line_number":46,"context_line":"            manager.get_auth_provider(self.new_creds)"},{"line_number":47,"context_line":"        user_id \u003d self.creds.credentials.user_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_6b84185d","line":44,"updated":"2015-07-09 12:53:50.000000000","message":"Remove backslash and prefer to wrap long lines in parentheses.","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"88fc4d141f240eaf0183a05370555f9754e8c4d7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        # current public_identity_client token will be revoked after updating"},{"line_number":42,"context_line":"        # password"},{"line_number":43,"context_line":"        self.public_identity_v3_client_for_cleanup \u003d\\"},{"line_number":44,"context_line":"            copy.copy(self.public_identity_v3_client)"},{"line_number":45,"context_line":"        self.public_identity_v3_client_for_cleanup.auth_provider \u003d\\"},{"line_number":46,"context_line":"            manager.get_auth_provider(self.new_creds)"},{"line_number":47,"context_line":"        user_id \u003d self.creds.credentials.user_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_d294b78d","line":44,"in_reply_to":"ba3cc151_6b84185d","updated":"2015-07-10 13:07:50.000000000","message":"Done","commit_id":"5a2e8fe30047cc1a62b70f2eb74bff10ff1d6f2f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b7b46fac49d6be4433c3b8b2ee6c5114cbe9a621","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_e2e1a4d1","line":1,"updated":"2015-07-14 01:55:50.000000000","message":"ditto","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"934dd696911bd4c23b6370d1ecfbe1e402f2921d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_6e5c91ed","line":1,"in_reply_to":"9a41bdd9_e2e1a4d1","updated":"2015-07-14 09:33:39.000000000","message":"Yes, my email is actual, but I am working under the contract with OpenStack Foundation.","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"}],"tempest/services/identity/v2/json/identity_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b7b46fac49d6be4433c3b8b2ee6c5114cbe9a621","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":271,"context_line":"        return service_client.ResponseBody(resp, self._parse_resp(body))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def user_update_own_password(self, new_pass, old_pass, user_id):"},{"line_number":274,"context_line":"        \"\"\"User updates own password\"\"\""},{"line_number":275,"context_line":"        patch_body \u003d {"},{"line_number":276,"context_line":"            \"password\": new_pass,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_2246acbf","line":273,"updated":"2015-07-14 01:55:50.000000000","message":"Here should be\n\n update_user_password(self, user_id, new_pass, old_pass)\n\nbecause of http://specs.openstack.org/openstack/qa-specs/specs/tempest/consistent-service-method-names.html","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"},{"author":{"_account_id":16433,"name":"izadorozhna","email":"izadorozhna@mirantis.com","username":"izadorozhna"},"change_message_id":"934dd696911bd4c23b6370d1ecfbe1e402f2921d","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":271,"context_line":"        return service_client.ResponseBody(resp, self._parse_resp(body))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def user_update_own_password(self, new_pass, old_pass, user_id):"},{"line_number":274,"context_line":"        \"\"\"User updates own password\"\"\""},{"line_number":275,"context_line":"        patch_body \u003d {"},{"line_number":276,"context_line":"            \"password\": new_pass,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a41bdd9_6e2a512e","line":273,"in_reply_to":"9a41bdd9_2246acbf","updated":"2015-07-14 09:33:39.000000000","message":"Yes, thank you, it is really the good idea and I missed the documentation.\nThere is the same \"update_user_password\" above this method for an admin to update user\u0027s password. So I renamed my method to \u0027update_user_own_password\u0027.","commit_id":"606ca39b1d234df04e6408d4c73b95579a36645d"}]}
