)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d0bb9b8c7de3bfd324fbd080d3313f308f50ded6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cd131368_9eacfb44","updated":"2022-08-10 17:17:05.000000000","message":"Some of this is a duplicate of https://review.opendev.org/c/openstack/neutron-dynamic-routing/+/851799 , but it seems that you have found an additional issue. Can you please rebase your patch on top of my patch?","commit_id":"17071ac5173ab654567f7f0605e82bfdfa846a94"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"30594ccac10ccafefe138399abc7a4c49a803bcf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fd8d0e33_a6f0ac00","in_reply_to":"cd131368_9eacfb44","updated":"2022-08-11 03:35:32.000000000","message":"Done","commit_id":"17071ac5173ab654567f7f0605e82bfdfa846a94"}],"neutron_dynamic_routing/db/bgp_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8624bfb9bf4bcb74094da74446685c721bb9efd3","unresolved":true,"context_lines":[{"line_number":430,"context_line":"    def _make_advertised_routes_dict(self, routes):"},{"line_number":431,"context_line":"        return {\u0027advertised_routes\u0027: list(routes)}"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"    def _get_bgp_peer(self, context, bgp_peer_id):"},{"line_number":434,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":435,"context_line":"            try:"},{"line_number":436,"context_line":"                return model_query.get_by_id(context, BgpPeer, bgp_peer_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a89d71e_178a7f17","line":433,"range":{"start_line":433,"start_character":8,"end_line":433,"end_character":21},"updated":"2022-08-11 11:05:38.000000000","message":"This is something I\u0027ve tried to do in Neutron. Private methods can have sql queries without a DB context. It is the public method the one adding it. In this case, this method is called from 3 different places, 2 of them inside a DB context. I would add the missing one in \"get_bgp_peer\". That will avoid nesting several DB contexts (writer and reader or multiple readers).","commit_id":"ab491248e3e5b04a2cfa80bb5504f109394fe812"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8ecf204ebde7246b65809b0efcc30a802d14ccef","unresolved":false,"context_lines":[{"line_number":430,"context_line":"    def _make_advertised_routes_dict(self, routes):"},{"line_number":431,"context_line":"        return {\u0027advertised_routes\u0027: list(routes)}"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"    def _get_bgp_peer(self, context, bgp_peer_id):"},{"line_number":434,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":435,"context_line":"            try:"},{"line_number":436,"context_line":"                return model_query.get_by_id(context, BgpPeer, bgp_peer_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3283e564_413f344e","line":433,"range":{"start_line":433,"start_character":8,"end_line":433,"end_character":21},"in_reply_to":"1a89d71e_178a7f17","updated":"2022-08-11 16:52:15.000000000","message":"Fixed this accordingly to avoid nested context.","commit_id":"ab491248e3e5b04a2cfa80bb5504f109394fe812"}]}
