)]}'
{"neutron/agent/l3/dvr_edge_router.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        bound ports floatingip cidr list."},{"line_number":268,"context_line":"        \"\"\""},{"line_number":269,"context_line":"        local_router_device \u003d device"},{"line_number":270,"context_line":"        if self.get_ex_gw_port():"},{"line_number":271,"context_line":"            interface_name \u003d self.get_snat_external_device_interface_name("},{"line_number":272,"context_line":"                self.get_ex_gw_port())"},{"line_number":273,"context_line":"            unbound_cidr_list \u003d self._get_unbound_fip_cidr_list(interface_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_b7b23a92","line":270,"updated":"2016-07-06 17:48:08.000000000","message":"You should cache the port since you\u0027re going to use it below:\n\nex_gw_port \u003d self.get_ex_gw_port()","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        bound ports floatingip cidr list."},{"line_number":268,"context_line":"        \"\"\""},{"line_number":269,"context_line":"        local_router_device \u003d device"},{"line_number":270,"context_line":"        if self.get_ex_gw_port():"},{"line_number":271,"context_line":"            interface_name \u003d self.get_snat_external_device_interface_name("},{"line_number":272,"context_line":"                self.get_ex_gw_port())"},{"line_number":273,"context_line":"            unbound_cidr_list \u003d self._get_unbound_fip_cidr_list(interface_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_7e778208","line":270,"in_reply_to":"1aa78d24_b7b23a92","updated":"2016-07-14 17:41:33.000000000","message":"will check it out.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        return existing_cidr"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def remove_floatingip_dist_unbound(self, fip_cidr):"},{"line_number":282,"context_line":"        if not self.get_ex_gw_port():"},{"line_number":283,"context_line":"            return"},{"line_number":284,"context_line":"        if not self._is_this_snat_host():"},{"line_number":285,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_b78b5ac2","line":282,"updated":"2016-07-06 17:48:08.000000000","message":"Here too","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        return existing_cidr"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def remove_floatingip_dist_unbound(self, fip_cidr):"},{"line_number":282,"context_line":"        if not self.get_ex_gw_port():"},{"line_number":283,"context_line":"            return"},{"line_number":284,"context_line":"        if not self._is_this_snat_host():"},{"line_number":285,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_5e7c46eb","line":282,"in_reply_to":"1aa78d24_b78b5ac2","updated":"2016-07-14 17:41:33.000000000","message":"sure.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        super(DvrEdgeRouter, self).add_floatingip_dist_unbound(fip, fip_cidr)"},{"line_number":296,"context_line":"        if not self._is_this_snat_host():"},{"line_number":297,"context_line":"            return"},{"line_number":298,"context_line":"        if not self.get_ex_gw_port():"},{"line_number":299,"context_line":"            return"},{"line_number":300,"context_line":"        interface_name \u003d self.get_snat_external_device_interface_name("},{"line_number":301,"context_line":"            self.get_ex_gw_port())"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_779d7209","line":298,"updated":"2016-07-06 17:48:08.000000000","message":"Here too","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        super(DvrEdgeRouter, self).add_floatingip_dist_unbound(fip, fip_cidr)"},{"line_number":296,"context_line":"        if not self._is_this_snat_host():"},{"line_number":297,"context_line":"            return"},{"line_number":298,"context_line":"        if not self.get_ex_gw_port():"},{"line_number":299,"context_line":"            return"},{"line_number":300,"context_line":"        interface_name \u003d self.get_snat_external_device_interface_name("},{"line_number":301,"context_line":"            self.get_ex_gw_port())"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_9e86aed9","line":298,"in_reply_to":"1aa78d24_779d7209","updated":"2016-07-14 17:41:33.000000000","message":"will do.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            self._set_floating_ip_nat_rules_for_unbound_port(fip)"},{"line_number":355,"context_line":"        self.snat_iptables_manager.apply()"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def _get_snat_external_device_name(self, port_id):"},{"line_number":358,"context_line":"        long_name \u003d router.EXTERNAL_DEV_PREFIX + port_id"},{"line_number":359,"context_line":"        return long_name[:self.driver.DEV_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_77fc5272","line":357,"updated":"2016-07-06 17:48:08.000000000","message":"Can\u0027t you just use get_external_device_name() from router_info.py here?","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            self._set_floating_ip_nat_rules_for_unbound_port(fip)"},{"line_number":355,"context_line":"        self.snat_iptables_manager.apply()"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def _get_snat_external_device_name(self, port_id):"},{"line_number":358,"context_line":"        long_name \u003d router.EXTERNAL_DEV_PREFIX + port_id"},{"line_number":359,"context_line":"        return long_name[:self.driver.DEV_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_fed9b2f5","line":357,"in_reply_to":"1aa78d24_77fc5272","updated":"2016-07-14 17:41:33.000000000","message":"I think that might be different.\nBut let me check, since the router namespace is slightly different.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"}],"neutron/agent/l3/dvr_local_router.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def floating_forward_rules(self, floating_ip, fixed_ip, fip):"},{"line_number":54,"context_line":"        \"\"\"Override this function defined in router_info for dvr routers.\"\"\""},{"line_number":55,"context_line":"        if fip and fip.get(\u0027unbound\u0027) \u003d\u003d \u0027cvr\u0027:"},{"line_number":56,"context_line":"            return []"},{"line_number":57,"context_line":"        if not self.fip_ns:"},{"line_number":58,"context_line":"            return []"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_97ae1ee4","line":55,"updated":"2016-07-06 17:48:08.000000000","message":"\u0027cvr\u0027 string need to be in constants file.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def floating_forward_rules(self, floating_ip, fixed_ip, fip):"},{"line_number":54,"context_line":"        \"\"\"Override this function defined in router_info for dvr routers.\"\"\""},{"line_number":55,"context_line":"        if fip and fip.get(\u0027unbound\u0027) \u003d\u003d \u0027cvr\u0027:"},{"line_number":56,"context_line":"            return []"},{"line_number":57,"context_line":"        if not self.fip_ns:"},{"line_number":58,"context_line":"            return []"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_bee60aae","line":55,"in_reply_to":"1aa78d24_97ae1ee4","updated":"2016-07-14 17:41:33.000000000","message":"will add it to the constants file.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            fip.get(\u0027unbound\u0027) \u003d\u003d \u0027cvr\u0027):"},{"line_number":92,"context_line":"            self.floatingips_unbound_set.add(fip_cidr)"},{"line_number":93,"context_line":"            self.add_floatingip_dist_unbound(fip, fip_cidr)"},{"line_number":94,"context_line":"        else:"},{"line_number":95,"context_line":"            floating_ip \u003d fip[\u0027floating_ip_address\u0027]"},{"line_number":96,"context_line":"            fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"},{"line_number":97,"context_line":"            rule_pr \u003d self.fip_ns.allocate_rule_priority(floating_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_b76a3ab1","line":94,"updated":"2016-07-06 17:48:08.000000000","message":"The below looks like a good candidate for a private method called _floating_ip_added_dist() to greatly reduce the amount of change in this patch.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            fip.get(\u0027unbound\u0027) \u003d\u003d \u0027cvr\u0027):"},{"line_number":92,"context_line":"            self.floatingips_unbound_set.add(fip_cidr)"},{"line_number":93,"context_line":"            self.add_floatingip_dist_unbound(fip, fip_cidr)"},{"line_number":94,"context_line":"        else:"},{"line_number":95,"context_line":"            floating_ip \u003d fip[\u0027floating_ip_address\u0027]"},{"line_number":96,"context_line":"            fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"},{"line_number":97,"context_line":"            rule_pr \u003d self.fip_ns.allocate_rule_priority(floating_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_defdd63c","line":94,"in_reply_to":"1aa78d24_b76a3ab1","updated":"2016-07-14 17:41:33.000000000","message":"will try to add it in.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2785ca90b481b0e48632185d39de5b48c5f4ec61","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        if fip_cidr in self.floatingips_unbound_set:"},{"line_number":125,"context_line":"            self.remove_floatingip_dist_unbound(fip_cidr)"},{"line_number":126,"context_line":"            self.floatingips_unbound_set.remove(fip_cidr)"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            floating_ip \u003d fip_cidr.split(\u0027/\u0027)[0]"},{"line_number":129,"context_line":"            rtr_2_fip_name \u003d self.fip_ns.get_rtr_ext_device_name("},{"line_number":130,"context_line":"                self.router_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_d75d4616","line":127,"updated":"2016-07-06 17:48:08.000000000","message":"Similar comment as L94","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"09d3b7949511f31b69ee69540f22b414fc8a054f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        if fip_cidr in self.floatingips_unbound_set:"},{"line_number":125,"context_line":"            self.remove_floatingip_dist_unbound(fip_cidr)"},{"line_number":126,"context_line":"            self.floatingips_unbound_set.remove(fip_cidr)"},{"line_number":127,"context_line":"        else:"},{"line_number":128,"context_line":"            floating_ip \u003d fip_cidr.split(\u0027/\u0027)[0]"},{"line_number":129,"context_line":"            rtr_2_fip_name \u003d self.fip_ns.get_rtr_ext_device_name("},{"line_number":130,"context_line":"                self.router_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_1ef8fe48","line":127,"in_reply_to":"1aa78d24_d75d4616","updated":"2016-07-14 17:41:33.000000000","message":"sure.","commit_id":"d7694d465d3e1474a990dd7745efd8619241e225"}]}
