)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3f23137b7a19a05f5703554692f503f9d91262e7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-06 14:19:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Optimize router exists method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instead of retrieving the full DB object, \"count\" method will be"},{"line_number":10,"context_line":"faster. There is no need to filter by RBAC or access type because"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf51134e_3ebef4d3","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":8},"updated":"2020-07-07 06:42:20.000000000","message":"now it\u0027s about removing I guess","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a55be9f1facfcd524db46cca2a19aa58793175b5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-06 14:19:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Optimize router exists method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instead of retrieving the full DB object, \"count\" method will be"},{"line_number":10,"context_line":"faster. There is no need to filter by RBAC or access type because"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf51134e_d7e6af44","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":8},"in_reply_to":"bf51134e_3ebef4d3","updated":"2020-07-07 17:54:09.000000000","message":"It\u0027s indeed. Thanks!","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"}],"neutron/db/l3_db.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"56dd0d3c15008f5052a857450f95860cc7c7877a","unresolved":false,"context_lines":[{"line_number":1554,"context_line":"                          \"%(port_id)s no longer exists, allowing deletion.\","},{"line_number":1555,"context_line":"                          {\u0027f_id\u0027: port[\u0027device_id\u0027], \u0027port_id\u0027: port[\u0027id\u0027]})"},{"line_number":1556,"context_line":"                return"},{"line_number":1557,"context_line":"        elif not l3_obj.Router.objects_exist(context.evelated(),"},{"line_number":1558,"context_line":"                                             id\u003dport[\u0027device_id\u0027]):"},{"line_number":1559,"context_line":"            LOG.debug(\"Router %(router_id)s corresponding to port \""},{"line_number":1560,"context_line":"                      \"%(port_id)s no longer exists, allowing deletion.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_d6437112","line":1557,"range":{"start_line":1557,"start_character":53,"end_line":1557,"end_character":61},"updated":"2020-07-06 10:17:05.000000000","message":"elevated","commit_id":"93c7dbe6095011190b2c7960b98faac7cf4fb172"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1a164fc16f4e69577f063e016e278c3e27530d0e","unresolved":false,"context_lines":[{"line_number":1554,"context_line":"                          \"%(port_id)s no longer exists, allowing deletion.\","},{"line_number":1555,"context_line":"                          {\u0027f_id\u0027: port[\u0027device_id\u0027], \u0027port_id\u0027: port[\u0027id\u0027]})"},{"line_number":1556,"context_line":"                return"},{"line_number":1557,"context_line":"        elif not l3_obj.Router.objects_exist(context.evelated(),"},{"line_number":1558,"context_line":"                                             id\u003dport[\u0027device_id\u0027]):"},{"line_number":1559,"context_line":"            LOG.debug(\"Router %(router_id)s corresponding to port \""},{"line_number":1560,"context_line":"                      \"%(port_id)s no longer exists, allowing deletion.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_b604fdc7","line":1557,"range":{"start_line":1557,"start_character":53,"end_line":1557,"end_character":61},"in_reply_to":"bf51134e_d6437112","updated":"2020-07-06 10:19:46.000000000","message":"Done","commit_id":"93c7dbe6095011190b2c7960b98faac7cf4fb172"}],"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":"8c6bc666e49e6038894dd47e6d0854b7d9683187","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from neutron_lib import constants as n_const"},{"line_number":23,"context_line":"from neutron_lib import context"},{"line_number":24,"context_line":"from neutron_lib import exceptions as n_exc"},{"line_number":25,"context_line":"from neutron_lib.exceptions import l3 as l3_exc"},{"line_number":26,"context_line":"from neutron_lib.plugins import constants as plugin_constants"},{"line_number":27,"context_line":"from neutron_lib.plugins import directory"},{"line_number":28,"context_line":"from neutron_lib.plugins import utils as plugin_utils"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_a70cc239","line":25,"updated":"2020-07-06 17:44:28.000000000","message":"pep8: F401 \u0027neutron_lib.exceptions.l3 as l3_exc\u0027 imported but unused","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3f23137b7a19a05f5703554692f503f9d91262e7","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            \u0027device_owner\u0027: n_const.DEVICE_OWNER_ROUTER_INTF,"},{"line_number":218,"context_line":"            \u0027device_id\u0027: \u002744\u0027, \u0027id\u0027: \u0027f\u0027,"},{"line_number":219,"context_line":"            \u0027fixed_ips\u0027: [{\u0027ip_address\u0027: \u00271.1.1.1\u0027, \u0027subnet_id\u0027: \u00274\u0027}]}"},{"line_number":220,"context_line":"        l3_obj.Router.objects_exist \u003d mock.Mock(return_value\u003dFalse)"},{"line_number":221,"context_line":"        self.db.prevent_l3_port_deletion(mock.Mock(), None)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @mock.patch.object(directory, \u0027get_plugin\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_dea1b897","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":67},"updated":"2020-07-07 06:42:20.000000000","message":"seems affecting other tests. Should objects_exist be unmocked after test (or better use mock.patch)?","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a55be9f1facfcd524db46cca2a19aa58793175b5","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            \u0027device_owner\u0027: n_const.DEVICE_OWNER_ROUTER_INTF,"},{"line_number":218,"context_line":"            \u0027device_id\u0027: \u002744\u0027, \u0027id\u0027: \u0027f\u0027,"},{"line_number":219,"context_line":"            \u0027fixed_ips\u0027: [{\u0027ip_address\u0027: \u00271.1.1.1\u0027, \u0027subnet_id\u0027: \u00274\u0027}]}"},{"line_number":220,"context_line":"        l3_obj.Router.objects_exist \u003d mock.Mock(return_value\u003dFalse)"},{"line_number":221,"context_line":"        self.db.prevent_l3_port_deletion(mock.Mock(), None)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @mock.patch.object(directory, \u0027get_plugin\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_77c0837d","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":67},"in_reply_to":"bf51134e_dea1b897","updated":"2020-07-07 17:54:09.000000000","message":"I don\u0027t know why I patched this method in this way, it\u0027s incorrect.","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"}],"neutron/tests/unit/db/test_l3_dvr_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3f23137b7a19a05f5703554692f503f9d91262e7","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        plugin \u003d mock.Mock()"},{"line_number":348,"context_line":"        directory.add_plugin(plugin_constants.CORE, plugin)"},{"line_number":349,"context_line":"        plugin.get_port.return_value \u003d port"},{"line_number":350,"context_line":"        router_obj.Router.objects_exist \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":351,"context_line":"        self.assertRaises(exceptions.ServicePortInUse,"},{"line_number":352,"context_line":"                          self.mixin.prevent_l3_port_deletion,"},{"line_number":353,"context_line":"                          self.ctx,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_be9cc45b","line":350,"range":{"start_line":350,"start_character":8,"end_line":350,"end_character":70},"updated":"2020-07-07 06:42:20.000000000","message":"ditto","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a55be9f1facfcd524db46cca2a19aa58793175b5","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        plugin \u003d mock.Mock()"},{"line_number":348,"context_line":"        directory.add_plugin(plugin_constants.CORE, plugin)"},{"line_number":349,"context_line":"        plugin.get_port.return_value \u003d port"},{"line_number":350,"context_line":"        router_obj.Router.objects_exist \u003d mock.Mock(return_value\u003dTrue)"},{"line_number":351,"context_line":"        self.assertRaises(exceptions.ServicePortInUse,"},{"line_number":352,"context_line":"                          self.mixin.prevent_l3_port_deletion,"},{"line_number":353,"context_line":"                          self.ctx,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_f73933a3","line":350,"range":{"start_line":350,"start_character":8,"end_line":350,"end_character":70},"in_reply_to":"bf51134e_be9cc45b","updated":"2020-07-07 17:54:09.000000000","message":"Done","commit_id":"33cd8b367cc16baf905b0e9579d5e317fe55a496"}]}
