)]}'
{"keystone/identity/core.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"6ffb533adab7fa18e8b53797fa40b81e7112cf0c","unresolved":false,"context_lines":[{"line_number":853,"context_line":"        user[\u0027enabled\u0027] \u003d clean.user_enabled(user[\u0027enabled\u0027])"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        # verify provided domain id is correct written"},{"line_number":856,"context_line":"        domain_id \u003d self.resource_api.get_domain(user_ref[\u0027domain_id\u0027])[\u0027id\u0027]"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        self._assert_default_project_id_is_not_domain("},{"line_number":859,"context_line":"            user_ref.get(\u0027default_project_id\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_67c5348d","line":856,"range":{"start_line":856,"start_character":49,"end_line":856,"end_character":57},"updated":"2016-06-22 14:51:26.000000000","message":"this should be user[\u0027domain_id\u0027] for consistency with the calls above.\n\nAlso, leaving the code as it is and just adding the domain check looks cleaner to me:\n\n    self.resource_api.get_domain(domain_id)\n\nIn addition, this needs tests","commit_id":"ca01c99f1d9c61c16a3a028ae06629d7385cc5de"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"f0ad9f8763e44017e04ee8dcbfd36e072c393013","unresolved":false,"context_lines":[{"line_number":853,"context_line":"        user[\u0027enabled\u0027] \u003d clean.user_enabled(user[\u0027enabled\u0027])"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        # verify provided domain id is correct written"},{"line_number":856,"context_line":"        domain_id \u003d self.resource_api.get_domain(user[\u0027domain_id\u0027])[\u0027id\u0027]"},{"line_number":857,"context_line":"        user[\u0027domain_id\u0027] \u003d domain_id"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        self._assert_default_project_id_is_not_domain("}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_3ed60ef1","line":856,"updated":"2016-06-24 18:22:01.000000000","message":"This is not doing anything different than the original code.  If the problem is anywhere, it is in the resource driver looking up the domain by id.","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"b89803e7aa990421658ecdab1465196ccb9ea9b3","unresolved":false,"context_lines":[{"line_number":853,"context_line":"        user[\u0027enabled\u0027] \u003d clean.user_enabled(user[\u0027enabled\u0027])"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        # verify provided domain id is correct written"},{"line_number":856,"context_line":"        domain_id \u003d self.resource_api.get_domain(user[\u0027domain_id\u0027])[\u0027id\u0027]"},{"line_number":857,"context_line":"        user[\u0027domain_id\u0027] \u003d domain_id"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        self._assert_default_project_id_is_not_domain("}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_23bee7fe","line":856,"in_reply_to":"3aaa91ec_3ed60ef1","updated":"2016-06-25 07:49:21.000000000","message":"What it is actually doing is ensuring that the domain_id we write in the user record is the one we read from the rescue driver, not the one passed in to the create method.  These could differ in case for installations where the database is running in case-insensitive mode. This is probably only a likely a practical issue for the default domain.","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d64c476ef2f9b88ff06d43023fb5d61857afc1fe","unresolved":false,"context_lines":[{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        # verify provided domain id is correct written"},{"line_number":856,"context_line":"        domain_id \u003d self.resource_api.get_domain(user[\u0027domain_id\u0027])[\u0027id\u0027]"},{"line_number":857,"context_line":"        user[\u0027domain_id\u0027] \u003d domain_id"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        self._assert_default_project_id_is_not_domain("},{"line_number":860,"context_line":"            user_ref.get(\u0027default_project_id\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_2ce34807","line":857,"range":{"start_line":857,"start_character":8,"end_line":857,"end_character":37},"updated":"2016-06-27 14:45:19.000000000","message":"this isn\u0027t necessary; I\u0027d leave all the code in this function as it was, but only adding:\n\n    self.resource_api.get_domain(domain_id)","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"}],"keystone/resource/core.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"f12e90ca77558096448e6fd3621ba196801ea5b1","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        try:"},{"line_number":693,"context_line":"            # Retrieve the corresponding project that acts as a domain"},{"line_number":694,"context_line":"            project \u003d self.driver.get_project(domain_id)"},{"line_number":695,"context_line":"            # default in mysql is to be not case sensitive therefore verify"},{"line_number":696,"context_line":"            if domain_id !\u003d project[\u0027id\u0027]:"},{"line_number":697,"context_line":"                raise exception.DomainNotFound(domain_id\u003ddomain_id)"},{"line_number":698,"context_line":"        except exception.ProjectNotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_477e7f19","line":695,"range":{"start_line":695,"start_character":14,"end_line":695,"end_character":30},"updated":"2016-07-01 11:31:21.000000000","message":"we can\u0027t assume the backend in this layer of the code","commit_id":"50378ec4ac62fd5f845601356e9e26e370767344"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"a2341614c5e1e69d74ee4a475f7074e620054320","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        try:"},{"line_number":693,"context_line":"            # Retrieve the corresponding project that acts as a domain"},{"line_number":694,"context_line":"            project \u003d self.driver.get_project(domain_id)"},{"line_number":695,"context_line":"            # default in mysql is to be not case sensitive therefore verify"},{"line_number":696,"context_line":"            if domain_id !\u003d project[\u0027id\u0027]:"},{"line_number":697,"context_line":"                raise exception.DomainNotFound(domain_id\u003ddomain_id)"},{"line_number":698,"context_line":"        except exception.ProjectNotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_6afc22b5","line":695,"range":{"start_line":695,"start_character":14,"end_line":695,"end_character":30},"in_reply_to":"3aaa91ec_477e7f19","updated":"2016-07-01 11:41:38.000000000","message":"Good point, maybe just say \"In case the backend is running in case in-sensitive mode, check there is an exact match of IDs\"","commit_id":"50378ec4ac62fd5f845601356e9e26e370767344"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f7c6043fd91a77983f1aed76c2abf19496b3ebfe","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        try:"},{"line_number":693,"context_line":"            # Retrieve the corresponding project that acts as a domain"},{"line_number":694,"context_line":"            project \u003d self.driver.get_project(domain_id)"},{"line_number":695,"context_line":"            # the DB backend might not operate in case sensitive mode, "},{"line_number":696,"context_line":"            # therefore verify for exact match of IDs"},{"line_number":697,"context_line":"            if domain_id !\u003d project[\u0027id\u0027]:"},{"line_number":698,"context_line":"                raise exception.DomainNotFound(domain_id\u003ddomain_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_c532670f","line":695,"range":{"start_line":695,"start_character":70,"end_line":695,"end_character":71},"updated":"2016-07-01 12:06:18.000000000","message":"need to remove the trailing space!","commit_id":"00fdce385690542e8ac6ceee039f838685a4b057"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"f3edb926e13f864d27b82bc3107e2edaff662095","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        try:"},{"line_number":693,"context_line":"            # Retrieve the corresponding project that acts as a domain"},{"line_number":694,"context_line":"            project \u003d self.driver.get_project(domain_id)"},{"line_number":695,"context_line":"            # the DB backend might not operate in case sensitive mode, "},{"line_number":696,"context_line":"            # therefore verify for exact match of IDs"},{"line_number":697,"context_line":"            if domain_id !\u003d project[\u0027id\u0027]:"},{"line_number":698,"context_line":"                raise exception.DomainNotFound(domain_id\u003ddomain_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_e53b23e8","line":695,"range":{"start_line":695,"start_character":70,"end_line":695,"end_character":71},"updated":"2016-07-01 12:06:38.000000000","message":"remove this extra space","commit_id":"00fdce385690542e8ac6ceee039f838685a4b057"}],"keystone/tests/unit/test_v3_identity.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d64c476ef2f9b88ff06d43023fb5d61857afc1fe","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    def test_create_user_bad_domain_id(self):"},{"line_number":223,"context_line":"        \"\"\"Call ``POST /users``.\"\"\""},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # create user with \u0027Default\u0027 domain_id instead if \u0027default"},{"line_number":226,"context_line":"        domain_id \u003d \u0027Default\u0027"},{"line_number":227,"context_line":"        user \u003d unit.create_user(self.identity_api, domain_id)"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_ac08d8da","line":225,"range":{"start_line":225,"start_character":58,"end_line":225,"end_character":66},"updated":"2016-06-27 14:45:19.000000000","message":"missing \u0027 after default","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d64c476ef2f9b88ff06d43023fb5d61857afc1fe","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    def test_create_user_bad_domain_id(self):"},{"line_number":223,"context_line":"        \"\"\"Call ``POST /users``.\"\"\""},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # create user with \u0027Default\u0027 domain_id instead if \u0027default"},{"line_number":226,"context_line":"        domain_id \u003d \u0027Default\u0027"},{"line_number":227,"context_line":"        user \u003d unit.create_user(self.identity_api, domain_id)"},{"line_number":228,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_6c51d0d8","line":225,"range":{"start_line":225,"start_character":55,"end_line":225,"end_character":57},"updated":"2016-06-27 14:45:19.000000000","message":"of","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"5ce760493b26500c79d135ed27812f5ab9062abd","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        \"\"\"Call ``POST /users``.\"\"\""},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        # create user with \u0027Default\u0027 domain_id instead if \u0027default"},{"line_number":226,"context_line":"        domain_id \u003d \u0027Default\u0027"},{"line_number":227,"context_line":"        user \u003d unit.create_user(self.identity_api, domain_id)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        self.assertEqual(user[\u0027domain_id\u0027], CONF.identity.default_domain_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_e34e9f39","line":226,"range":{"start_line":226,"start_character":21,"end_line":226,"end_character":28},"updated":"2016-06-25 07:51:12.000000000","message":"When you move this to a separate patch (as per the comments), I\u0027d suggest making this more obvious, e.g. \"DeFaUlT\", since \"Default\" is also the name of the default domain.","commit_id":"a81a9fe26cc7e8374a836269b7c0e69a8f0cd4d4"}]}
