)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"c529aaf8c8ab59aa4d539d6e8e82cc16160a97d5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Carl Baldwin \u003ccarl.baldwin@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-06 14:36:32 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Wild idea to change how snat routing tables are handled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I968a4ccab28c26c3199ac56b41453f7f78f7a3c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa69d971_13b5927c","line":7,"updated":"2016-01-06 21:42:14.000000000","message":"Wild thing\nYou make my heart sing\nYou make SNAT routing groovy","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"d50ef8173a00c5ca2ae7b2284cd66e474f34dcff","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Carl Baldwin \u003ccarl.baldwin@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-06 14:36:32 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Wild idea to change how snat routing tables are handled"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I968a4ccab28c26c3199ac56b41453f7f78f7a3c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa69d971_a5d1d924","line":7,"in_reply_to":"fa69d971_13b5927c","updated":"2016-01-06 21:57:36.000000000","message":"rofl","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"}],"neutron/agent/l3/dvr_local_router.py":[{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"369894446df6fade93d454cf8f8282bf73f5a7f6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.fip_ns \u003d None"},{"line_number":51,"context_line":"        self._pending_arp_set \u003d set()"},{"line_number":52,"context_line":"        self.snat_rt_tables_manager \u003d rt_tables.RoutingTablesManager("},{"line_number":53,"context_line":"            self.ns_name, id_range\u003drange(SNAT_TABLE_START, SNAT_TABLE_END))"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_floating_ips(self):"},{"line_number":56,"context_line":"        \"\"\"Filter Floating IPs to be hosted on this agent.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_173cf0c6","line":53,"updated":"2016-01-11 04:25:05.000000000","message":"I\u0027m not sure it\u0027s necessary or not to use RoutingTablesManager here.","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"08c60dce301c12b56e06c8609bddb4d1e339c6e8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.floating_ips_dict[floating_ip] \u003d rule_pr"},{"line_number":83,"context_line":"        fip_2_rtr_name \u003d self.fip_ns.get_int_device_name(self.router_id)"},{"line_number":84,"context_line":"        ip_rule \u003d ip_lib.IPRule(namespace\u003dself.ns_name)"},{"line_number":85,"context_line":"        ip_rule.rule.add(ip\u003dfixed_ip,"},{"line_number":86,"context_line":"                         table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":87,"context_line":"                         priority\u003drule_pr)"},{"line_number":88,"context_line":"        #Add routing rule in fip namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_a5231955","line":85,"range":{"start_line":85,"start_character":25,"end_line":85,"end_character":36},"updated":"2016-01-06 21:55:51.000000000","message":"I think this should be specifying the interface with \"iif\" too.  But, that would be in a follow-on patch set.","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"0936f2d4b79c438e0dd60ac7172928de68e22250","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.floating_ips_dict[floating_ip] \u003d rule_pr"},{"line_number":83,"context_line":"        fip_2_rtr_name \u003d self.fip_ns.get_int_device_name(self.router_id)"},{"line_number":84,"context_line":"        ip_rule \u003d ip_lib.IPRule(namespace\u003dself.ns_name)"},{"line_number":85,"context_line":"        ip_rule.rule.add(ip\u003dfixed_ip,"},{"line_number":86,"context_line":"                         table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":87,"context_line":"                         priority\u003drule_pr)"},{"line_number":88,"context_line":"        #Add routing rule in fip namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_510b582a","line":85,"range":{"start_line":85,"start_character":25,"end_line":85,"end_character":36},"in_reply_to":"fa69d971_a5231955","updated":"2016-01-11 04:24:07.000000000","message":"Yes, adding \u0027iif\u0027 will be a good idea to go with.","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"08c60dce301c12b56e06c8609bddb4d1e339c6e8","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                            snat_rt \u003d self.snat_rt_tables_manager.add(sn_int)"},{"line_number":271,"context_line":"                            ns_ipd.route.add_gateway(gw_ip_addr,"},{"line_number":272,"context_line":"                                                     table\u003dsnat_rt.name)"},{"line_number":273,"context_line":"                            ns_ipr.rule.add(ip\u003dsn_port_cidr,"},{"line_number":274,"context_line":"                                            table\u003dsnat_rt.name,"},{"line_number":275,"context_line":"                                            priority\u003dSNAT_PRIORITY)"},{"line_number":276,"context_line":"                            ns_ipwrapr.netns.execute("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_0511c503","line":273,"range":{"start_line":273,"start_character":47,"end_line":273,"end_character":59},"updated":"2016-01-06 21:55:51.000000000","message":"Besides this change, I think that the interface should be added to the rule using the \"iif\" option.  Otherwise, this rule doesn\u0027t work with address scopes.  Basically, with address scopes, addresses should be considered in the scope of the interface on which they come in.\n\nIn fact, I wonder if the ip should be passed at all.  Since this is dvr local routing, it probably doesn\u0027t matter much but I don\u0027t think it is necessary.","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"0936f2d4b79c438e0dd60ac7172928de68e22250","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                            ns_ipd.route.add_gateway(gw_ip_addr,"},{"line_number":272,"context_line":"                                                     table\u003dsnat_rt.name)"},{"line_number":273,"context_line":"                            ns_ipr.rule.add(ip\u003dsn_port_cidr,"},{"line_number":274,"context_line":"                                            table\u003dsnat_rt.name,"},{"line_number":275,"context_line":"                                            priority\u003dSNAT_PRIORITY)"},{"line_number":276,"context_line":"                            ns_ipwrapr.netns.execute("},{"line_number":277,"context_line":"                                [\u0027sysctl\u0027, \u0027-w\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_1715d03e","line":274,"updated":"2016-01-11 04:24:07.000000000","message":"Will all the snat ip rule be added in the same table? I feel this is not a good idea.","commit_id":"e1d6bcd8d62486c4c2ffdb666932b6249cfdeb5c"}]}
