)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e51d2d0fdb1a4be3dba153a0444c908601b45f60","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default project_id to user ref on role grant"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"it was observed on Mitaka that if a project is not specified during user"},{"line_number":10,"context_line":"creation then no default_project_id field is added in the user"},{"line_number":11,"context_line":"reference. Even if a subsequent role grant maps a project to this user,"},{"line_number":12,"context_line":"no default_project_id is added to the user reference.  This has the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_c9dca675","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":25},"updated":"2016-07-29 20:30:13.000000000","message":"this ha always been true for the v3 API, whatever release you are talking about - it was designed this way.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default project_id to user ref on role grant"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"it was observed on Mitaka that if a project is not specified during user"},{"line_number":10,"context_line":"creation then no default_project_id field is added in the user"},{"line_number":11,"context_line":"reference. Even if a subsequent role grant maps a project to this user,"},{"line_number":12,"context_line":"no default_project_id is added to the user reference.  This has the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3ac371cc_03e55a08","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":25},"in_reply_to":"bacf61ea_c9dca675","updated":"2016-08-15 17:06:16.000000000","message":"++","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"}],"keystone/assignment/core.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            except exception.UserNotFound:"},{"line_number":194,"context_line":"                LOG.debug(\"Getting user %s failed because it does not exist.\","},{"line_number":195,"context_line":"                          user_id)"},{"line_number":196,"context_line":"            except:"},{"line_number":197,"context_line":"                pass"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def add_user_to_project(self, tenant_id, user_id):"},{"line_number":200,"context_line":"        \"\"\"Add user to a tenant by creating a default role relationship."}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_a304467e","line":197,"range":{"start_line":196,"start_character":12,"end_line":197,"end_character":20},"updated":"2016-08-15 17:06:16.000000000","message":"We shouldn\u0027t ignore other exceptions.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                tenant_id,"},{"line_number":230,"context_line":"                CONF.member_role_id)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        self._ensure_project_id_exists_in_user(tenant_id, user_id)"},{"line_number":233,"context_line":"        COMPUTED_ASSIGNMENTS_REGION.invalidate()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @notifications.role_assignment(\u0027created\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_a3bc466d","line":232,"range":{"start_line":232,"start_character":8,"end_line":232,"end_character":66},"updated":"2016-08-15 17:06:16.000000000","message":"You need a unit test for this.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        self.resource_api.get_project(project_id)"},{"line_number":247,"context_line":"        self.role_api.get_role(role_id)"},{"line_number":248,"context_line":"        self.driver.add_role_to_user_and_project(user_id, project_id, role_id)"},{"line_number":249,"context_line":"        self._ensure_project_id_exists_in_user(project_id, user_id)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    def add_role_to_user_and_project(self, user_id, tenant_id, role_id):"},{"line_number":252,"context_line":"        self._add_role_to_user_and_project_adapter("}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_e3b63e89","line":249,"range":{"start_line":249,"start_character":8,"end_line":249,"end_character":67},"updated":"2016-08-15 17:06:16.000000000","message":"You need a unit test for this.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            self.resource_api.get_project(project_id)"},{"line_number":365,"context_line":"        self.driver.create_grant(role_id, user_id, group_id, domain_id,"},{"line_number":366,"context_line":"                                 project_id, inherited_to_projects)"},{"line_number":367,"context_line":"        self._ensure_project_id_exists_in_user(project_id, user_id)"},{"line_number":368,"context_line":"        COMPUTED_ASSIGNMENTS_REGION.invalidate()"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def get_grant(self, role_id, user_id\u003dNone, group_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_03aefa2d","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":67},"updated":"2016-08-15 17:06:16.000000000","message":"You need a unit test for this.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"}],"keystone/auth/controllers.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        if project_id and trust:"},{"line_number":366,"context_line":"            msg \u003d _(\u0027Scoping to both project and trust is not allowed\u0027)"},{"line_number":367,"context_line":"            raise ValueError(msg)"},{"line_number":368,"context_line":"        if unscoped and project_id:"},{"line_number":369,"context_line":"            msg \u003d _(\u0027Unscoped being scoped to project is not allowed\u0027)"},{"line_number":370,"context_line":"            raise ValueError(msg)"},{"line_number":371,"context_line":"        self._scope_data \u003d (domain_id, project_id, trust, unscoped)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_839aea12","line":368,"range":{"start_line":368,"start_character":8,"end_line":368,"end_character":35},"updated":"2016-08-15 17:06:16.000000000","message":"You need a test for this.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"}],"keystone/tests/unit/test_v3_resource.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"01758e1774a14ae03000f11ec2d56c3f32072ea1","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        self.assertDictEqual(group, r)"},{"line_number":372,"context_line":"        r \u003d self.identity_api.get_user(self.user[\u0027id\u0027])"},{"line_number":373,"context_line":"        self.user.pop(\u0027password\u0027)"},{"line_number":374,"context_line":"        r.pop(\u0027default_project_id\u0027)"},{"line_number":375,"context_line":"        self.assertDictEqual(self.user, r)"},{"line_number":376,"context_line":"        r \u003d self.credential_api.get_credential(credential[\u0027id\u0027])"},{"line_number":377,"context_line":"        self.assertDictEqual(credential, r)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ac371cc_c3ed028d","line":374,"range":{"start_line":374,"start_character":8,"end_line":374,"end_character":35},"updated":"2016-08-15 17:06:16.000000000","message":"Are you just removing default_project_id so that the test pass? Perhaps, change the test if default_project_id should be returned.","commit_id":"0882f0ed74ea52dc378bf2f9dbcfadc8b2942eeb"}]}
