)]}'
{"keystone/assignment/backends/base.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"534e8213bafe60bf12af0117fdbf15713e08b984","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        self.driver.remove_role_from_user_and_project("},{"line_number":346,"context_line":"            user_id, tenant_id, role_id)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def create_grant(self, role_id, user_id\u003dNone, group_id\u003dNone,"},{"line_number":349,"context_line":"                     domain_id\u003dNone, project_id\u003dNone,"},{"line_number":350,"context_line":"                     inherited_to_projects\u003dFalse, *args, **kwargs):"},{"line_number":351,"context_line":"        self.driver.create_grant("},{"line_number":352,"context_line":"            role_id, user_id\u003duser_id, group_id\u003dgroup_id,"},{"line_number":353,"context_line":"            domain_id\u003ddomain_id, project_id\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_8934274a","line":350,"range":{"start_line":348,"start_character":4,"end_line":350,"end_character":67},"updated":"2016-06-24 21:38:07.000000000","message":"this line is causing the py27 job to be over 500 MB and no sign of finishing\n\nsee http://paste.openstack.org/show/522047/ for details","commit_id":"0a70b9ea4013a74495409e449992489796d52978"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5772e4801cc24c4686e69ce4894995f92c2128a","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        self.driver.remove_role_from_user_and_project("},{"line_number":346,"context_line":"            user_id, tenant_id, role_id)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def create_grant(self, role_id, user_id\u003dNone, group_id\u003dNone,"},{"line_number":349,"context_line":"                     domain_id\u003dNone, project_id\u003dNone,"},{"line_number":350,"context_line":"                     inherited_to_projects\u003dFalse, *args, **kwargs):"},{"line_number":351,"context_line":"        self.driver.create_grant("},{"line_number":352,"context_line":"            role_id, user_id\u003duser_id, group_id\u003dgroup_id,"},{"line_number":353,"context_line":"            domain_id\u003ddomain_id, project_id\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3aaa91ec_c9574f56","line":350,"range":{"start_line":348,"start_character":4,"end_line":350,"end_character":67},"in_reply_to":"3aaa91ec_8934274a","updated":"2016-06-24 21:43:16.000000000","message":"ignore this comment","commit_id":"0a70b9ea4013a74495409e449992489796d52978"}],"keystone/assignment/core.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"8fcbeae8f35855ad81ce5dfadcc7666ce9b4be08","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def _populate_delegation_context(self, domain_id, project_id, role_id,"},{"line_number":341,"context_line":"                                     inherited_to_projects\u003dFalse):"},{"line_number":342,"context_line":"        if hasattr(self.driver, \u0027discover_parent_delegations\u0027):"},{"line_number":343,"context_line":"            # Delegation driver is used and requires parent delegation"},{"line_number":344,"context_line":"            # Honor implied roles:"},{"line_number":345,"context_line":"            # find all parents of the requested role"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_4bd20e5d","line":342,"updated":"2016-04-28 21:58:48.000000000","message":"Usually this should be refactored: extract method","commit_id":"c56563e41282dd1c354c40341e4d87dad477838a"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"568dd0fbed7e64c660b5e7532c59f18df16e2f48","unresolved":false,"context_lines":[{"line_number":1525,"context_line":"                     domain_id\u003dNone, project_id\u003dNone,"},{"line_number":1526,"context_line":"                     inherited_to_projects\u003dFalse,"},{"line_number":1527,"context_line":"                     agent_id\u003dNone, redelegated_id\u003dNone):"},{"line_number":1528,"context_line":"        \"\"\"Creates a new delegation."},{"line_number":1529,"context_line":""},{"line_number":1530,"context_line":"        Add agent_id and redelegated_id to the parameters"},{"line_number":1531,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_7aa6a854","line":1528,"range":{"start_line":1528,"start_character":11,"end_line":1528,"end_character":18},"updated":"2016-05-12 09:36:29.000000000","message":"Create","commit_id":"c78020a80534a0ee692296021573350a121a640f"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        # - filtered by domain_id if applicable"},{"line_number":134,"context_line":"        # - filtered by agent_id or its groups"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        _list_agent_role_assignments \u003d functools.partial("},{"line_number":137,"context_line":"            self.list_role_assignments,"},{"line_number":138,"context_line":"            user_id\u003dagent_id,"},{"line_number":139,"context_line":"            project_id\u003dproject_id,"},{"line_number":140,"context_line":"            domain_id\u003ddomain_id,"},{"line_number":141,"context_line":"            effective\u003dTrue,"},{"line_number":142,"context_line":"            strip_domain_roles\u003dFalse"},{"line_number":143,"context_line":"        )"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Traverse role ancestry to find closest delegation candidate"},{"line_number":146,"context_line":"        inference_rules \u003d self.role_api.list_role_inference_rules()"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_a046014d","line":143,"range":{"start_line":136,"start_character":0,"end_line":143,"end_character":9},"updated":"2016-12-20 12:37:36.000000000","message":"what is this (functools.partial) buying us?","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                             \"was already created\"),"},{"line_number":259,"context_line":"                         CONF.member_role_id)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        self.resource_api.get_project(tenant_id)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        self.driver.add_role_to_user_and_project("},{"line_number":264,"context_line":"            user_id,"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_80b90531","line":261,"range":{"start_line":261,"start_character":0,"end_line":261,"end_character":48},"updated":"2016-12-20 12:37:36.000000000","message":"why is this added now ? the whole change in this method seems unrelated","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        self.resource_api.get_project(project_id)"},{"line_number":282,"context_line":"        self.role_api.get_role(role_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        self.driver.add_role_to_user_and_project(user_id, project_id, role_id)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"    def add_role_to_user_and_project(self, user_id, tenant_id, role_id):"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_80902597","line":283,"updated":"2016-12-20 12:37:36.000000000","message":"unrelated","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        if context:"},{"line_number":410,"context_line":"            environment \u003d context.get(\u0027environment\u0027, {})"},{"line_number":411,"context_line":"            auth_context \u003d environment.get(authorization.AUTH_CONTEXT_ENV, {})"},{"line_number":412,"context_line":"            agent_id \u003d auth_context.get(\u0027user_id\u0027)"},{"line_number":413,"context_line":"        else:"},{"line_number":414,"context_line":"            request_context \u003d oslo_context.get_current()"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_40dd2d6f","line":411,"updated":"2016-12-20 12:37:36.000000000","message":"this seems weird we need to look at the environment at the manager level","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"}],"keystone/assignment/role_backends/base.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        raise exception.NotImplemented()  # pragma: no cover"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    def list_role_inference_rules(self):"},{"line_number":267,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_a0e2812d","line":267,"updated":"2016-12-20 12:37:36.000000000","message":"why this change?","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"}],"keystone/common/sql/migrate_repo/versions/067_kilo.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5a18252c_1d391b42","updated":"2016-04-13 01:23:34.000000000","message":"I think you can drop this","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"}],"keystone/common/sql/migrate_repo/versions/073_insert_assignment_inherited_pk.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5a18252c_fd125fb3","updated":"2016-04-13 01:23:34.000000000","message":"I don\u0027t think this file change is anything meaningful","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"}],"keystone/delegation/backends/sql.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    attributes \u003d [\u0027id\u0027, \u0027delegation_id\u0027, \u0027role_id\u0027]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    id \u003d sql.Column(sql.String(64), nullable\u003dFalse, primary_key\u003dTrue,"},{"line_number":47,"context_line":"                    default\u003dlambda: uuid.uuid4().hex)"},{"line_number":48,"context_line":"    delegation_id \u003d sql.Column("},{"line_number":49,"context_line":"        sql.String(64),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_1d875bd8","line":46,"updated":"2016-04-13 01:23:34.000000000","message":"IF these are not going to be exposed to external users, use an integer, not a uuid.","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"d49fab2436d296614ad1305ed55bfd2d47151f97","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    attributes \u003d [\u0027id\u0027, \u0027delegation_id\u0027, \u0027role_id\u0027]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    id \u003d sql.Column(sql.String(64), nullable\u003dFalse, primary_key\u003dTrue,"},{"line_number":47,"context_line":"                    default\u003dlambda: uuid.uuid4().hex)"},{"line_number":48,"context_line":"    delegation_id \u003d sql.Column("},{"line_number":49,"context_line":"        sql.String(64),"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_6a7828c5","line":46,"in_reply_to":"5a18252c_1d875bd8","updated":"2016-04-18 17:01:20.000000000","message":"It will require autoincrement that is hard to scale.","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class AssignmentDriver(assignment_core.AssignmentDriverV9):"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def default_role_driver(self):"},{"line_number":148,"context_line":"        return \u0027sql\u0027"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def default_resource_driver(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_fd609f37","line":147,"updated":"2016-04-13 01:23:34.000000000","message":"these should be in common.config","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        agent_id \u003d context.user"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Find the best match for requested grant to be derived from"},{"line_number":162,"context_line":"        with sql.session_for_read() as session:"},{"line_number":163,"context_line":"            # Find delegations where agent is a trustee and scope matches"},{"line_number":164,"context_line":"            # the requested"},{"line_number":165,"context_line":"            # TODO(amakarov): decide who has the right to inherit a delegation"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_1dd59bb8","line":162,"updated":"2016-04-13 01:23:34.000000000","message":"OK...I see the issues here.  I had always thought that a delegation would be explicitly chosen to extend, but that would not keep the existing API.\nI think this logic belongs in the manager, not in the driver.","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"5eb1eb0974dffe2e85e4af618f74540225990a3f","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        agent_id \u003d context.user"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Find the best match for requested grant to be derived from"},{"line_number":162,"context_line":"        with sql.session_for_read() as session:"},{"line_number":163,"context_line":"            # Find delegations where agent is a trustee and scope matches"},{"line_number":164,"context_line":"            # the requested"},{"line_number":165,"context_line":"            # TODO(amakarov): decide who has the right to inherit a delegation"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_b167feb5","line":162,"in_reply_to":"5a18252c_1dd59bb8","updated":"2016-04-14 18:28:59.000000000","message":"According to mid-cycle agreement I can\u0027t change manager logic.","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            [session.delete(l) for l in links]"},{"line_number":306,"context_line":"            session.delete(delegations[0])"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def add_role_to_user_and_project(self, user_id, tenant_id, role_id):"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        try:"},{"line_number":311,"context_line":"            with sql.session_for_read() as session:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_5dfef338","line":308,"updated":"2016-04-13 01:23:34.000000000","message":"AAAAHHH NO MORE TENANT ID!","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"5eb1eb0974dffe2e85e4af618f74540225990a3f","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            [session.delete(l) for l in links]"},{"line_number":306,"context_line":"            session.delete(delegations[0])"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def add_role_to_user_and_project(self, user_id, tenant_id, role_id):"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        try:"},{"line_number":311,"context_line":"            with sql.session_for_read() as session:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_d1bc3a08","line":308,"in_reply_to":"5a18252c_5dfef338","updated":"2016-04-14 18:28:59.000000000","message":"This is a driver implementation, abstract class daclares this parameter, I should follow...","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"bae76ff8089f7fd8e1a39387c8d50f1f389de7e4","unresolved":false,"context_lines":[{"line_number":381,"context_line":"            result \u003d []"},{"line_number":382,"context_line":"            for inst in q.all():"},{"line_number":383,"context_line":"                entity \u003d {"},{"line_number":384,"context_line":"                    \u0027type\u0027: (assignment_utils.AssignmentType"},{"line_number":385,"context_line":"                             .calculate_type(inst[0].user_id,"},{"line_number":386,"context_line":"                                             inst[0].group_id,"},{"line_number":387,"context_line":"                                             inst[0].project_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_9d8febcb","line":384,"updated":"2016-04-13 01:23:34.000000000","message":"type is a reserved word.  It might have been a mistake to use this.","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"5eb1eb0974dffe2e85e4af618f74540225990a3f","unresolved":false,"context_lines":[{"line_number":381,"context_line":"            result \u003d []"},{"line_number":382,"context_line":"            for inst in q.all():"},{"line_number":383,"context_line":"                entity \u003d {"},{"line_number":384,"context_line":"                    \u0027type\u0027: (assignment_utils.AssignmentType"},{"line_number":385,"context_line":"                             .calculate_type(inst[0].user_id,"},{"line_number":386,"context_line":"                                             inst[0].group_id,"},{"line_number":387,"context_line":"                                             inst[0].project_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_913c82c9","line":384,"in_reply_to":"5a18252c_9d8febcb","updated":"2016-04-14 18:28:59.000000000","message":"I mimic the structure used in existing assignment driver, so I preserve the naming","commit_id":"c9c216ca685f859ea4d97bb7ef634de350458c03"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"568dd0fbed7e64c660b5e7532c59f18df16e2f48","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class RoleDelegationModel(sql.ModelBase):"},{"line_number":40,"context_line":"    \"\"\"Many-to-many table between delegation and role\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    __tablename__ \u003d \u0027role_delegation\u0027"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_ba8bf01d","line":40,"updated":"2016-05-12 09:36:29.000000000","message":"add period","commit_id":"c78020a80534a0ee692296021573350a121a640f"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"568dd0fbed7e64c660b5e7532c59f18df16e2f48","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class DelegationModel(sql.ModelBase, sql.DictBase):"},{"line_number":64,"context_line":"    \"\"\"Unified delegation model"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    \u0027trustor_id\u0027: the user considered the source of delegated rights"},{"line_number":67,"context_line":"    \u0027agent_id\u0027: the creator user of the delegation"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_da77d406","line":64,"updated":"2016-05-12 09:36:29.000000000","message":"++","commit_id":"c78020a80534a0ee692296021573350a121a640f"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"568dd0fbed7e64c660b5e7532c59f18df16e2f48","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    def create_grant(self, role_id, user_id\u003dNone, group_id\u003dNone,"},{"line_number":188,"context_line":"                     domain_id\u003dNone, project_id\u003dNone,"},{"line_number":189,"context_line":"                     inherited_to_projects\u003dFalse):"},{"line_number":190,"context_line":"        \"\"\"Create delegation as an assignment\"\"\""},{"line_number":191,"context_line":"        # Detect the delegating agent"},{"line_number":192,"context_line":"        context \u003d oslo_context.get_current()"},{"line_number":193,"context_line":"        agent_id \u003d context.user"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_fa5d787a","line":190,"updated":"2016-05-12 09:36:29.000000000","message":"++","commit_id":"c78020a80534a0ee692296021573350a121a640f"}],"keystone/tests/unit/test_v3.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c08714aaec9f0cb4a4a84ff5761109a8349e09d9","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                                     domain_id\u003dself.domain_id)"},{"line_number":299,"context_line":"        self.user_id \u003d self.user[\u0027id\u0027]"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        context \u003d oslo_context.context.get_current()"},{"line_number":302,"context_line":"        context.user \u003d self.user_id"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.default_domain_project_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":39,"id":"1a6eadb0_0041750b","line":301,"updated":"2016-12-20 12:37:36.000000000","message":"what is this needed for ?","commit_id":"e531aedcf0bba9069e3908c4e4d620a367e8da31"}]}
