)]}'
{"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":"b89549824db9fc79e22bf9053761ae24e4498052","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":278,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":279,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":280,"context_line":"        # check whether router needs and can be rescheduled to the proper"},{"line_number":281,"context_line":"        # l3 agent (associated with given external network);"},{"line_number":282,"context_line":"        # do check before update in DB as an exception will be raised"},{"line_number":283,"context_line":"        # in case no proper l3 agent found"},{"line_number":284,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":285,"context_line":"            candidates \u003d self._check_router_needs_rescheduling("},{"line_number":286,"context_line":"                context, id, gw_info)"},{"line_number":287,"context_line":"            # Update the gateway outside of the DB update since it involves L2"},{"line_number":288,"context_line":"            # calls that don\u0027t make sense to rollback and may cause deadlocks"},{"line_number":289,"context_line":"            # in a transaction."}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_b0492ab8","line":286,"range":{"start_line":280,"start_character":8,"end_line":286,"end_character":37},"updated":"2019-07-26 09:19:30.000000000","message":"IMO, this external network related scheduling is not needed anymore.","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a22f184f250d6d1c3c7236beb4bf4f477b1e0649","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":278,"context_line":"        gw_info \u003d r.pop(EXTERNAL_GW_INFO, constants.ATTR_NOT_SPECIFIED)"},{"line_number":279,"context_line":"        original \u003d self.get_router(context, id)"},{"line_number":280,"context_line":"        # check whether router needs and can be rescheduled to the proper"},{"line_number":281,"context_line":"        # l3 agent (associated with given external network);"},{"line_number":282,"context_line":"        # do check before update in DB as an exception will be raised"},{"line_number":283,"context_line":"        # in case no proper l3 agent found"},{"line_number":284,"context_line":"        if gw_info !\u003d constants.ATTR_NOT_SPECIFIED:"},{"line_number":285,"context_line":"            candidates \u003d self._check_router_needs_rescheduling("},{"line_number":286,"context_line":"                context, id, gw_info)"},{"line_number":287,"context_line":"            # Update the gateway outside of the DB update since it involves L2"},{"line_number":288,"context_line":"            # calls that don\u0027t make sense to rollback and may cause deadlocks"},{"line_number":289,"context_line":"            # in a transaction."}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_d9c3ae56","line":286,"range":{"start_line":280,"start_character":8,"end_line":286,"end_character":37},"in_reply_to":"7faddb67_b0492ab8","updated":"2019-07-26 15:13:33.000000000","message":"Done","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b89549824db9fc79e22bf9053761ae24e4498052","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        else:"},{"line_number":292,"context_line":"            candidates \u003d None"},{"line_number":293,"context_line":"        router_db \u003d self._update_router_db(context, id, r)"},{"line_number":294,"context_line":"        if candidates:"},{"line_number":295,"context_line":"            l3_plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":296,"context_line":"            l3_plugin.reschedule_router(context, id, candidates)"},{"line_number":297,"context_line":"        updated \u003d self._make_router_dict(router_db)"},{"line_number":298,"context_line":"        registry.notify(resources.ROUTER, events.AFTER_UPDATE, self,"},{"line_number":299,"context_line":"                        context\u003dcontext, router_id\u003did, old_router\u003doriginal,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_50c6b618","line":296,"range":{"start_line":294,"start_character":8,"end_line":296,"end_character":64},"updated":"2019-07-26 09:19:30.000000000","message":"ditto","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a22f184f250d6d1c3c7236beb4bf4f477b1e0649","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        else:"},{"line_number":292,"context_line":"            candidates \u003d None"},{"line_number":293,"context_line":"        router_db \u003d self._update_router_db(context, id, r)"},{"line_number":294,"context_line":"        if candidates:"},{"line_number":295,"context_line":"            l3_plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":296,"context_line":"            l3_plugin.reschedule_router(context, id, candidates)"},{"line_number":297,"context_line":"        updated \u003d self._make_router_dict(router_db)"},{"line_number":298,"context_line":"        registry.notify(resources.ROUTER, events.AFTER_UPDATE, self,"},{"line_number":299,"context_line":"                        context\u003dcontext, router_id\u003did, old_router\u003doriginal,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_79a07aa6","line":296,"range":{"start_line":294,"start_character":8,"end_line":296,"end_character":64},"in_reply_to":"7faddb67_50c6b618","updated":"2019-07-26 15:13:33.000000000","message":"Done","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b89549824db9fc79e22bf9053761ae24e4498052","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                        router\u003dupdated, request_attrs\u003dr, router_db\u003drouter_db)"},{"line_number":301,"context_line":"        return updated"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _check_router_needs_rescheduling(self, context, router_id, gw_info):"},{"line_number":304,"context_line":"        \"\"\"Checks whether router\u0027s l3 agent can handle the given network"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        :return: list of candidate agents if rescheduling needed,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_10827ec9","line":303,"range":{"start_line":303,"start_character":8,"end_line":303,"end_character":40},"updated":"2019-07-26 09:19:30.000000000","message":"From my understanding, this entire function is for legacy router with specific externel network scheduling. IMO, this can be removed too.\nBTW, this function is a bit buggy, it skips the real schedule driver directly.","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a22f184f250d6d1c3c7236beb4bf4f477b1e0649","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                        router\u003dupdated, request_attrs\u003dr, router_db\u003drouter_db)"},{"line_number":301,"context_line":"        return updated"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _check_router_needs_rescheduling(self, context, router_id, gw_info):"},{"line_number":304,"context_line":"        \"\"\"Checks whether router\u0027s l3 agent can handle the given network"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"        :return: list of candidate agents if rescheduling needed,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_99a3f6b1","line":303,"range":{"start_line":303,"start_character":8,"end_line":303,"end_character":40},"in_reply_to":"7faddb67_10827ec9","updated":"2019-07-26 15:13:33.000000000","message":"Done","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"}],"releasenotes/notes/remove-gateway_external_network_id-config-option-c7aabf2f63004b41.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9de7f6c3fd04aed0533bee176e35fa867c3137c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``gateway_external_network_id`` config option has been removed."},{"line_number":5,"context_line":"    Routers where this option was set will now be able to support multiple"},{"line_number":6,"context_line":"    external networks for routers."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7faddb67_67717d0c","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":11},"updated":"2019-07-12 15:46:53.000000000","message":"s/Systems ?","commit_id":"bd3890874e84db5e1655ec6870bc051464663157"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"cd990fb1c0b2c28e3bc37ba61e1830643668896c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``gateway_external_network_id`` config option has been removed."},{"line_number":5,"context_line":"    Systems where this option was set will now be able to support multiple"},{"line_number":6,"context_line":"    external networks for routers."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_8fd348d5","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":38},"updated":"2019-07-16 14:03:01.000000000","message":"I feel a bit confusing about this here. This config is removed, but users\u0027s config with this will support multiple external networks. So if this config is not set, then not support?","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"aed5cd3c70178947bb10c0671eb2437c14feaead","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``gateway_external_network_id`` config option has been removed."},{"line_number":5,"context_line":"    Systems where this option was set will now be able to support multiple"},{"line_number":6,"context_line":"    external networks for routers."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_89ac769f","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":38},"in_reply_to":"7faddb67_8fd348d5","updated":"2019-07-18 21:00:34.000000000","message":"if You had this option set up to now, than L3 agent could use only this one external network as gateway network for routers. If this wasn\u0027t set (was empty) than multiple networks could be used as gateway network on one host. And when this patch will be merged this will be behaviour for everyone.","commit_id":"02c8f102f2a491b847e9d11b5b51cbad5c303b90"}]}
