)]}'
{"neutron/db/_utils.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        obj \u003d create_fn()"},{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            updated_obj, value \u003d create_bindings(obj[\u0027id\u0027])"},{"line_number":67,"context_line":"            obj \u003d updated_obj if updated_obj else obj"},{"line_number":68,"context_line":"        except Exception:"},{"line_number":69,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":70,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_b2de323b","line":67,"range":{"start_line":67,"start_character":18,"end_line":67,"end_character":53},"updated":"2020-11-16 06:02:40.000000000","message":"nit: updated_obj or obj","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        obj \u003d create_fn()"},{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            updated_obj, value \u003d create_bindings(obj[\u0027id\u0027])"},{"line_number":67,"context_line":"            obj \u003d updated_obj if updated_obj else obj"},{"line_number":68,"context_line":"        except Exception:"},{"line_number":69,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":70,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_5e9d2564","line":67,"range":{"start_line":67,"start_character":18,"end_line":67,"end_character":53},"in_reply_to":"1f621f24_b2de323b","updated":"2020-11-16 11:30:32.000000000","message":"Done","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"82fc460dc571c48a605fe9117ead50ddda487e33","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":21,"context_line":"from neutron_lib.db import utils as db_utils"},{"line_number":22,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import excutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1f621f24_9bdeaa3b","line":22,"updated":"2020-11-16 15:46:54.000000000","message":"pep8: F401 \u0027oslo_db.sqlalchemy.enginefacade\u0027 imported but unused","commit_id":"ceecf7d3d629dd23439d8fc920a193ce90929506"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"02c76138b2e376ca8d90cd8b916880112d96c93e","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":21,"context_line":"from neutron_lib.db import utils as db_utils"},{"line_number":22,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import excutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1f621f24_fecd115d","line":22,"range":{"start_line":22,"start_character":31,"end_line":22,"end_character":43},"updated":"2020-11-16 11:37:06.000000000","message":"seems not used","commit_id":"ceecf7d3d629dd23439d8fc920a193ce90929506"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d196598b0189ec2f91021e94c86370fc0cec4018","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":21,"context_line":"from neutron_lib.db import utils as db_utils"},{"line_number":22,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import excutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1f621f24_c342eb3d","line":22,"range":{"start_line":22,"start_character":31,"end_line":22,"end_character":43},"in_reply_to":"1f621f24_fecd115d","updated":"2020-11-18 10:42:13.000000000","message":"Done","commit_id":"ceecf7d3d629dd23439d8fc920a193ce90929506"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3aa6f7bb7b54d1821d484e95dc323969299199a6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        return (db_api.CONTEXT_WRITER.using(context) if writer else"},{"line_number":38,"context_line":"                db_api.CONTEXT_READER.using(context))"},{"line_number":39,"context_line":"    else:"},{"line_number":40,"context_line":"        _noop_context_manager()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def safe_creation(context, create_fn, delete_fn, create_bindings,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1f621f24_64a32ab3","line":40,"updated":"2020-11-17 05:12:01.000000000","message":"\u0027return\u0027 missed","commit_id":"ceecf7d3d629dd23439d8fc920a193ce90929506"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d196598b0189ec2f91021e94c86370fc0cec4018","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        return (db_api.CONTEXT_WRITER.using(context) if writer else"},{"line_number":38,"context_line":"                db_api.CONTEXT_READER.using(context))"},{"line_number":39,"context_line":"    else:"},{"line_number":40,"context_line":"        _noop_context_manager()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def safe_creation(context, create_fn, delete_fn, create_bindings,"}],"source_content_type":"text/x-python","patch_set":21,"id":"1f621f24_a33d2fbc","line":40,"in_reply_to":"1f621f24_64a32ab3","updated":"2020-11-18 10:42:13.000000000","message":"Done","commit_id":"ceecf7d3d629dd23439d8fc920a193ce90929506"}],"neutron/db/l3_db.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6514138854586cb4a2dc14d47f78a14bad54ce50","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            context.session.flush()"},{"line_number":254,"context_line":"            getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2dfcd770","line":252,"updated":"2020-09-07 19:45:35.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"1dc75991df06c8d218ae7a904ebed7fafe2e503f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6514138854586cb4a2dc14d47f78a14bad54ce50","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            context.session.flush()"},{"line_number":254,"context_line":"            getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_cd0a7b88","line":252,"updated":"2020-09-07 19:45:35.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"1dc75991df06c8d218ae7a904ebed7fafe2e503f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6514138854586cb4a2dc14d47f78a14bad54ce50","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            context.session.flush()"},{"line_number":254,"context_line":"            getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_0d01136b","line":255,"updated":"2020-09-07 19:45:35.000000000","message":"pep8: F841 local variable \u0027a\u0027 is assigned to but never used","commit_id":"1dc75991df06c8d218ae7a904ebed7fafe2e503f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_be1e1db8","line":252,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_5e238105","line":252,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_9e1999d2","line":253,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_fe79b5fb","line":254,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_de7cb1ec","line":255,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":410,"context_line":"    def _create_gw_port(self, context, router_id, router, new_network_id,"},{"line_number":411,"context_line":"                        ext_ips):"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":414,"context_line":"        #context.session.add(router)"},{"line_number":415,"context_line":"        print(\"type(router) \u003d %s\" % type(router))"},{"line_number":416,"context_line":"        new_valid_gw_port_attachment \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_3e804dbf","line":413,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":411,"context_line":"                        ext_ips):"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":414,"context_line":"        #context.session.add(router)"},{"line_number":415,"context_line":"        print(\"type(router) \u003d %s\" % type(router))"},{"line_number":416,"context_line":"        new_valid_gw_port_attachment \u003d ("},{"line_number":417,"context_line":"            new_network_id and"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_1e83c9cc","line":414,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf58317408998850601f902a4c66bfcf4df1737c","unresolved":false,"context_lines":[{"line_number":514,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":515,"context_line":"                             context, resource_id\u003did))"},{"line_number":516,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":517,"context_line":"        #import remote_pdb; remote_pdb.set_trace(port\u003d1234)"},{"line_number":518,"context_line":"        router \u003d self._ensure_router_not_in_use(context, id)"},{"line_number":519,"context_line":"        original \u003d self._make_router_dict(router)"},{"line_number":520,"context_line":"        self._delete_current_gw_port(context, id, router, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_7e6da530","line":517,"updated":"2020-09-10 02:08:43.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"75550eaa323b0a3b0469866a99c0115c8e16d3fd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_2cf32b75","line":252,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_4cee5f8b","line":252,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_8ce4f7a9","line":253,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_6ce9a37d","line":254,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            #context.session.flush()"},{"line_number":254,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":255,"context_line":"            #a \u003d router_db"},{"line_number":256,"context_line":"            # b\u003d1"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_cc01cf3b","line":255,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                         payload\u003devents.DBEventPayload("},{"line_number":512,"context_line":"                             context, resource_id\u003did))"},{"line_number":513,"context_line":"        # TODO(nati) Refactor here when we have router insertion model"},{"line_number":514,"context_line":"        #import remote_pdb; remote_pdb.set_trace(port\u003d1234)"},{"line_number":515,"context_line":"        router \u003d self._ensure_router_not_in_use(context, id)"},{"line_number":516,"context_line":"        original \u003d self._make_router_dict(router)"},{"line_number":517,"context_line":"        self._delete_current_gw_port(context, id, router, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_acfe1b35","line":514,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            # --\u003e inside a transaction, the DB object and the relationships are"},{"line_number":254,"context_line":"            # automatically updated."},{"line_number":255,"context_line":"            #context.session.flush()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_a1cf2f26","line":252,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            router_db \u003d self._get_router(context, router_id)"},{"line_number":250,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":251,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            # --\u003e inside a transaction, the DB object and the relationships are"},{"line_number":254,"context_line":"            # automatically updated."},{"line_number":255,"context_line":"            #context.session.flush()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_c1ca2317","line":252,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            # TODO: here (somehow) we should refresh router_db to populate gw_port"},{"line_number":253,"context_line":"            # --\u003e inside a transaction, the DB object and the relationships are"},{"line_number":254,"context_line":"            # automatically updated."},{"line_number":255,"context_line":"            #context.session.flush()"},{"line_number":256,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":257,"context_line":"            #a \u003d router_db"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_01d89bed","line":255,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            # --\u003e inside a transaction, the DB object and the relationships are"},{"line_number":254,"context_line":"            # automatically updated."},{"line_number":255,"context_line":"            #context.session.flush()"},{"line_number":256,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":257,"context_line":"            #a \u003d router_db"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_e1d487bd","line":256,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            # automatically updated."},{"line_number":255,"context_line":"            #context.session.flush()"},{"line_number":256,"context_line":"            #getattr(router_db, \u0027gw_port\u0027)"},{"line_number":257,"context_line":"            #a \u003d router_db"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":260,"context_line":"    def create_router(self, context, router):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_41de13db","line":257,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                            \u0027subnets\u0027: subnets},"},{"line_number":428,"context_line":"                        resource_id\u003drouter_id))"},{"line_number":429,"context_line":"            except exceptions.CallbackFailure as e:"},{"line_number":430,"context_line":"                # raise the underlying exception"},{"line_number":431,"context_line":"                raise e.errors[0].error"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"            self._check_for_dup_router_subnets(context, router,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_21db1fea","line":430,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                            \u0027subnets\u0027: subnets},"},{"line_number":428,"context_line":"                        resource_id\u003drouter_id))"},{"line_number":429,"context_line":"            except exceptions.CallbackFailure as e:"},{"line_number":430,"context_line":"                # raise the underlying exception"},{"line_number":431,"context_line":"                raise e.errors[0].error"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"            self._check_for_dup_router_subnets(context, router,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_81edcb8f","line":430,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_732c7747","line":295,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                        resource_id\u003drouter_id))"},{"line_number":428,"context_line":"            except exceptions.CallbackFailure as e:"},{"line_number":429,"context_line":"                # raise the underlying exception"},{"line_number":430,"context_line":"                raise e.errors[0].error"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"            self._check_for_dup_router_subnets(context, router,"},{"line_number":433,"context_line":"                                               new_network_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_b31d6f11","line":430,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                        resource_id\u003drouter_id))"},{"line_number":428,"context_line":"            except exceptions.CallbackFailure as e:"},{"line_number":429,"context_line":"                # raise the underlying exception"},{"line_number":430,"context_line":"                raise e.errors[0].error"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"            self._check_for_dup_router_subnets(context, router,"},{"line_number":433,"context_line":"                                               new_network_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_d320eb4c","line":430,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_5f77ae3b","line":295,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_3f747235","line":430,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_9f8e6625","line":430,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_618441b2","line":295,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_a18e59cd","line":430,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_c19395f9","line":430,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_7d3174ec","line":295,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_dd4d2873","line":430,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_acc8f721","line":295,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_8ccd3b33","line":430,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_d2e213a0","line":295,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_b2df97d4","line":430,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    def update_router(self, context, id, router):"},{"line_number":293,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":294,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":295,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":296,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":297,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":298,"context_line":"            self._update_router_gw_info(context, id, gw_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_9ce425e2","line":295,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                                                               new_network_id)"},{"line_number":428,"context_line":"            try:"},{"line_number":429,"context_line":"                registry.publish("},{"line_number":430,"context_line":"                    resources.ROUTER_GATEWAY, events.BEFORE_CREATE, self,"},{"line_number":431,"context_line":"                    payload\u003devents.DBEventPayload("},{"line_number":432,"context_line":"                        context, request_body\u003drouter,"},{"line_number":433,"context_line":"                        metadata\u003d{"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_7ce949b5","line":430,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def _update_gw_for_create_router(self, context, gw_info, router_id):"},{"line_number":248,"context_line":"        if gw_info:"},{"line_number":249,"context_line":"            with db_utils.context_if_transaction("},{"line_number":250,"context_line":"                    context, not context.session.is_active):"},{"line_number":251,"context_line":"                router_db \u003d self._get_router(context, router_id)"},{"line_number":252,"context_line":"            self._update_router_gw_info(context, router_id,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_12dd66df","line":249,"range":{"start_line":249,"start_character":26,"end_line":249,"end_character":48},"updated":"2020-11-16 06:02:40.000000000","message":"this will return CONTEXT_WRITER, is it needed for _get_router()?","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def _update_gw_for_create_router(self, context, gw_info, router_id):"},{"line_number":248,"context_line":"        if gw_info:"},{"line_number":249,"context_line":"            with db_utils.context_if_transaction("},{"line_number":250,"context_line":"                    context, not context.session.is_active):"},{"line_number":251,"context_line":"                router_db \u003d self._get_router(context, router_id)"},{"line_number":252,"context_line":"            self._update_router_gw_info(context, router_id,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_035d1a46","line":249,"range":{"start_line":249,"start_character":26,"end_line":249,"end_character":48},"in_reply_to":"1f621f24_12dd66df","updated":"2020-11-16 11:30:32.000000000","message":"Not really. I\u0027ll update the context method to accept the type of context needed.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    def _update_gw_for_create_router(self, context, gw_info, router_id):"},{"line_number":248,"context_line":"        if gw_info:"},{"line_number":249,"context_line":"            with db_utils.context_if_transaction("},{"line_number":250,"context_line":"                    context, not context.session.is_active):"},{"line_number":251,"context_line":"                router_db \u003d self._get_router(context, router_id)"},{"line_number":252,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":253,"context_line":"                                        gw_info, router\u003drouter_db)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_b25d927a","line":250,"range":{"start_line":250,"start_character":29,"end_line":250,"end_character":32},"updated":"2020-11-16 06:02:40.000000000","message":"seems \u0027not\u0027 shouldn\u0027t be here, or isn\u0027t transaction \u003d\u003d\u003d context.session.is_active?","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    def _update_gw_for_create_router(self, context, gw_info, router_id):"},{"line_number":248,"context_line":"        if gw_info:"},{"line_number":249,"context_line":"            with db_utils.context_if_transaction("},{"line_number":250,"context_line":"                    context, not context.session.is_active):"},{"line_number":251,"context_line":"                router_db \u003d self._get_router(context, router_id)"},{"line_number":252,"context_line":"            self._update_router_gw_info(context, router_id,"},{"line_number":253,"context_line":"                                        gw_info, router\u003drouter_db)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_4328b295","line":250,"range":{"start_line":250,"start_character":29,"end_line":250,"end_character":32},"in_reply_to":"1f621f24_b25d927a","updated":"2020-11-16 11:30:32.000000000","message":"If there is an active session, then we don\u0027t need to create a new transaction (we don\u0027t have nested transactions anymore). It is when we don\u0027t have a transaction in place when we need to open it.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2c608285285725a898f704c72f5d580f811625f6","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            return self._get_router(context, router_id), None"},{"line_number":256,"context_line":"        return None, None"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":259,"context_line":"    def create_router(self, context, router):"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_0986e613","line":256,"updated":"2020-11-13 21:14:59.000000000","message":"This method always returns None as the second argument, why?","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            return self._get_router(context, router_id), None"},{"line_number":256,"context_line":"        return None, None"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":259,"context_line":"    def create_router(self, context, router):"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_92a336b2","line":256,"in_reply_to":"1f621f24_0986e613","updated":"2020-11-16 06:02:40.000000000","message":"+","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                                        gw_info, router\u003drouter_db)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"            return self._get_router(context, router_id), None"},{"line_number":256,"context_line":"        return None, None"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":259,"context_line":"    def create_router(self, context, router):"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_fe3d11bb","line":256,"in_reply_to":"1f621f24_0986e613","updated":"2020-11-16 11:30:32.000000000","message":"Good question. This method is called from \"safe_creation\" [1], as \"create_bindings\" argument. In this patch I\u0027ve updated this method; the function passed as \"create_bindings\" should now return both the updated DB object and the bindings created (if any). In this case there are no bindings to return as in other methods (\"_create_ha_network_tenant_binding\").\n\n[1]https://github.com/openstack/neutron/blob/f6e2c45bcd65a201448340e58b44493075e1b775/neutron/db/_utils.py#L34","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2c608285285725a898f704c72f5d580f811625f6","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        create \u003d functools.partial(self._create_router_db, context, r,"},{"line_number":263,"context_line":"                                   r[\u0027tenant_id\u0027])"},{"line_number":264,"context_line":"        delete \u003d functools.partial(self.delete_router, context)"},{"line_number":265,"context_line":"        update_gw \u003d functools.partial(self._update_gw_for_create_router,"},{"line_number":266,"context_line":"                                      context, gw_info)"},{"line_number":267,"context_line":"        router_db, _unused \u003d db_utils.safe_creation(context, create,"},{"line_number":268,"context_line":"                                                    delete, update_gw,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_a976d23c","line":265,"updated":"2020-11-13 21:14:59.000000000","message":"And this is the only caller of above?","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        create \u003d functools.partial(self._create_router_db, context, r,"},{"line_number":263,"context_line":"                                   r[\u0027tenant_id\u0027])"},{"line_number":264,"context_line":"        delete \u003d functools.partial(self.delete_router, context)"},{"line_number":265,"context_line":"        update_gw \u003d functools.partial(self._update_gw_for_create_router,"},{"line_number":266,"context_line":"                                      context, gw_info)"},{"line_number":267,"context_line":"        router_db, _unused \u003d db_utils.safe_creation(context, create,"},{"line_number":268,"context_line":"                                                    delete, update_gw,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_1e6c4dcc","line":265,"in_reply_to":"1f621f24_a976d23c","updated":"2020-11-16 11:30:32.000000000","message":"It is, but as explained before, we need this second parameter to be None always.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        gw_port_id \u003d router.gw_port[\u0027id\u0027]"},{"line_number":383,"context_line":"        self._delete_router_gw_port_db(context, router)"},{"line_number":384,"context_line":"        if admin_ctx.session.is_active:"},{"line_number":385,"context_line":"            admin_ctx.GUARD_TRANSACTION \u003d False"},{"line_number":386,"context_line":"        self._core_plugin.delete_port("},{"line_number":387,"context_line":"            admin_ctx, gw_port_id, l3_port_check\u003dFalse)"},{"line_number":388,"context_line":"        # TODO(boden): normalize metadata"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_d2e80e7d","line":385,"range":{"start_line":385,"start_character":12,"end_line":385,"end_character":47},"updated":"2020-11-16 06:02:40.000000000","message":"is it similar exception as 315-320?","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        gw_port_id \u003d router.gw_port[\u0027id\u0027]"},{"line_number":383,"context_line":"        self._delete_router_gw_port_db(context, router)"},{"line_number":384,"context_line":"        if admin_ctx.session.is_active:"},{"line_number":385,"context_line":"            admin_ctx.GUARD_TRANSACTION \u003d False"},{"line_number":386,"context_line":"        self._core_plugin.delete_port("},{"line_number":387,"context_line":"            admin_ctx, gw_port_id, l3_port_check\u003dFalse)"},{"line_number":388,"context_line":"        # TODO(boden): normalize metadata"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_9e9dfdbd","line":385,"range":{"start_line":385,"start_character":12,"end_line":385,"end_character":47},"in_reply_to":"1f621f24_d2e80e7d","updated":"2020-11-16 11:30:32.000000000","message":"It is the same. I\u0027ll add a comment here because this action should be notice at least.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"}],"neutron/db/l3_gateway_ip_qos.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _update_router_gw_info(self, context, router_id, info, router\u003dNone):"},{"line_number":64,"context_line":"        # Calls superclass, pass router db object for avoiding re-loading"},{"line_number":65,"context_line":"        #with db_api.CONTEXT_WRITER.using(context):"},{"line_number":66,"context_line":"        router \u003d super(L3_gw_ip_qos_dbonly_mixin,"},{"line_number":67,"context_line":"                       self)._update_router_gw_info("},{"line_number":68,"context_line":"            context, router_id, info, router)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_3ce351db","line":65,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/db/l3_gwmode_db.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def _update_router_gw_info(self, context, router_id, info, router\u003dNone):"},{"line_number":60,"context_line":"        # Load the router only if necessary"},{"line_number":61,"context_line":"        with db_api.CONTEXT_WRITER.using(context):"},{"line_number":62,"context_line":"            #RAH: delete"},{"line_number":63,"context_line":"            #if not router:"},{"line_number":64,"context_line":"            router \u003d self._get_router(context, router_id)"},{"line_number":65,"context_line":"            old_router \u003d self._make_router_dict(router)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_52cf2328","line":62,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Load the router only if necessary"},{"line_number":61,"context_line":"        with db_api.CONTEXT_WRITER.using(context):"},{"line_number":62,"context_line":"            #RAH: delete"},{"line_number":63,"context_line":"            #if not router:"},{"line_number":64,"context_line":"            router \u003d self._get_router(context, router_id)"},{"line_number":65,"context_line":"            old_router \u003d self._make_router_dict(router)"},{"line_number":66,"context_line":"            router.enable_snat \u003d self._get_enable_snat(info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_32d427bd","line":63,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            context, router_id, info, router\u003drouter)"},{"line_number":78,"context_line":"        # Returning the router might come back useful if this"},{"line_number":79,"context_line":"        # method is overridden in child classes"},{"line_number":80,"context_line":"        #return router"},{"line_number":81,"context_line":"        return self._get_router(context, router_id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_92dc1be5","line":80,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        return self._get_router(context, router_id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @staticmethod"},{"line_number":85,"context_line":"    def _get_enable_snat(info):"},{"line_number":86,"context_line":"        if info and \u0027enable_snat\u0027 in info:"},{"line_number":87,"context_line":"            return info[\u0027enable_snat\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_72d97ff1","line":84,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            context, router_id, info, router\u003drouter)"},{"line_number":76,"context_line":"        # Returning the router might come back useful if this"},{"line_number":77,"context_line":"        # method is overridden in child classes"},{"line_number":78,"context_line":"        #return router"},{"line_number":79,"context_line":"        return self._get_router(context, router_id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_fcbf19a7","line":78,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return self._get_router(context, router_id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @staticmethod"},{"line_number":83,"context_line":"    def _get_enable_snat(info):"},{"line_number":84,"context_line":"        if info and \u0027enable_snat\u0027 in info:"},{"line_number":85,"context_line":"            return info[\u0027enable_snat\u0027]"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_5cde0d11","line":82,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            })"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _update_router_gw_info(self, context, router_id, info, router\u003dNone):"},{"line_number":59,"context_line":"        # Load the router only if necessary"},{"line_number":60,"context_line":"        if not router:"},{"line_number":61,"context_line":"            router \u003d self._get_router(context, router_id)"},{"line_number":62,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":63,"context_line":"            old_router \u003d self._make_router_dict(router)"}],"source_content_type":"text/x-python","patch_set":23,"id":"dac3a30e_4ff18103","side":"PARENT","line":60,"range":{"start_line":59,"start_character":8,"end_line":60,"end_character":22},"updated":"2020-11-23 03:46:54.000000000","message":"This can be added to right side to aviod one potential db query?","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            })"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def _update_router_gw_info(self, context, router_id, info, router\u003dNone):"},{"line_number":59,"context_line":"        # Load the router only if necessary"},{"line_number":60,"context_line":"        if not router:"},{"line_number":61,"context_line":"            router \u003d self._get_router(context, router_id)"},{"line_number":62,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":63,"context_line":"            old_router \u003d self._make_router_dict(router)"}],"source_content_type":"text/x-python","patch_set":23,"id":"6ba527e2_be2933d7","side":"PARENT","line":60,"range":{"start_line":59,"start_character":8,"end_line":60,"end_character":22},"in_reply_to":"dac3a30e_4ff18103","updated":"2020-11-24 09:20:20.000000000","message":"No, we need to reload the content of the router DB object in this new context. That\u0027s why I force the retrieval in L62.","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"}],"neutron/db/l3_hamode_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2c608285285725a898f704c72f5d580f811625f6","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            # and the process is started over where the existing"},{"line_number":204,"context_line":"            # network will be selected."},{"line_number":205,"context_line":"            raise db_exc.DBDuplicateEntry(columns\u003d[\u0027tenant_id\u0027])"},{"line_number":206,"context_line":"        return None, ha_network"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _add_ha_network_settings(self, network):"},{"line_number":209,"context_line":"        if cfg.CONF.l3_ha_network_type:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_89a676aa","line":206,"updated":"2020-11-13 21:14:59.000000000","message":"Why a tuple here with None?  Same below.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            # and the process is started over where the existing"},{"line_number":204,"context_line":"            # network will be selected."},{"line_number":205,"context_line":"            raise db_exc.DBDuplicateEntry(columns\u003d[\u0027tenant_id\u0027])"},{"line_number":206,"context_line":"        return None, ha_network"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _add_ha_network_settings(self, network):"},{"line_number":209,"context_line":"        if cfg.CONF.l3_ha_network_type:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_fe919153","line":206,"in_reply_to":"1f621f24_89a676aa","updated":"2020-11-16 11:30:32.000000000","message":"Same comment as in https://review.opendev.org/#/c/715315/20/neutron/db/l3_db.py@256\n\nWe need to return the updated object if the object has been updated (not in this case) and the bindings.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"}],"neutron/db/ovn_revision_numbers_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    message \u003d \u0027Uknown resource type: %(resource_type)s\u0027"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"def _get_standard_attr_id(context, resource_uuid, resource_type,"},{"line_number":92,"context_line":"                          resource\u003dNone):"},{"line_number":93,"context_line":"    # if resource and \u0027standard_attr_id\u0027 in resource:"},{"line_number":94,"context_line":"    #     return resource[\u0027standard_attr_id\u0027]"},{"line_number":95,"context_line":"    try:"},{"line_number":96,"context_line":"        row \u003d context.session.query(STD_ATTR_MAP[resource_type]).filter_by("},{"line_number":97,"context_line":"            id\u003dresource_uuid).one()"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_7f063f54","line":94,"range":{"start_line":91,"start_character":0,"end_line":94,"end_character":45},"updated":"2020-11-12 14:36:17.000000000","message":"TODO: remove \"resource\" parameter; this is a leftover of a failed approach.","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":103,"context_line":"@db_api.retry_if_session_inactive()"},{"line_number":104,"context_line":"def create_initial_revision(context, resource_uuid, resource_type,"},{"line_number":105,"context_line":"                            revision_number\u003dINITIAL_REV_NUM,"},{"line_number":106,"context_line":"                            may_exist\u003dFalse, resource\u003dNone):"},{"line_number":107,"context_line":"    LOG.debug(\u0027create_initial_revision uuid\u003d%s, type\u003d%s, rev\u003d%s\u0027,"},{"line_number":108,"context_line":"              resource_uuid, resource_type, revision_number)"},{"line_number":109,"context_line":"    db_func \u003d context.session.merge if may_exist else context.session.add"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_5f01c337","line":106,"range":{"start_line":106,"start_character":45,"end_line":106,"end_character":53},"updated":"2020-11-12 14:36:17.000000000","message":"ditto","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    db_func \u003d context.session.merge if may_exist else context.session.add"},{"line_number":110,"context_line":"    with db_api.CONTEXT_WRITER.using(context):"},{"line_number":111,"context_line":"        std_attr_id \u003d _get_standard_attr_id("},{"line_number":112,"context_line":"            context, resource_uuid, resource_type, resource\u003dresource)"},{"line_number":113,"context_line":"        row \u003d ovn_models.OVNRevisionNumbers("},{"line_number":114,"context_line":"            resource_uuid\u003dresource_uuid, resource_type\u003dresource_type,"},{"line_number":115,"context_line":"            standard_attr_id\u003dstd_attr_id, revision_number\u003drevision_number)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_9ff7db59","line":112,"range":{"start_line":112,"start_character":51,"end_line":112,"end_character":59},"updated":"2020-11-12 14:36:17.000000000","message":"ditto","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    with db_api.CONTEXT_WRITER.using(context):"},{"line_number":170,"context_line":"        _ensure_revision_row_exist(context, resource, resource_type)"},{"line_number":171,"context_line":"        std_attr_id \u003d _get_standard_attr_id("},{"line_number":172,"context_line":"            context, resource[\u0027id\u0027], resource_type, resource\u003dresource)"},{"line_number":173,"context_line":"        row \u003d context.session.merge(ovn_models.OVNRevisionNumbers("},{"line_number":174,"context_line":"            standard_attr_id\u003dstd_attr_id, resource_uuid\u003dresource[\u0027id\u0027],"},{"line_number":175,"context_line":"            resource_type\u003dresource_type))"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_ff97efea","line":172,"range":{"start_line":172,"start_character":52,"end_line":172,"end_character":60},"updated":"2020-11-12 14:36:17.000000000","message":"ditto","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"}],"neutron/objects/base.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_df83be03","line":574,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_bf88821f","line":576,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_1f7d361c","line":581,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_ff795a2f","line":583,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_c181d591","line":574,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_a17c99b5","line":576,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_014d8d99","line":581,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_e14fb18f","line":583,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_5a0e3e3b","line":574,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_3a09c230","line":576,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_9a08d62c","line":581,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_7a033a10","line":583,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ccd3b3d4","line":574,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_2cdce7e2","line":576,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_0cd92bf2","line":581,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_6ce25fa2","line":583,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_b21cb7c1","line":574,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_127bebf4","line":576,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_f27f4fdd","line":581,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_5281e3c2","line":583,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":571,"context_line":"    @classmethod"},{"line_number":572,"context_line":"    def db_context_writer(cls, context):"},{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_dc3fbd22","line":574,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        \"\"\"Return read-write session activation decorator.\"\"\""},{"line_number":574,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":575,"context_line":"        return db_api.CONTEXT_WRITER.using(context)"},{"line_number":576,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_bc3c812f","line":576,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":578,"context_line":"    @classmethod"},{"line_number":579,"context_line":"    def db_context_reader(cls, context):"},{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_1c4655c1","line":581,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        \"\"\"Return read-only session activation decorator.\"\"\""},{"line_number":581,"context_line":"        #if cls.new_facade or cls._use_db_facade(context):"},{"line_number":582,"context_line":"        return db_api.CONTEXT_READER.using(context)"},{"line_number":583,"context_line":"        #return db_api.autonested_transaction(context.session)"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @classmethod"},{"line_number":586,"context_line":"    def get_object(cls, context, fields\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_fc4279aa","line":583,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/objects/l3_hamode.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":40,"context_line":"    fields_no_update \u003d [\u0027router_id\u0027, \u0027port_id\u0027, \u0027l3_agent_id\u0027]"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @classmethod"},{"line_number":43,"context_line":"    def get_l3ha_filter_host_router(cls, context, router_ids, host):"}],"source_content_type":"text/x-python","patch_set":23,"id":"4bc0d1c7_9ceef46d","side":"PARENT","line":40,"range":{"start_line":40,"start_character":46,"end_line":40,"end_character":62},"updated":"2020-11-23 03:46:54.000000000","message":"Why this is removed?","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    }"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    primary_keys \u003d [\u0027port_id\u0027]"},{"line_number":40,"context_line":"    fields_no_update \u003d [\u0027router_id\u0027, \u0027port_id\u0027, \u0027l3_agent_id\u0027]"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @classmethod"},{"line_number":43,"context_line":"    def get_l3ha_filter_host_router(cls, context, router_ids, host):"}],"source_content_type":"text/x-python","patch_set":23,"id":"fa1c3627_3275b576","side":"PARENT","line":40,"range":{"start_line":40,"start_character":46,"end_line":40,"end_character":62},"in_reply_to":"4bc0d1c7_9ceef46d","updated":"2020-11-24 09:20:20.000000000","message":"Answered in https://review.opendev.org/c/openstack/neutron/+/715315/23/neutron/scheduler/l3_agent_scheduler.py#293","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":802,"context_line":"        if port_binding:"},{"line_number":803,"context_line":"            plugin._update_port_dict_binding(port_res, port_binding)"},{"line_number":804,"context_line":""},{"line_number":805,"context_line":"    # @staticmethod"},{"line_number":806,"context_line":"    # @resource_extend.extends([port_def.COLLECTION_NAME])"},{"line_number":807,"context_line":"    # def _ml2_extend_port_dict_standard_attr(port_res, port_db):"},{"line_number":808,"context_line":"    #     if isinstance(port_db, models_v2.Port):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_7f791fc6","line":805,"updated":"2020-11-12 14:36:17.000000000","message":"TODO: remove","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"}],"neutron/quota/resource.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            obj_count_getter \u003d getattr(plugins[pname], count_getter_name)"},{"line_number":44,"context_line":"            return obj_count_getter("},{"line_number":45,"context_line":"                context, filters\u003d{\u0027tenant_id\u0027: [tenant_id]})"},{"line_number":46,"context_line":"        except (NotImplementedError, AttributeError) as exc:"},{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                obj_getter \u003d getattr(plugins[pname], getter_name)"},{"line_number":49,"context_line":"                obj_list \u003d obj_getter("}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_01bf4d61","line":46,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: F841 local variable \u0027exc\u0027 is assigned to but never used","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            obj_count_getter \u003d getattr(plugins[pname], count_getter_name)"},{"line_number":44,"context_line":"            return obj_count_getter("},{"line_number":45,"context_line":"                context, filters\u003d{\u0027tenant_id\u0027: [tenant_id]})"},{"line_number":46,"context_line":"        except (NotImplementedError, AttributeError) as exc:"},{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                obj_getter \u003d getattr(plugins[pname], getter_name)"},{"line_number":49,"context_line":"                obj_list \u003d obj_getter("}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_bd502c0c","line":46,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: F841 local variable \u0027exc\u0027 is assigned to but never used","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            obj_count_getter \u003d getattr(plugins[pname], count_getter_name)"},{"line_number":44,"context_line":"            return obj_count_getter("},{"line_number":45,"context_line":"                context, filters\u003d{\u0027tenant_id\u0027: [tenant_id]})"},{"line_number":46,"context_line":"        except (NotImplementedError, AttributeError) as exc:"},{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                obj_getter \u003d getattr(plugins[pname], getter_name)"},{"line_number":49,"context_line":"                obj_list \u003d obj_getter("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ecce6f2b","line":46,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: F841 local variable \u0027exc\u0027 is assigned to but never used","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            obj_count_getter \u003d getattr(plugins[pname], count_getter_name)"},{"line_number":44,"context_line":"            return obj_count_getter("},{"line_number":45,"context_line":"                context, filters\u003d{\u0027tenant_id\u0027: [tenant_id]})"},{"line_number":46,"context_line":"        except (NotImplementedError, AttributeError) as exc:"},{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                obj_getter \u003d getattr(plugins[pname], getter_name)"},{"line_number":49,"context_line":"                obj_list \u003d obj_getter("}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_3286e7dc","line":46,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: F841 local variable \u0027exc\u0027 is assigned to but never used","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            obj_count_getter \u003d getattr(plugins[pname], count_getter_name)"},{"line_number":44,"context_line":"            return obj_count_getter("},{"line_number":45,"context_line":"                context, filters\u003d{\u0027tenant_id\u0027: [tenant_id]})"},{"line_number":46,"context_line":"        except (NotImplementedError, AttributeError) as exc:"},{"line_number":47,"context_line":"            try:"},{"line_number":48,"context_line":"                obj_getter \u003d getattr(plugins[pname], getter_name)"},{"line_number":49,"context_line":"                obj_list \u003d obj_getter("}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_dcd17dfd","line":46,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: F841 local variable \u0027exc\u0027 is assigned to but never used","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/scheduler/l3_agent_scheduler.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from neutron.conf.db import l3_hamode_db"},{"line_number":32,"context_line":"from neutron.db.models import l3agent as rb_model"},{"line_number":33,"context_line":"from neutron.objects import l3agent as rb_obj"},{"line_number":34,"context_line":"from neutron.objects import l3_hamode as l3_hamode_obj"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_e1c171e6","line":34,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.l3agent, neutron.objects.l3_hamode)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from neutron.conf.db import l3_hamode_db"},{"line_number":32,"context_line":"from neutron.db.models import l3agent as rb_model"},{"line_number":33,"context_line":"from neutron.objects import l3agent as rb_obj"},{"line_number":34,"context_line":"from neutron.objects import l3_hamode as l3_hamode_obj"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_9d3610e6","line":34,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.l3agent, neutron.objects.l3_hamode)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from neutron.conf.db import l3_hamode_db"},{"line_number":32,"context_line":"from neutron.db.models import l3agent as rb_model"},{"line_number":33,"context_line":"from neutron.objects import l3agent as rb_obj"},{"line_number":34,"context_line":"from neutron.objects import l3_hamode as l3_hamode_obj"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_0c876bb7","line":34,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.l3agent, neutron.objects.l3_hamode)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from neutron.conf.db import l3_hamode_db"},{"line_number":32,"context_line":"from neutron.db.models import l3agent as rb_model"},{"line_number":33,"context_line":"from neutron.objects import l3agent as rb_obj"},{"line_number":34,"context_line":"from neutron.objects import l3_hamode as l3_hamode_obj"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_d21fb3b4","line":34,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.l3agent, neutron.objects.l3_hamode)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from neutron.conf.db import l3_hamode_db"},{"line_number":32,"context_line":"from neutron.db.models import l3agent as rb_model"},{"line_number":33,"context_line":"from neutron.objects import l3agent as rb_obj"},{"line_number":34,"context_line":"from neutron.objects import l3_hamode as l3_hamode_obj"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_7c37894e","line":34,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.l3agent, neutron.objects.l3_hamode)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":290,"context_line":"                    l3_hamode_obj.L3HARouterAgentPortBinding.get_object("},{"line_number":291,"context_line":"                        context, port_id\u003dport_binding[\u0027port_id\u0027]))"},{"line_number":292,"context_line":"                port_binding.l3_agent_id \u003d agent[\u0027id\u0027]"},{"line_number":293,"context_line":"                port_binding.update()"},{"line_number":294,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":295,"context_line":"            LOG.debug(\"Router %(router)s already scheduled for agent \""},{"line_number":296,"context_line":"                      \"%(agent)s\", {\u0027router\u0027: router_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba1c9d94_8a465670","line":293,"range":{"start_line":293,"start_character":16,"end_line":293,"end_character":37},"updated":"2020-11-23 03:46:54.000000000","message":"So remove the l3_agent_id from the \"fields_no_update\" is because of this update?","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":true,"context_lines":[{"line_number":290,"context_line":"                    l3_hamode_obj.L3HARouterAgentPortBinding.get_object("},{"line_number":291,"context_line":"                        context, port_id\u003dport_binding[\u0027port_id\u0027]))"},{"line_number":292,"context_line":"                port_binding.l3_agent_id \u003d agent[\u0027id\u0027]"},{"line_number":293,"context_line":"                port_binding.update()"},{"line_number":294,"context_line":"        except db_exc.DBDuplicateEntry:"},{"line_number":295,"context_line":"            LOG.debug(\"Router %(router)s already scheduled for agent \""},{"line_number":296,"context_line":"                      \"%(agent)s\", {\u0027router\u0027: router_id,"}],"source_content_type":"text/x-python","patch_set":23,"id":"51ba26e4_c05b1ec3","line":293,"range":{"start_line":293,"start_character":16,"end_line":293,"end_character":37},"in_reply_to":"ba1c9d94_8a465670","updated":"2020-11-24 09:20:20.000000000","message":"Exactly: we can have a port binding object with a port and a router (those two elements constitute the binding). The L3 agent is not part of the binding between a port and a router, is just extra information. Besides the agent assignation is done after the port binding object is created, when creating the HA port.","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"}],"neutron/services/ovn_l3/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":271,"context_line":"    def update_floatingip_status(self, context, floatingip_id, status):"},{"line_number":272,"context_line":"        fip \u003d super(OVNL3RouterPlugin, self).update_floatingip_status("},{"line_number":273,"context_line":"            context, floatingip_id, status)"},{"line_number":274,"context_line":"        # TODO(ralonsoh): only pass FIP dict."},{"line_number":275,"context_line":"        self._ovn_client.update_floatingip_status(context, fip)"},{"line_number":276,"context_line":"        return fip"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_5f7423cf","line":274,"updated":"2020-11-12 14:36:17.000000000","message":"TODO: remove","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"}],"neutron/services/portforwarding/pf_plugin.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dc2ccc00c5ecd6ccf972337f0e320bc9bb681c0a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                raise lib_exc.BadRequest(resource\u003dapidef.RESOURCE_NAME,"},{"line_number":383,"context_line":"                                         msg\u003dmessage)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        registry.notify(pf_consts.PORT_FORWARDING, events.AFTER_CREATE,"},{"line_number":386,"context_line":"                        self,"},{"line_number":387,"context_line":"                        payload\u003d[callbacks.PortForwardingPayload(context,"},{"line_number":388,"context_line":"                            current_pf\u003dpf_obj)])"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if self._rpc_notifications_required:"},{"line_number":391,"context_line":"            self.push_api.push(context, [pf_obj], rpc_events.CREATED)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_b23c72e1","line":388,"range":{"start_line":385,"start_character":8,"end_line":388,"end_character":48},"updated":"2020-11-16 06:02:40.000000000","message":"shouldn\u0027t errors in corresponding callbacks lead to rollback? Just making sure it\u0027s not an accidental change","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b948a0999bcbeeee7d47432a78c79a5eaa6cf5ba","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                raise lib_exc.BadRequest(resource\u003dapidef.RESOURCE_NAME,"},{"line_number":383,"context_line":"                                         msg\u003dmessage)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        registry.notify(pf_consts.PORT_FORWARDING, events.AFTER_CREATE,"},{"line_number":386,"context_line":"                        self,"},{"line_number":387,"context_line":"                        payload\u003d[callbacks.PortForwardingPayload(context,"},{"line_number":388,"context_line":"                            current_pf\u003dpf_obj)])"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if self._rpc_notifications_required:"},{"line_number":391,"context_line":"            self.push_api.push(context, [pf_obj], rpc_events.CREATED)"}],"source_content_type":"text/x-python","patch_set":20,"id":"1f621f24_deb015e0","line":388,"range":{"start_line":385,"start_character":8,"end_line":388,"end_character":48},"in_reply_to":"1f621f24_b23c72e1","updated":"2020-11-16 11:30:32.000000000","message":"Yes but with the PRECOMMIT_CREATE event, not the AFTER_CREATE event. This event should be sent once the object is created and consolidated in the DB, not during the transaction. If any operation should be done to the object, that should be accomplished by the subscribers. But at this point, when this event is sent, the object should be consolidated. \n\nThis method was incorrectly included inside the txn.","commit_id":"7a73db91badc585f58db4526f86e158d4a3f9eba"}],"neutron/tests/fullstack/test_dhcp_agent.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":225,"context_line":"            ))"},{"line_number":226,"context_line":"        self._simulate_concurrent_requests_process_and_raise(funcs, args)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    def test_dhcp_agent_ha_with_race_condition(self):"},{"line_number":229,"context_line":"        # NOTE(ralonsoh): the concurrent creation in the same thread could"},{"line_number":230,"context_line":"        # fail because the context and the session is the same for all DB"},{"line_number":231,"context_line":"        # calls."},{"line_number":232,"context_line":"        network_dhcp_agents \u003d self.client.list_dhcp_agent_hosting_networks("},{"line_number":233,"context_line":"            self.network[\u0027id\u0027])[\u0027agents\u0027]"},{"line_number":234,"context_line":"        self.assertEqual(1, len(network_dhcp_agents))"}],"source_content_type":"text/x-python","patch_set":23,"id":"4247938e_6b413b69","line":231,"range":{"start_line":228,"start_character":4,"end_line":231,"end_character":16},"updated":"2020-11-23 03:46:54.000000000","message":"So maybe we cloud mark this case as unstable?","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":true,"context_lines":[{"line_number":225,"context_line":"            ))"},{"line_number":226,"context_line":"        self._simulate_concurrent_requests_process_and_raise(funcs, args)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    def test_dhcp_agent_ha_with_race_condition(self):"},{"line_number":229,"context_line":"        # NOTE(ralonsoh): the concurrent creation in the same thread could"},{"line_number":230,"context_line":"        # fail because the context and the session is the same for all DB"},{"line_number":231,"context_line":"        # calls."},{"line_number":232,"context_line":"        network_dhcp_agents \u003d self.client.list_dhcp_agent_hosting_networks("},{"line_number":233,"context_line":"            self.network[\u0027id\u0027])[\u0027agents\u0027]"},{"line_number":234,"context_line":"        self.assertEqual(1, len(network_dhcp_agents))"}],"source_content_type":"text/x-python","patch_set":23,"id":"cb4ef26e_319f441e","line":231,"range":{"start_line":228,"start_character":4,"end_line":231,"end_character":16},"in_reply_to":"4247938e_6b413b69","updated":"2020-11-24 09:20:20.000000000","message":"I would prefer to add the NOTE for now. If I\u0027m wrong and this is not unstable, I\u0027ll remove it.","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"}],"neutron/tests/functional/services/portforwarding/test_port_forwarding.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                          self.pf_plugin.delete_floatingip_port_forwarding,"},{"line_number":387,"context_line":"                          self.context, res[\u0027id\u0027], uuidutils.generate_uuid())"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    # NOTE(ralonsoh): we cannot simulate nested transactions with the new DB"},{"line_number":390,"context_line":"    # facade. Once one of the session context finishes, the other thread"},{"line_number":391,"context_line":"    # has its context (the same one) closed."},{"line_number":392,"context_line":"    # def test_concurrent_create_port_forwarding_delete_fip(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_3f45e770","line":389,"updated":"2020-11-12 14:36:17.000000000","message":"QUESTION: what should we do with those tests?","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"0957aa9b23426771ccdfdeba963ec173c620d6d4","unresolved":false,"context_lines":[{"line_number":392,"context_line":"    # def test_concurrent_create_port_forwarding_delete_fip(self):"},{"line_number":393,"context_line":"    # def test_concurrent_create_port_forwarding_update_fip(self):"},{"line_number":394,"context_line":"    # def test_concurrent_create_port_forwarding_update_port(self):"},{"line_number":395,"context_line":"    # def test_concurrent_create_port_forwarding_delete_port(self):"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def test_create_floatingip_port_forwarding_port_in_use(self):"},{"line_number":398,"context_line":"        res \u003d self.pf_plugin.create_floatingip_port_forwarding("}],"source_content_type":"text/x-python","patch_set":22,"id":"fffc6b78_d8bbe50b","line":395,"updated":"2020-11-18 21:47:03.000000000","message":"do we need those commented lines here?","commit_id":"bdd5b8ac3c5a512c41310d4366e3e4fccfc4ce62"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5c197f7d9fa85e7b857414ab63d24b0eac212f2f","unresolved":false,"context_lines":[{"line_number":392,"context_line":"    # def test_concurrent_create_port_forwarding_delete_fip(self):"},{"line_number":393,"context_line":"    # def test_concurrent_create_port_forwarding_update_fip(self):"},{"line_number":394,"context_line":"    # def test_concurrent_create_port_forwarding_update_port(self):"},{"line_number":395,"context_line":"    # def test_concurrent_create_port_forwarding_delete_port(self):"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def test_create_floatingip_port_forwarding_port_in_use(self):"},{"line_number":398,"context_line":"        res \u003d self.pf_plugin.create_floatingip_port_forwarding("}],"source_content_type":"text/x-python","patch_set":22,"id":"fffc6b78_3d45aab4","line":395,"in_reply_to":"fffc6b78_d8bbe50b","updated":"2020-11-20 11:35:40.000000000","message":"Not anymore. I left them just to make it visible that we cannot reproduce those tests anymore. Now we don\u0027t have subnested transactions, one thread will be able to execute one single transaction. When one of the greenlets closes the transaction, the session is closed in the other one.","commit_id":"bdd5b8ac3c5a512c41310d4366e3e4fccfc4ce62"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8eb57758436a986a7b60b013f8eadc10b398fc53","unresolved":false,"context_lines":[{"line_number":392,"context_line":"    # def test_concurrent_create_port_forwarding_delete_fip(self):"},{"line_number":393,"context_line":"    # def test_concurrent_create_port_forwarding_update_fip(self):"},{"line_number":394,"context_line":"    # def test_concurrent_create_port_forwarding_update_port(self):"},{"line_number":395,"context_line":"    # def test_concurrent_create_port_forwarding_delete_port(self):"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def test_create_floatingip_port_forwarding_port_in_use(self):"},{"line_number":398,"context_line":"        res \u003d self.pf_plugin.create_floatingip_port_forwarding("}],"source_content_type":"text/x-python","patch_set":22,"id":"fffc6b78_fbccca62","line":395,"in_reply_to":"fffc6b78_d8bbe50b","updated":"2020-11-21 21:08:49.000000000","message":"That was only to make this visible: we need to remove those tests because we don\u0027t have nested transactions anymore. We can execute them using the same thread: there","commit_id":"bdd5b8ac3c5a512c41310d4366e3e4fccfc4ce62"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":407,"context_line":"        funcs.reverse()"},{"line_number":408,"context_line":"        args_list.reverse()"},{"line_number":409,"context_line":"        self.assertRaises(lib_l3_exc.FloatingIPNotFound,"},{"line_number":410,"context_line":"                          self._simulate_concurrent_requests_process_and_raise,"},{"line_number":411,"context_line":"                          funcs, args_list)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def test_concurrent_create_port_forwarding_update_fip(self):"}],"source_content_type":"text/x-python","patch_set":23,"id":"70394062_61ad901e","side":"PARENT","line":410,"range":{"start_line":410,"start_character":31,"end_line":410,"end_character":78},"updated":"2020-11-23 03:46:54.000000000","message":"Where is the removal of this function? IMO all these cases should be removed there.\nBut the more I may concern why the simulating is not achievable?","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":true,"context_lines":[{"line_number":407,"context_line":"        funcs.reverse()"},{"line_number":408,"context_line":"        args_list.reverse()"},{"line_number":409,"context_line":"        self.assertRaises(lib_l3_exc.FloatingIPNotFound,"},{"line_number":410,"context_line":"                          self._simulate_concurrent_requests_process_and_raise,"},{"line_number":411,"context_line":"                          funcs, args_list)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def test_concurrent_create_port_forwarding_update_fip(self):"}],"source_content_type":"text/x-python","patch_set":23,"id":"64fb7732_d1567f21","side":"PARENT","line":410,"range":{"start_line":410,"start_character":31,"end_line":410,"end_character":78},"in_reply_to":"70394062_61ad901e","updated":"2020-11-24 09:20:20.000000000","message":"That was commented in PS22: https://review.opendev.org/c/openstack/neutron/+/715315/22/neutron/tests/functional/services/portforwarding/test_port_forwarding.py#395","commit_id":"c2e39c2ce92e5bde86c63c8e4a89616060bfd6b8"}],"neutron/tests/unit/db/test_l3_db.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":310,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":311,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":312,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":313,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_0cdf47d7","line":312,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":316,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":317,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify:"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"                self.db._create_gw_port(ctx, router_id\u003drouter_id,"},{"line_number":320,"context_line":"                                        router\u003drouter,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_ecdbf3e6","line":317,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":310,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":311,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":312,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":313,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_0101bb39","line":312,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":316,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":317,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify:"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"                self.db._create_gw_port(ctx, router_id\u003drouter_id,"},{"line_number":320,"context_line":"                                        router\u003drouter,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_e1fda73b","line":317,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":310,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":311,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":312,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":313,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_130263b5","line":312,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":315,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":316,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":317,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify:"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"                self.db._create_gw_port(ctx, router_id\u003drouter_id,"},{"line_number":320,"context_line":"                                        router\u003drouter,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_f3fec7ac","line":317,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_7f938a50","line":314,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_df98de6b","line":319,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_61ad6130","line":314,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_c1ac3536","line":319,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_9d1d7068","line":314,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_7d185474","line":319,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_4cdfa3d5","line":314,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_acf1176e","line":319,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_12c92b25","line":314,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_f2cd8f31","line":319,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                    mock.patch.object(get_p(), \u0027_get_port\u0027,"},{"line_number":312,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":313,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin,"},{"line_number":314,"context_line":"                                      \u0027_check_for_dup_router_subnets\u0027) as cfdrs,\\"},{"line_number":315,"context_line":"                    mock.patch.object(plugin_utils, \u0027create_port\u0027,"},{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_5c2c4d01","line":314,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                                      return_value\u003dgw_port), \\"},{"line_number":317,"context_line":"                    mock.patch.object(ctx.session, \u0027add\u0027), \\"},{"line_number":318,"context_line":"                    mock.patch.object(base_obj.NeutronDbObject, \u0027create\u0027), \\"},{"line_number":319,"context_line":"                    mock.patch.object(l3_db.registry, \u0027publish\u0027) as mock_notify, \\"},{"line_number":320,"context_line":"                    mock.patch.object(l3_db.L3_NAT_dbonly_mixin, \u0027_get_router\u0027,"},{"line_number":321,"context_line":"                                      return_value\u003drouter):"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_3c31915b","line":319,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d4809a19ba3e6615ef3af8fb26368f0ca57902be","unresolved":true,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def test__create_gw_port(self):"},{"line_number":295,"context_line":"        # NOTE(slaweq): this test is probably wrong"},{"line_number":296,"context_line":"        # returing dict as ge_port breaks test later in L334 in"},{"line_number":297,"context_line":"        # neutron.db.l3_db file"},{"line_number":298,"context_line":"        router_id \u003d \u00272afb8434-7380-43a2-913f-ba3a5ad5f349\u0027"},{"line_number":299,"context_line":"        router \u003d l3_models.Router(id\u003drouter_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"a4a0496d_7dd66943","line":296,"range":{"start_line":296,"start_character":27,"end_line":296,"end_character":35},"updated":"2020-11-23 03:46:54.000000000","message":"gw_port?","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544722ccdf418600063dfd77fc5a37f5ee4d8e33","unresolved":true,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    def test__create_gw_port(self):"},{"line_number":295,"context_line":"        # NOTE(slaweq): this test is probably wrong"},{"line_number":296,"context_line":"        # returing dict as ge_port breaks test later in L334 in"},{"line_number":297,"context_line":"        # neutron.db.l3_db file"},{"line_number":298,"context_line":"        router_id \u003d \u00272afb8434-7380-43a2-913f-ba3a5ad5f349\u0027"},{"line_number":299,"context_line":"        router \u003d l3_models.Router(id\u003drouter_id)"}],"source_content_type":"text/x-python","patch_set":23,"id":"56674e35_ed3df1b7","line":296,"range":{"start_line":296,"start_character":27,"end_line":296,"end_character":35},"in_reply_to":"a4a0496d_7dd66943","updated":"2020-11-24 09:20:20.000000000","message":"Done","commit_id":"31ef8c91a7e4ff91f63e29ec12dc8317fab4e5c9"}],"neutron/tests/unit/db/test_l3_dvr_db.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_6cd083c9","line":1136,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_ccd8aff1","line":1163,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"c84e7faf23584c0217dc17f24822cba08404c68e","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_acd57bb9","line":1186,"updated":"2020-09-23 03:02:57.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"99390f248220dfbaa784ba26e79ab92304ec3bcf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_61f23771","line":1136,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_c1e3439f","line":1163,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1aed16ae6f0054f9dfa1a4c8ea47b9a3f58402f5","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_a1e8cf7a","line":1186,"updated":"2020-10-10 10:41:59.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"66be6a27e262dcc7acbf34ce7d5dcfa73a09f5a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_532dfb44","line":1136,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_3332ffa8","line":1163,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9859f61b61ba654b591162824e4359866060e9ae","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f6b1bfe_93279365","line":1186,"updated":"2020-10-13 21:39:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"f7216397e1eda54c39c2700016956532f3142e2d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_bf9d225b","line":1136,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_1fa2569b","line":1163,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_ff9e7a52","line":1186,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_41b94578","line":1136,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_21bc0968","line":1163,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_81b23d93","line":1186,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_dd288887","line":1136,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_bd2b0c80","line":1163,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_1d2320aa","line":1186,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_8cf6db62","line":1136,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ece78fab","line":1163,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ccec5391","line":1186,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_7254df53","line":1136,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_d24df3c4","line":1163,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_b24af7a8","line":1186,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                \u0027router\u0027, \u0027before_update\u0027, self.mixin, **kwargs)"},{"line_number":1134,"context_line":""},{"line_number":1135,"context_line":"    def _assert_mock_called_with_router(self, mock_fn, router_id):"},{"line_number":1136,"context_line":"        call_kwargs \u003d mock_fn.call_args[1]"},{"line_number":1137,"context_line":"        router \u003d mock_fn.call_args[1].get(\"router_db\")"},{"line_number":1138,"context_line":"        self.assertEqual(router_id, router.id)"},{"line_number":1139,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_bcf7618b","line":1136,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: F841 local variable \u0027call_kwargs\u0027 is assigned to but never used","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1161,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1162,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1163,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1164,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1165,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1166,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_1cf13596","line":1163,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            # NOTE(slaweq): here we are just checking if mock_notify was called"},{"line_number":1184,"context_line":"            # with kwargs which we are expecting, but we can\u0027t check exactly if"},{"line_number":1185,"context_line":"            # router_db was object which we are expecting and because of that"},{"line_number":1186,"context_line":"            # below we are checking if router_db used as argument in mock_notify"},{"line_number":1187,"context_line":"            # call is the has same id as the one which we are expecting"},{"line_number":1188,"context_line":"            mock_notify.assert_called_once_with(self.ctx, router_db\u003dmock.ANY,"},{"line_number":1189,"context_line":"                                                port\u003dmock.ANY,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_fced59b7","line":1186,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/tests/unit/extensions/test_securitygroup.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from neutron.db import securitygroups_db"},{"line_number":34,"context_line":"from neutron.extensions import securitygroup as ext_sg"},{"line_number":35,"context_line":"from neutron.extensions import standardattrdescription"},{"line_number":36,"context_line":"from neutron import quota"},{"line_number":37,"context_line":"from neutron.tests import base"},{"line_number":38,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_e1669129","line":36,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: F401 \u0027neutron.quota\u0027 imported but unused","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"            # avoid the number of default security group rules"},{"line_number":1839,"context_line":"            sgr \u003d self._list(\u0027security-group-rules\u0027).get("},{"line_number":1840,"context_line":"                \u0027security_group_rules\u0027)"},{"line_number":1841,"context_line":"            quota \u003d len(sgr) + 1"},{"line_number":1842,"context_line":"            cfg.CONF.set_override("},{"line_number":1843,"context_line":"                \u0027quota_security_group_rule\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1844,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_416e6501","line":1841,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1852,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1853,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1854,"context_line":"            #TODO: resolve this issue"},{"line_number":1855,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1856,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1857,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_8177ddd4","line":1854,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1851,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1852,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1853,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1854,"context_line":"            #TODO: resolve this issue"},{"line_number":1855,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1856,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1857,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_617281e5","line":1854,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            #TODO: resolve this issue"},{"line_number":1855,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1856,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1857,"context_line":""},{"line_number":1858,"context_line":"    def test_create_security_group_rule_different_security_group_ids(self):"},{"line_number":1859,"context_line":"        if self._skip_native_bulk:"},{"line_number":1860,"context_line":"            self.skipTest(\"Plugin does not support native bulk \""}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_2171a9e1","line":1857,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from neutron.db import securitygroups_db"},{"line_number":34,"context_line":"from neutron.extensions import securitygroup as ext_sg"},{"line_number":35,"context_line":"from neutron.extensions import standardattrdescription"},{"line_number":36,"context_line":"from neutron import quota"},{"line_number":37,"context_line":"from neutron.tests import base"},{"line_number":38,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_ddffe8fe","line":36,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: F401 \u0027neutron.quota\u0027 imported but unused","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"                self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def test_create_security_groups_native_quotas(self):"},{"line_number":1841,"context_line":"        quota \u003d 1"},{"line_number":1842,"context_line":"        cfg.CONF.set_override(\u0027quota_security_group\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1843,"context_line":"        name \u003d \u0027quota_test\u0027"},{"line_number":1844,"context_line":"        description \u003d \u0027quota_test\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_bd02ec07","line":1841,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            # avoid the number of default security group rules"},{"line_number":1855,"context_line":"            sgr \u003d self._list(\u0027security-group-rules\u0027).get("},{"line_number":1856,"context_line":"                \u0027security_group_rules\u0027)"},{"line_number":1857,"context_line":"            quota \u003d len(sgr) + 1"},{"line_number":1858,"context_line":"            cfg.CONF.set_override("},{"line_number":1859,"context_line":"                \u0027quota_security_group_rule\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1860,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_1d0a0020","line":1857,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_fd0c643c","line":1870,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_5d13d85c","line":1870,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from neutron.db import securitygroups_db"},{"line_number":34,"context_line":"from neutron.extensions import securitygroup as ext_sg"},{"line_number":35,"context_line":"from neutron.extensions import standardattrdescription"},{"line_number":36,"context_line":"from neutron import quota"},{"line_number":37,"context_line":"from neutron.tests import base"},{"line_number":38,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ac9637ef","line":36,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: F401 \u0027neutron.quota\u0027 imported but unused","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"                self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def test_create_security_groups_native_quotas(self):"},{"line_number":1841,"context_line":"        quota \u003d 1"},{"line_number":1842,"context_line":"        cfg.CONF.set_override(\u0027quota_security_group\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1843,"context_line":"        name \u003d \u0027quota_test\u0027"},{"line_number":1844,"context_line":"        description \u003d \u0027quota_test\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_8c9b7b16","line":1841,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            # avoid the number of default security group rules"},{"line_number":1855,"context_line":"            sgr \u003d self._list(\u0027security-group-rules\u0027).get("},{"line_number":1856,"context_line":"                \u0027security_group_rules\u0027)"},{"line_number":1857,"context_line":"            quota \u003d len(sgr) + 1"},{"line_number":1858,"context_line":"            cfg.CONF.set_override("},{"line_number":1859,"context_line":"                \u0027quota_security_group_rule\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1860,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_ec9caf0f","line":1857,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_cca1f348","line":1870,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_2c8a27be","line":1870,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from neutron.db import securitygroups_db"},{"line_number":34,"context_line":"from neutron.extensions import securitygroup as ext_sg"},{"line_number":35,"context_line":"from neutron.extensions import standardattrdescription"},{"line_number":36,"context_line":"from neutron import quota"},{"line_number":37,"context_line":"from neutron.tests import base"},{"line_number":38,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_726b3f1d","line":36,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: F401 \u0027neutron.quota\u0027 imported but unused","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"                self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def test_create_security_groups_native_quotas(self):"},{"line_number":1841,"context_line":"        quota \u003d 1"},{"line_number":1842,"context_line":"        cfg.CONF.set_override(\u0027quota_security_group\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1843,"context_line":"        name \u003d \u0027quota_test\u0027"},{"line_number":1844,"context_line":"        description \u003d \u0027quota_test\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_d274d300","line":1841,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            # avoid the number of default security group rules"},{"line_number":1855,"context_line":"            sgr \u003d self._list(\u0027security-group-rules\u0027).get("},{"line_number":1856,"context_line":"                \u0027security_group_rules\u0027)"},{"line_number":1857,"context_line":"            quota \u003d len(sgr) + 1"},{"line_number":1858,"context_line":"            cfg.CONF.set_override("},{"line_number":1859,"context_line":"                \u0027quota_security_group_rule\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1860,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_b271570f","line":1857,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_12648b49","line":1870,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_f268ef1d","line":1870,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from neutron.db import securitygroups_db"},{"line_number":34,"context_line":"from neutron.extensions import securitygroup as ext_sg"},{"line_number":35,"context_line":"from neutron.extensions import standardattrdescription"},{"line_number":36,"context_line":"from neutron import quota"},{"line_number":37,"context_line":"from neutron.tests import base"},{"line_number":38,"context_line":"from neutron.tests.unit.db import test_db_base_plugin_v2"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_5c072d83","line":36,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: F401 \u0027neutron.quota\u0027 imported but unused","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1838,"context_line":"                self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1839,"context_line":""},{"line_number":1840,"context_line":"    def test_create_security_groups_native_quotas(self):"},{"line_number":1841,"context_line":"        quota \u003d 1"},{"line_number":1842,"context_line":"        cfg.CONF.set_override(\u0027quota_security_group\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1843,"context_line":"        name \u003d \u0027quota_test\u0027"},{"line_number":1844,"context_line":"        description \u003d \u0027quota_test\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_3c0cf1a3","line":1841,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1854,"context_line":"            # avoid the number of default security group rules"},{"line_number":1855,"context_line":"            sgr \u003d self._list(\u0027security-group-rules\u0027).get("},{"line_number":1856,"context_line":"                \u0027security_group_rules\u0027)"},{"line_number":1857,"context_line":"            quota \u003d len(sgr) + 1"},{"line_number":1858,"context_line":"            cfg.CONF.set_override("},{"line_number":1859,"context_line":"                \u0027quota_security_group_rule\u0027, quota, group\u003d\u0027QUOTAS\u0027)"},{"line_number":1860,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_9cfd4570","line":1857,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: F811 redefinition of unused \u0027quota\u0027 from line 36","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_7c02e970","line":1870,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":1867,"context_line":"            rule \u003d self._build_security_group_rule("},{"line_number":1868,"context_line":"                security_group_id, \u0027egress\u0027,"},{"line_number":1869,"context_line":"                const.PROTO_NAME_TCP, \u002722\u0027, \u002722\u0027)"},{"line_number":1870,"context_line":"            #TODO: resolve this issue"},{"line_number":1871,"context_line":"            res \u003d self._create_security_group_rule(self.fmt, rule)"},{"line_number":1872,"context_line":"            self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)"},{"line_number":1873,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_dcfa1d73","line":1870,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/tests/unit/objects/db/test_api.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                             getattr(obj2, field, None))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_get_object_with_None_value_in_filters(self):"},{"line_number":110,"context_line":"        obj \u003d api.create_object(self.obj_cls, self.ctxt, {\u0027name\u0027: \u0027foo\u0027})"},{"line_number":111,"context_line":"        new_obj \u003d api.get_object("},{"line_number":112,"context_line":"            self.obj_cls, self.ctxt, name\u003d\u0027foo\u0027, status\u003dNone)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_3d0edc31","line":109,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                             getattr(obj2, field, None))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_get_object_with_None_value_in_filters(self):"},{"line_number":110,"context_line":"        obj \u003d api.create_object(self.obj_cls, self.ctxt, {\u0027name\u0027: \u0027foo\u0027})"},{"line_number":111,"context_line":"        new_obj \u003d api.get_object("},{"line_number":112,"context_line":"            self.obj_cls, self.ctxt, name\u003d\u0027foo\u0027, status\u003dNone)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_4cf84348","line":109,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                             getattr(obj2, field, None))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_get_object_with_None_value_in_filters(self):"},{"line_number":110,"context_line":"        obj \u003d api.create_object(self.obj_cls, self.ctxt, {\u0027name\u0027: \u0027foo\u0027})"},{"line_number":111,"context_line":"        new_obj \u003d api.get_object("},{"line_number":112,"context_line":"            self.obj_cls, self.ctxt, name\u003d\u0027foo\u0027, status\u003dNone)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_926edb2c","line":109,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                             getattr(obj2, field, None))"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def test_get_object_with_None_value_in_filters(self):"},{"line_number":110,"context_line":"        obj \u003d api.create_object(self.obj_cls, self.ctxt, {\u0027name\u0027: \u0027foo\u0027})"},{"line_number":111,"context_line":"        new_obj \u003d api.get_object("},{"line_number":112,"context_line":"            self.obj_cls, self.ctxt, name\u003d\u0027foo\u0027, status\u003dNone)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_9c32655d","line":109,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/test_qos.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import netaddr"},{"line_number":18,"context_line":"from neutron_lib.api.definitions import qos as qos_api"},{"line_number":19,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from neutron_lib import context"},{"line_number":22,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":23,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_3d37fce5","line":20,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: H306: imports not in alphabetical order (neutron_lib.db.api, neutron_lib.constants)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import netaddr"},{"line_number":18,"context_line":"from neutron_lib.api.definitions import qos as qos_api"},{"line_number":19,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from neutron_lib import context"},{"line_number":22,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":23,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_6cfb7f46","line":20,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: H306: imports not in alphabetical order (neutron_lib.db.api, neutron_lib.constants)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import netaddr"},{"line_number":18,"context_line":"from neutron_lib.api.definitions import qos as qos_api"},{"line_number":19,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from neutron_lib import context"},{"line_number":22,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":23,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_9257fb58","line":20,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: H306: imports not in alphabetical order (neutron_lib.db.api, neutron_lib.constants)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import netaddr"},{"line_number":18,"context_line":"from neutron_lib.api.definitions import qos as qos_api"},{"line_number":19,"context_line":"from neutron_lib.db import api as db_api"},{"line_number":20,"context_line":"from neutron_lib import constants"},{"line_number":21,"context_line":"from neutron_lib import context"},{"line_number":22,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":23,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_fcd439eb","line":20,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: H306: imports not in alphabetical order (neutron_lib.db.api, neutron_lib.constants)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        # We can\u0027t ensure the call order because we are not enforcing any order"},{"line_number":437,"context_line":"        # when retrieving the port and the network list."},{"line_number":438,"context_line":"        self.mock_rules.assert_has_calls(calls, any_order\u003dTrue)"},{"line_number":439,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":440,"context_line":"            fip \u003d self.qos_driver._plugin_l3.get_floatingip(self.ctx,"},{"line_number":441,"context_line":"                                                            self.fips[0].id)"},{"line_number":442,"context_line":"        mock_update_fip.assert_called_once_with(self.txn, fip)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_ff336f12","line":439,"range":{"start_line":439,"start_character":20,"end_line":439,"end_character":34},"updated":"2020-11-12 14:36:17.000000000","message":"CONTEXT_READER","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_maintenance.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"a9ab4cb7c3f129a1539d76deb004421db6f2625f","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f6b1bfe_5facce8b","line":198,"updated":"2020-10-14 19:27:29.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"0e5578e4e51c793cd2e1c926264b2bf918495207"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_a1a7794f","line":198,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"59c2772333973a19502a9f6429aba5c3d6b9525d","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    def _test_fix_security_group_create(self, mock_bump, revision_number):"},{"line_number":229,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":230,"context_line":"            sg_name \u003d utils.ovn_addrset_name(\u0027fake_id\u0027, \u0027ip4\u0027)"},{"line_number":231,"context_line":"            sg \u003d self._make_security_group(self.fmt, sg_name, \u0027\u0027)[\u0027security_group\u0027]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            ovn_revision_numbers_db.create_initial_revision("},{"line_number":234,"context_line":"                self.ctx, sg[\u0027id\u0027], constants.TYPE_SECURITY_GROUPS,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1f621f24_01646d21","line":231,"updated":"2020-11-05 00:40:41.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"14df0d05d56adec632a9fd2477b13d7683f2628d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_fd2584ac","line":198,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7993f43a0efa3fb7cfd0bb501b57b58352517127","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    def _test_fix_security_group_create(self, mock_bump, revision_number):"},{"line_number":229,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":230,"context_line":"            sg_name \u003d utils.ovn_addrset_name(\u0027fake_id\u0027, \u0027ip4\u0027)"},{"line_number":231,"context_line":"            sg \u003d self._make_security_group(self.fmt, sg_name, \u0027\u0027)[\u0027security_group\u0027]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            ovn_revision_numbers_db.create_initial_revision("},{"line_number":234,"context_line":"                self.ctx, sg[\u0027id\u0027], constants.TYPE_SECURITY_GROUPS,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f621f24_5d3c78c7","line":231,"updated":"2020-11-05 20:07:11.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"58ee3635a1e7da99f60973bb219367630cf06abd"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_2c050747","line":198,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cf45484af6ddf4cdcdfe926d39d7949716ba4410","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    def _test_fix_security_group_create(self, mock_bump, revision_number):"},{"line_number":229,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":230,"context_line":"            sg_name \u003d utils.ovn_addrset_name(\u0027fake_id\u0027, \u0027ip4\u0027)"},{"line_number":231,"context_line":"            sg \u003d self._make_security_group(self.fmt, sg_name, \u0027\u0027)[\u0027security_group\u0027]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            ovn_revision_numbers_db.create_initial_revision("},{"line_number":234,"context_line":"                self.ctx, sg[\u0027id\u0027], constants.TYPE_SECURITY_GROUPS,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1f621f24_0c02cb3d","line":231,"updated":"2020-11-06 15:57:10.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"af0f687b102a6d9bae1909c6093ea731c92ac40a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_525a8382","line":198,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e1fafeffee3f19430322606d350e53a4ac6962c4","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    def _test_fix_security_group_create(self, mock_bump, revision_number):"},{"line_number":229,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":230,"context_line":"            sg_name \u003d utils.ovn_addrset_name(\u0027fake_id\u0027, \u0027ip4\u0027)"},{"line_number":231,"context_line":"            sg \u003d self._make_security_group(self.fmt, sg_name, \u0027\u0027)[\u0027security_group\u0027]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            ovn_revision_numbers_db.create_initial_revision("},{"line_number":234,"context_line":"                self.ctx, sg[\u0027id\u0027], constants.TYPE_SECURITY_GROUPS,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f621f24_325f0773","line":231,"updated":"2020-11-10 00:18:29.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"d179a77379f6b3debde5f71d257378e8212238a3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertEqual(ovn_rev, row.revision_number)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"            if ovn_rev \u003c 0:"},{"line_number":198,"context_line":"                self.fake_ovn_client._nb_idl.get_lswitch_port.return_value \u003d None"},{"line_number":199,"context_line":"            else:"},{"line_number":200,"context_line":"                fake_lsp \u003d mock.Mock(external_ids\u003d{"},{"line_number":201,"context_line":"                    constants.OVN_REV_NUM_EXT_ID_KEY: ovn_rev})"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_bcce4157","line":198,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"428e37b9d878478087a6509104a52dfcfbbfc39b","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    def _test_fix_security_group_create(self, mock_bump, revision_number):"},{"line_number":229,"context_line":"        with db_api.CONTEXT_WRITER.using(self.ctx):"},{"line_number":230,"context_line":"            sg_name \u003d utils.ovn_addrset_name(\u0027fake_id\u0027, \u0027ip4\u0027)"},{"line_number":231,"context_line":"            sg \u003d self._make_security_group(self.fmt, sg_name, \u0027\u0027)[\u0027security_group\u0027]"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            ovn_revision_numbers_db.create_initial_revision("},{"line_number":234,"context_line":"                self.ctx, sg[\u0027id\u0027], constants.TYPE_SECURITY_GROUPS,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f621f24_1cd8151c","line":231,"updated":"2020-11-10 15:46:19.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"427837810729a464fb0c1df0a325ff1f73014d04"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"93704233813a62a121b2568c8f826f5e224151c9","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"        with self.port() as port:"},{"line_number":1182,"context_line":"            port_id \u003d port[\u0027port\u0027][\u0027id\u0027]"},{"line_number":1183,"context_line":"            new_port \u003d plugin.update_port(ctx, port_id, {\"port\": {}})"},{"line_number":1184,"context_line":"            # # TODO(ralonsoh): add \u0027standard_attr_id\u0027 to port API."},{"line_number":1185,"context_line":"            # new_port.pop(\u0027standard_attr_id\u0027, None)"},{"line_number":1186,"context_line":"            self.assertEqual(port[\"port\"], new_port)"},{"line_number":1187,"context_line":""},{"line_number":1188,"context_line":"    def _add_fake_dhcp_agent(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1f621f24_df367303","line":1185,"range":{"start_line":1184,"start_character":12,"end_line":1185,"end_character":52},"updated":"2020-11-12 14:36:17.000000000","message":"TODO: remove","commit_id":"5fbc53d90969912b5a69a0a1643518f4b80cd329"}]}
