)]}'
{"neutron_fwaas/services/firewall/fwaas_plugin.py":[{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"b9d691e3e22967d96e24e8ff91a0c6e5beeb82c7","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        no_broadcast \u003d ("},{"line_number":181,"context_line":"            extensions.is_extension_supported("},{"line_number":182,"context_line":"                l3_plugin, nl_constants.L3_AGENT_SCHEDULER_EXT_ALIAS) and"},{"line_number":183,"context_line":"            getattr(l3_plugin, \u0027get_l3_agents_hosting_routers\u0027, False))"},{"line_number":184,"context_line":"        if no_broadcast:"},{"line_number":185,"context_line":"            # This call checks for all scheduled routers to the network node"},{"line_number":186,"context_line":"            agents \u003d l3_plugin.get_l3_agents_hosting_routers("}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_74fe3b06","side":"PARENT","line":183,"updated":"2019-10-07 18:16:26.000000000","message":"So then adding a single line similar to the above one would fix this problem.\n getattr(l3_plugin, \u0027_get_dvr_hosts_for_router\u0027, False)","commit_id":"20fd02611674da5365e93d06f330d1f76fd71e3e"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"bb6d12b98d6a2332ea987389abc3a5e15094775c","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            scheduled_rtr_hosts \u003d set([a.host for a in agents])"},{"line_number":189,"context_line":"            # Now check for unscheduled DVR router on distributed compute hosts"},{"line_number":190,"context_line":"            unscheduled_dvr_hosts \u003d set()"},{"line_number":191,"context_line":"            for router_id in router_ids:"},{"line_number":192,"context_line":"                hosts \u003d set(l3_plugin._get_dvr_hosts_for_router("},{"line_number":193,"context_line":"                    context, router_id))"},{"line_number":194,"context_line":"                unscheduled_dvr_hosts |\u003d hosts"},{"line_number":195,"context_line":"            total_hosts \u003d scheduled_rtr_hosts.union(unscheduled_dvr_hosts)"},{"line_number":196,"context_line":"            return total_hosts"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_453a73e7","side":"PARENT","line":194,"range":{"start_line":191,"start_character":12,"end_line":194,"end_character":46},"updated":"2019-10-07 15:06:49.000000000","message":"Could we simply do something similar to the following instead of reverting:\n\nif getattr(l3_plugin, \"get_hosts_to_notify\", None):\nfor router_id in router_ids:\n                hosts \u003d set(l3_plugin.get_hosts_to_notify(\n                    context, router_id))\n                unscheduled_dvr_hosts |\u003d hosts\n\nI think doing it this way should be safe for operation in conjunction with third-party L3 plugins.","commit_id":"20fd02611674da5365e93d06f330d1f76fd71e3e"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"e2a283f933b389a5566fc1cb354f4d9f0126dee5","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            scheduled_rtr_hosts \u003d set([a.host for a in agents])"},{"line_number":189,"context_line":"            # Now check for unscheduled DVR router on distributed compute hosts"},{"line_number":190,"context_line":"            unscheduled_dvr_hosts \u003d set()"},{"line_number":191,"context_line":"            for router_id in router_ids:"},{"line_number":192,"context_line":"                hosts \u003d set(l3_plugin._get_dvr_hosts_for_router("},{"line_number":193,"context_line":"                    context, router_id))"},{"line_number":194,"context_line":"                unscheduled_dvr_hosts |\u003d hosts"},{"line_number":195,"context_line":"            total_hosts \u003d scheduled_rtr_hosts.union(unscheduled_dvr_hosts)"},{"line_number":196,"context_line":"            return total_hosts"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_2fdcf044","side":"PARENT","line":194,"range":{"start_line":191,"start_character":12,"end_line":194,"end_character":46},"in_reply_to":"3fa7e38b_34f20308","updated":"2019-10-07 19:34:46.000000000","message":"Yes, I agree. Let\u0027s move this discussion to https://review.opendev.org/#/c/687085/","commit_id":"20fd02611674da5365e93d06f330d1f76fd71e3e"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"9ac3477a520216c28f606fe7a693b2230d897b03","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            scheduled_rtr_hosts \u003d set([a.host for a in agents])"},{"line_number":189,"context_line":"            # Now check for unscheduled DVR router on distributed compute hosts"},{"line_number":190,"context_line":"            unscheduled_dvr_hosts \u003d set()"},{"line_number":191,"context_line":"            for router_id in router_ids:"},{"line_number":192,"context_line":"                hosts \u003d set(l3_plugin._get_dvr_hosts_for_router("},{"line_number":193,"context_line":"                    context, router_id))"},{"line_number":194,"context_line":"                unscheduled_dvr_hosts |\u003d hosts"},{"line_number":195,"context_line":"            total_hosts \u003d scheduled_rtr_hosts.union(unscheduled_dvr_hosts)"},{"line_number":196,"context_line":"            return total_hosts"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_34f20308","side":"PARENT","line":194,"range":{"start_line":191,"start_character":12,"end_line":194,"end_character":46},"in_reply_to":"3fa7e38b_453a73e7","updated":"2019-10-07 18:26:47.000000000","message":"As per my discussion let us stick on the _get_dvr_hosts_for_router since the \u0027get_hosts_to_notify\u0027 for dvr routers may also return the connected router details which may not be ideal for the FWaaS.","commit_id":"20fd02611674da5365e93d06f330d1f76fd71e3e"}]}
