)]}'
{"neutron/agent/l3/dvr_local_router.py":[{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"4310925a3a5baea5af99dce42447b4bcf770488a","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                for gw_fixed_ip in gateway[\u0027fixed_ips\u0027]:"},{"line_number":284,"context_line":"                    gw_ip_addr \u003d gw_fixed_ip[\u0027ip_address\u0027]"},{"line_number":285,"context_line":"                    if netaddr.IPAddress(gw_ip_addr).version \u003d\u003d port_ip_vers:"},{"line_number":286,"context_line":"                        sn_port_cidr \u003d common_utils.ip_to_cidr("},{"line_number":287,"context_line":"                            port_ip_addr, port_fixed_ip[\u0027prefixlen\u0027])"},{"line_number":288,"context_line":"                        snat_idx \u003d self._get_snat_idx(sn_port_cidr)"},{"line_number":289,"context_line":"                        if is_add:"},{"line_number":290,"context_line":"                            ns_ipwrapr \u003d ip_lib.IPWrapper("},{"line_number":291,"context_line":"                                namespace\u003dself.ns_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_c2937aa2","line":288,"range":{"start_line":286,"start_character":24,"end_line":288,"end_character":67},"updated":"2016-01-20 16:42:14.000000000","message":"If you really want to improve something, please move this before L283.","commit_id":"5ceb264739f9fe439914accf4d28a27b79ee0383"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"46a85666ce5e1b3f0f327ec5d79323ee25d4d527","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                for gw_fixed_ip in gateway[\u0027fixed_ips\u0027]:"},{"line_number":284,"context_line":"                    gw_ip_addr \u003d gw_fixed_ip[\u0027ip_address\u0027]"},{"line_number":285,"context_line":"                    if netaddr.IPAddress(gw_ip_addr).version \u003d\u003d port_ip_vers:"},{"line_number":286,"context_line":"                        sn_port_cidr \u003d common_utils.ip_to_cidr("},{"line_number":287,"context_line":"                            port_ip_addr, port_fixed_ip[\u0027prefixlen\u0027])"},{"line_number":288,"context_line":"                        snat_idx \u003d self._get_snat_idx(sn_port_cidr)"},{"line_number":289,"context_line":"                        if is_add:"},{"line_number":290,"context_line":"                            ns_ipwrapr \u003d ip_lib.IPWrapper("},{"line_number":291,"context_line":"                                namespace\u003dself.ns_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_afee58ea","line":288,"range":{"start_line":286,"start_character":24,"end_line":288,"end_character":67},"in_reply_to":"9a68dd71_c2937aa2","updated":"2016-01-20 23:58:26.000000000","message":"Thanks ZongKai, May be this is the right logic. Do nothing is better. :)","commit_id":"5ceb264739f9fe439914accf4d28a27b79ee0383"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"4310925a3a5baea5af99dce42447b4bcf770488a","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                        snat_idx \u003d self._get_snat_idx(sn_port_cidr)"},{"line_number":289,"context_line":"                        if is_add:"},{"line_number":290,"context_line":"                            ns_ipwrapr \u003d ip_lib.IPWrapper("},{"line_number":291,"context_line":"                                namespace\u003dself.ns_name)"},{"line_number":292,"context_line":"                            ns_ipd.route.add_gateway(gw_ip_addr,"},{"line_number":293,"context_line":"                                                     table\u003dsnat_idx)"},{"line_number":294,"context_line":"                            ns_ipr.rule.add(ip\u003dsn_port_cidr,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_02cf52b1","line":291,"updated":"2016-01-20 16:42:14.000000000","message":"IMO, previous code put ns_ipwrapr out of the nested for-loop is to avoid duplicated create IPWrapper object.","commit_id":"5ceb264739f9fe439914accf4d28a27b79ee0383"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"46a85666ce5e1b3f0f327ec5d79323ee25d4d527","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                        snat_idx \u003d self._get_snat_idx(sn_port_cidr)"},{"line_number":289,"context_line":"                        if is_add:"},{"line_number":290,"context_line":"                            ns_ipwrapr \u003d ip_lib.IPWrapper("},{"line_number":291,"context_line":"                                namespace\u003dself.ns_name)"},{"line_number":292,"context_line":"                            ns_ipd.route.add_gateway(gw_ip_addr,"},{"line_number":293,"context_line":"                                                     table\u003dsnat_idx)"},{"line_number":294,"context_line":"                            ns_ipr.rule.add(ip\u003dsn_port_cidr,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_2f5d88e9","line":291,"in_reply_to":"9a68dd71_02cf52b1","updated":"2016-01-20 23:58:26.000000000","message":"Sorry, lack of consideration.","commit_id":"5ceb264739f9fe439914accf4d28a27b79ee0383"}]}
