)]}'
{"neutron/db/external_net_db.py":[{"author":{"_account_id":17491,"name":"Lujin Luo","email":"luo.lujin@jp.fujitsu.com","username":"Lujin"},"change_message_id":"3a3b71254067b58b49a3536d2eeb890fe8464253","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                  target_tenant\u003d\u0027*\u0027, tenant_id\u003dnet_data[\u0027tenant_id\u0027]))"},{"line_number":108,"context_line":"        net_data[extnet_apidef.EXTERNAL] \u003d external"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _process_l3_update(self, context, net_data, req_data, allow_all\u003dTrue):"},{"line_number":111,"context_line":"        new_value \u003d req_data.get(extnet_apidef.EXTERNAL)"},{"line_number":112,"context_line":"        net_id \u003d net_data[\u0027id\u0027]"},{"line_number":113,"context_line":"        if not validators.is_attr_set(new_value):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_8b19ac89","line":110,"range":{"start_line":110,"start_character":8,"end_line":110,"end_character":27},"updated":"2018-01-25 01:09:58.000000000","message":"This method is also called from new engine facades in [1]. But get_objects() and get_object() are not using nested transaction, I am not sure if this is still mixing old and new engine facades.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/plugin.py#L894","commit_id":"067309cb2942b1b0e71ad7873f51d47ec63c73f6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ca0d68d2cfe468c630d0114ba0b0e0d6468862e1","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            context,"},{"line_number":202,"context_line":"            device_owner\u003dconstants.DEVICE_OWNER_ROUTER_GW,"},{"line_number":203,"context_line":"            network_id\u003dpolicy[\u0027object_id\u0027])"},{"line_number":204,"context_line":"        gw_ports \u003d [gw_port[0] for gw_port in gw_ports]"},{"line_number":205,"context_line":"        rbac \u003d rbac_db.NetworkRBAC"},{"line_number":206,"context_line":"        if policy[\u0027target_tenant\u0027] !\u003d \u0027*\u0027:"},{"line_number":207,"context_line":"            filters \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_fc3b6bcd","line":204,"updated":"2018-09-09 07:57:59.000000000","message":"can You access elements of each port with indexes?","commit_id":"9fd0b60a0aae5ea4e1fe04f66db8c265b5d5cb29"}],"neutron/objects/base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c3b2471736a640508f7e875b716b0b32a41e2754","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        obj.from_db_object(db_obj)"},{"line_number":498,"context_line":"        # detach the model so that consequent fetches don\u0027t reuse it"},{"line_number":499,"context_line":"        try:"},{"line_number":500,"context_line":"            context.session.expunge(obj.db_obj)"},{"line_number":501,"context_line":"        except sql_exc.InvalidRequestError:"},{"line_number":502,"context_line":"            # already detached"},{"line_number":503,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_52d46020","line":500,"updated":"2018-02-08 01:35:42.000000000","message":"I suspect that\u0027s problematic when session is not active. Can\u0027t we instead check that context.session.is_active is True, and not expunge if it\u0027s False? Or is the reason for the exception something different?","commit_id":"61e710afd523212e7fd669dbf9cef2c0dd1c5c78"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c3b2471736a640508f7e875b716b0b32a41e2754","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        if validate_filters:"},{"line_number":569,"context_line":"            cls.validate_filters(**kwargs)"},{"line_number":570,"context_line":"        if getattr(cls, \u0027flag\u0027, None):"},{"line_number":571,"context_line":"            with db_api.context_manager.reader.using(context):"},{"line_number":572,"context_line":"                db_objs \u003d obj_db_api.get_objects("},{"line_number":573,"context_line":"                    context, cls.db_model, _pager\u003d_pager,"},{"line_number":574,"context_line":"                    flag\u003dgetattr(cls, \u0027flag\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_d2e71012","line":571,"updated":"2018-02-08 01:35:42.000000000","message":"I am working on something to support different engines here: https://review.openstack.org/541512","commit_id":"61e710afd523212e7fd669dbf9cef2c0dd1c5c78"}]}
