)]}'
{"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":"f6dca897cc0779b44871b17ac844f8b7258bcbd9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            ip_rule.rule.delete(ip\u003dfloating_ip,"},{"line_number":157,"context_line":"                                table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":158,"context_line":"                                priority\u003drule_pr)"},{"line_number":159,"context_line":"            self.fip_ns.deallocate_rule_priority(floating_ip)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"},{"line_number":162,"context_line":"        rule_pr \u003d self.fip_ns.allocate_rule_priority(floating_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_475c3bed","line":159,"updated":"2016-07-05 21:43:09.000000000","message":"Only nit that we\u0027re duplicating code.\n\nL152 to here could be split into something like _remove_floating_ip_rule() and used both here and from floating_ip_removed_dist().","commit_id":"8e6d553708589983f430468712346c91823a6b51"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1a3c2c699acf0fd391938550b3474133c1561953","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            ip_rule.rule.delete(ip\u003dfloating_ip,"},{"line_number":157,"context_line":"                                table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":158,"context_line":"                                priority\u003drule_pr)"},{"line_number":159,"context_line":"            self.fip_ns.deallocate_rule_priority(floating_ip)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        fixed_ip \u003d fip[\u0027fixed_ip_address\u0027]"},{"line_number":162,"context_line":"        rule_pr \u003d self.fip_ns.allocate_rule_priority(floating_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_4ec1e653","line":159,"in_reply_to":"1aa78d24_475c3bed","updated":"2016-07-06 07:30:08.000000000","message":"Yep, agree","commit_id":"8e6d553708589983f430468712346c91823a6b51"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f6dca897cc0779b44871b17ac844f8b7258bcbd9","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ip_rule \u003d ip_lib.IPRule(namespace\u003dself.ns_name)"},{"line_number":165,"context_line":"        ip_rule.rule.add(ip\u003dfixed_ip,"},{"line_number":166,"context_line":"                         table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":167,"context_line":"                         priority\u003drule_pr)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def add_floating_ip(self, fip, interface_name, device):"},{"line_number":170,"context_line":"        # Special Handling for DVR - update FIP namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_e76d6799","line":167,"updated":"2016-07-05 21:43:09.000000000","message":"Same for the add case.","commit_id":"8e6d553708589983f430468712346c91823a6b51"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1a3c2c699acf0fd391938550b3474133c1561953","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        ip_rule \u003d ip_lib.IPRule(namespace\u003dself.ns_name)"},{"line_number":165,"context_line":"        ip_rule.rule.add(ip\u003dfixed_ip,"},{"line_number":166,"context_line":"                         table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":167,"context_line":"                         priority\u003drule_pr)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def add_floating_ip(self, fip, interface_name, device):"},{"line_number":170,"context_line":"        # Special Handling for DVR - update FIP namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_8eb74ef4","line":167,"in_reply_to":"1aa78d24_e76d6799","updated":"2016-07-06 07:30:08.000000000","message":"Done","commit_id":"8e6d553708589983f430468712346c91823a6b51"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"86765345c963c9175ca8430677073241f9a61815","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                         priority\u003drule_pr)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _remove_floating_ip_rule(self, floating_ip):"},{"line_number":119,"context_line":"        if floating_ip in self.floating_ips_dict:"},{"line_number":120,"context_line":"            rule_pr \u003d self.floating_ips_dict[floating_ip]"},{"line_number":121,"context_line":"            ip_rule \u003d ip_lib.IPRule(namespace\u003dself.ns_name)"},{"line_number":122,"context_line":"            ip_rule.rule.delete(ip\u003dfloating_ip,"},{"line_number":123,"context_line":"                                table\u003ddvr_fip_ns.FIP_RT_TBL,"},{"line_number":124,"context_line":"                                priority\u003drule_pr)"},{"line_number":125,"context_line":"            self.fip_ns.deallocate_rule_priority(floating_ip)"},{"line_number":126,"context_line":"            #TODO(rajeev): Handle else case - exception/log?"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def floating_ip_removed_dist(self, fip_cidr):"},{"line_number":129,"context_line":"        \"\"\"Remove floating IP from FIP namespace.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_296d9898","line":126,"range":{"start_line":119,"start_character":0,"end_line":126,"end_character":60},"updated":"2016-07-11 11:24:30.000000000","message":"What about do not move this section of code here? This is just adding a new function name `_remove_floating_ip_rule`. Leaving the code to the original place will make the cherry-pick more conveniently.","commit_id":"b8a2cb813225ae6178f34363cab9a2446d471472"}],"neutron/tests/functional/agent/l3/test_dvr_router.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"86765345c963c9175ca8430677073241f9a61815","unresolved":false,"context_lines":[{"line_number":516,"context_line":"            router_ns, floating_ips[0][\u0027fixed_ip_address\u0027])"},{"line_number":517,"context_line":"        self.assertNotEqual(fip_rule_prio_1, fip_rule_prio_2)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    def test_dvr_router_floating_ip_moved(self):"},{"line_number":520,"context_line":"        self.agent.conf.agent_mode \u003d \u0027dvr\u0027"},{"line_number":521,"context_line":"        router_info \u003d self.generate_dvr_router_info()"},{"line_number":522,"context_line":"        router \u003d self.manage_router(self.agent, router_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_a95a2881","line":519,"updated":"2016-07-11 11:24:30.000000000","message":"Nice work. Thanks.","commit_id":"b8a2cb813225ae6178f34363cab9a2446d471472"}]}
