)]}'
{"neutron/db/l3_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"e2f8f907bd9f94a3132ef98e1331c47e3452ca9b","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            ext_bridge \u003d agent[\u0027configurations\u0027].get("},{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_ba31bfa3","line":249,"updated":"2014-12-23 08:07:34.000000000","message":"when we have a single agent handling multiple external networks the func should return here. Am I missing something?","commit_id":"abce249c6f6b1132b223dcd3aad21c8608b80639"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"5c9e9f6f08068ed373d2fe351088facb5ece0e92","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            ext_bridge \u003d agent[\u0027configurations\u0027].get("},{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_f91c8068","line":249,"in_reply_to":"3a961159_1301c0ae","updated":"2015-01-05 23:26:37.000000000","message":"I agree with your point that the agent has to be configured properly, but this fix will at least prevent the \"reschedule_router\" called unnecessarily. \n\nMy thought is that the function should handle both cases, if configured and if not configured properly.","commit_id":"abce249c6f6b1132b223dcd3aad21c8608b80639"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"52c12bb1c4363d20512c230fd48ca00136aefead","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            ext_bridge \u003d agent[\u0027configurations\u0027].get("},{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_edff0164","line":249,"in_reply_to":"3a961159_ba31bfa3","updated":"2014-12-23 20:29:29.000000000","message":"Here you have dependency on the configuration. If the configuration is messed up or not configured for the external networks, and a user or tenant tries to configure the second external network, it will end up rescheduling the current scheduled router.\nI have seen this happen.","commit_id":"abce249c6f6b1132b223dcd3aad21c8608b80639"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"df1b946dc44bcebab7bb1ae10a76bf828f6f690e","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            ext_bridge \u003d agent[\u0027configurations\u0027].get("},{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_1301c0ae","line":249,"in_reply_to":"3a961159_edff0164","updated":"2014-12-24 08:03:26.000000000","message":"From what I know an agent should be properly configured in order to be able to handle multiple external networks. How can wrongly configured agent act properly?","commit_id":"abce249c6f6b1132b223dcd3aad21c8608b80639"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"60296b68508653da0a946ff8e104f7a6cef9c18c","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id):"},{"line_number":272,"context_line":"        # Port has no \u0027tenant-id\u0027, as it is hidden from user"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_69077eca","line":269,"updated":"2014-12-24 02:51:56.000000000","message":"This func don\u0027t return, if len(active_agents) is 1. I think following implementation is better.\n\nif len(active_agents) \u003d\u003d 1:\n    return\n\nreturn candidates","commit_id":"ce68e650dbeac57ff437ca20dc91d1b89eb1cd76"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"0291b838f855410b56aefda504c1dbecb58e46d8","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                                                       active_agents)"},{"line_number":261,"context_line":"        if not candidates:"},{"line_number":262,"context_line":"            msg \u003d (_(\u0027No eligible l3 agent associated with external\u0027"},{"line_number":263,"context_line":"                     \u0027network %s found\u0027) % network_id)"},{"line_number":264,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)"},{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3e73f54e","line":263,"updated":"2015-01-08 14:10:59.000000000","message":"Change is extraneous, and now has missing space between external and network. Should revert.","commit_id":"6e5b5ef0cc53ebefbf8dd7a8bbb5941bcba4a5c6"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"50cb94a7b717fa745871ce6e76f4706f70384a5f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003d\u003d 1:"},{"line_number":269,"context_line":"            return"},{"line_number":270,"context_line":"        return candidates"},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_7cb5de30","line":268,"updated":"2015-01-06 16:02:29.000000000","message":"What you had here in the first PS is the better, more concise way of doing this. No need for an explicit return as suggested by another reviewer.\n\nRegardless of that, wouldn\u0027t we catch this case at L261 and appropriately raise an exception? (If not shouldn\u0027t we raise an exception here too?)","commit_id":"6e5b5ef0cc53ebefbf8dd7a8bbb5941bcba4a5c6"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"0291b838f855410b56aefda504c1dbecb58e46d8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003d\u003d 1:"},{"line_number":269,"context_line":"            return"},{"line_number":270,"context_line":"        return candidates"},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3eef75b2","line":268,"in_reply_to":"3a961159_2cadbd31","updated":"2015-01-08 14:10:59.000000000","message":"The first patch set is clearer, IMHO. If there is more than one agent, it\u0027ll return the candidates. If not, it\u0027ll return None, which is what this does.","commit_id":"6e5b5ef0cc53ebefbf8dd7a8bbb5941bcba4a5c6"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"612cc7ef06ccd023b31c3d0dc15a0389c2c4e436","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003d\u003d 1:"},{"line_number":269,"context_line":"            return"},{"line_number":270,"context_line":"        return candidates"},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_2cadbd31","line":268,"in_reply_to":"3a961159_7cb5de30","updated":"2015-01-07 07:47:21.000000000","message":"Any way the return here will not hurt and since I am expecting a value on the calling function.\nL261 will not solve this problem and we don\u0027t need to raise an exception in here.","commit_id":"6e5b5ef0cc53ebefbf8dd7a8bbb5941bcba4a5c6"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"167115dfce6ff41cd622413fda90a434a5d0a3e5","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_040fbf2e","line":268,"updated":"2015-01-08 20:33:57.000000000","message":"I have a question.  Should this be generalized a bit more?  As I understand it, we don\u0027t want to reschedule the router because the current l3 agent still fits.  In this particular case, it fits because it is the only one and is connected to multiple external networks.\n\nThere other cases where the router should not be rescheduled because the current one still fits, right?  For example, if there are multiple l3 agents but they are all connected to multiple external networks.  No need to reschedule there either, right?  I actually think this would come up more often in real deployments, most of which would use more than one l3 agent.\n\nHow about code that runs sort of like this pseudo-code:\n\n  candidates \u003d get_candidates()\n  if current_l3_agent in candidates:\n      # The current l3 agent still works, don\u0027t reschedule.\n      return\n  reschedule_the_router()\n\nAm I missing something?","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"ab4f403406af63bf75ae7b898043dc911b72423a","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_3e892326","line":268,"in_reply_to":"3a961159_040fbf2e","updated":"2015-01-09 00:17:33.000000000","message":"Yes - if it is the only one agent then there is no need to call reschedule.\n\nIf there are multiple L3 agents and each L3 agent is assigned to a paritcular external network, then \u0027rescheduling\" can still happen, when we try to update \"RouterA with external network Y\" to \"RouterA with external network Z\".\n\nI tried the pseudo-fix that you suggested for some reason the \"if current_l3_agent in candidates\" always return false. (  I am not sure if I am making any mistake here)","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"c83ebbaf7023cf8728c219ac2ece2a53892a00b8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_5486cb65","line":268,"in_reply_to":"3a961159_3e892326","updated":"2015-01-09 05:42:01.000000000","message":"When I was trying this patch, it always returns at line 250 because when single L3 agent supporting multiple external networks, gateway_external_network_id and external_network_bridge are both None. I am not sure how can this fix take effect. Am I missing something here?","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"82a40d150dd59730dbc79aaf7d6edc63e10dfc40","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_c73ccfc1","line":268,"in_reply_to":"3a961159_5486cb65","updated":"2015-01-09 06:56:12.000000000","message":"Same for me, I\u0027m still trying to unerstand the use case where the existing logic is not working.","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"3df47b1eec16abda826ee232c4b3458bc95678fe","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_eaf14bdf","line":268,"in_reply_to":"3a961159_8fbc7cdd","updated":"2015-01-13 00:47:26.000000000","message":"Yes I meant \"external_network_bridge\u003dbr-ex\".my bad it is a typo.","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8ceef71eede4e56070330a86446f4093c9551ead","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_8fbc7cdd","line":268,"in_reply_to":"3a961159_96110907","updated":"2015-01-12 02:59:17.000000000","message":"Swami, you mean external_network_bridge\u003dbr-ex instead of \"external_network_id\u003dbr-ex\", right? \n\nI didn\u0027t realize this is the use case when reading commit message \"Today with single L3 agent supporting multiple external networks\". Maybe the commit message and the bug report can be modified to reflect this?","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"a5307886788f67cadfc1a19b2f72b40286621a59","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # Return candidates only when there is more than one l3"},{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_96110907","line":268,"in_reply_to":"3a961159_c73ccfc1","updated":"2015-01-09 18:47:58.000000000","message":"Ok, I think I already mentioned that in my previous message. \nWhen you do have \"external_network_id\u003dbr-ex\" and then when you try to add a second external network, as per the design, it should either error out with \"No agent hosting the network found\".\n\nBut intsead it is trying to reschedule the router, before it raises the \"TooManyExternalNetworks\".","commit_id":"978fabd8085e3b8b1d9334d97a7d7f78b1a9a350"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2323b8b759075f180b38bcaf3009d96557a95b61","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"},{"line_number":272,"context_line":"        if ext_ips and len(ext_ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_b0a87e22","line":269,"updated":"2015-01-13 13:55:45.000000000","message":"If there is no candidate for the second external network, don\u0027t we need to raise an error (no eligible agent found?)? With the proposed code, no error will be returned although we cannot connect the second external network.","commit_id":"19924e083dfd1661fa8ec681349ef03f623eb214"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"b50c54e4aad74c408e0df6a1375c0213304a2f87","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"},{"line_number":272,"context_line":"        if ext_ips and len(ext_ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_914d3ac8","line":269,"in_reply_to":"3a961159_b0a87e22","updated":"2015-01-13 19:39:18.000000000","message":"Akihiro, isn\u0027t than handled on L261-264?","commit_id":"19924e083dfd1661fa8ec681349ef03f623eb214"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"4a2d420d3692b839b20e1c1b06cfc99e22a18e0f","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"},{"line_number":272,"context_line":"        if ext_ips and len(ext_ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_d75b3220","line":269,"in_reply_to":"3a961159_b0a87e22","updated":"2015-01-13 20:21:33.000000000","message":"With the current code the error will still be raised as \"TooManyExternalNetworks\" after calling the reschedule_router.","commit_id":"19924e083dfd1661fa8ec681349ef03f623eb214"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"3b09dca31f23ecc380fd0aa503cc354d940860fd","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # agent, so that it would not reschedule the router when"},{"line_number":267,"context_line":"        # there is only one l3-agent."},{"line_number":268,"context_line":"        if len(active_agents) \u003e 1:"},{"line_number":269,"context_line":"            return candidates"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def _create_router_gw_port(self, context, router, network_id, ext_ips):"},{"line_number":272,"context_line":"        if ext_ips and len(ext_ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_971feab7","line":269,"in_reply_to":"3a961159_b0a87e22","updated":"2015-01-13 20:42:52.000000000","message":"Yes L261-264 will take care of raising error when there are no candidates.\nbut the patch addresses the issue when there are valid candidates at L258.","commit_id":"19924e083dfd1661fa8ec681349ef03f623eb214"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"b64dd486924398e5d256b5b9089bb09b75ef3b6e","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"},{"line_number":253,"context_line":"        active_agents \u003d l3_plugin.get_l3_agents(context, active\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa81d914_952bb581","line":250,"updated":"2015-01-28 06:49:34.000000000","message":"the situation in question is handled by L241-250, isn\u0027t it?","commit_id":"4a6b4f0b1953c4c05f37539f3f5221e97cd20033"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"89f0e847c50175280d8ec343d708c2c221bc74a6","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"},{"line_number":253,"context_line":"        active_agents \u003d l3_plugin.get_l3_agents(context, active\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa81d914_aa5f520d","line":250,"in_reply_to":"fa81d914_952bb581","updated":"2015-01-28 20:02:19.000000000","message":"I think I have also addressed this comment in my previous patch.\nThis L241-250 will handle this condition only when the \"gatewa_external_network_id\" and \"external_network_bridge\" is configured.\nIf not then it will not hit this if condition in L248.","commit_id":"4a6b4f0b1953c4c05f37539f3f5221e97cd20033"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"adbfdc14902b7618cf8346a203129527fbece52d","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                \u0027external_network_bridge\u0027, \u0027br-ex\u0027)"},{"line_number":248,"context_line":"            if (ext_net_id \u003d\u003d network_id or"},{"line_number":249,"context_line":"                    (not ext_net_id and not ext_bridge)):"},{"line_number":250,"context_line":"                return"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # otherwise find l3 agent with matching gateway_external_network_id"},{"line_number":253,"context_line":"        active_agents \u003d l3_plugin.get_l3_agents(context, active\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aaa499b_2c824601","line":250,"in_reply_to":"fa81d914_aa5f520d","updated":"2015-04-13 03:02:44.000000000","message":"ok, i haven\u0027t noticed that you were trying to use multiple external networks with external_network_bridge\u003dbr-ex.\ni should have read the commit message more carefully.","commit_id":"4a6b4f0b1953c4c05f37539f3f5221e97cd20033"}]}
