)]}'
{"dragonflow/controller/dnat_app.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0464d27d0e6b24ada066823daaa54011d9bb61cc","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        self._install_egress_nat_rules(floatingip)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def disassociate_floatingip(self, floatingip):"},{"line_number":354,"context_line":"        self.local_floatingips.pop(floatingip.get_id(), 0)"},{"line_number":355,"context_line":"        self.delete_floatingip(floatingip)"},{"line_number":356,"context_line":"        self.update_floatingip_status("},{"line_number":357,"context_line":"            floatingip, n_const.FLOATINGIP_STATUS_DOWN)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_688791d7","line":354,"updated":"2016-07-05 18:14:47.000000000","message":"Consider also verifying here that the the floating ip was indeed in local_floatingips (e.g. it is not removed twice). This can be done in another patch, though.","commit_id":"0f2f11c69b55f88fb7e694baab9f5e00e0545af2"},{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"e2611e59b2c2b84cb051288e34ebc3e13376af83","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        self._install_egress_nat_rules(floatingip)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def disassociate_floatingip(self, floatingip):"},{"line_number":354,"context_line":"        self.local_floatingips.pop(floatingip.get_id(), 0)"},{"line_number":355,"context_line":"        self.delete_floatingip(floatingip)"},{"line_number":356,"context_line":"        self.update_floatingip_status("},{"line_number":357,"context_line":"            floatingip, n_const.FLOATINGIP_STATUS_DOWN)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_c19816c3","line":354,"in_reply_to":"1aa78d24_688791d7","updated":"2016-07-05 23:04:32.000000000","message":"yep, not in the scope, following patch will cover it .","commit_id":"0f2f11c69b55f88fb7e694baab9f5e00e0545af2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0464d27d0e6b24ada066823daaa54011d9bb61cc","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def remove_local_port(self, lport):"},{"line_number":360,"context_line":"        port_id \u003d lport.get_id()"},{"line_number":361,"context_line":"        fip_iter \u003d six.iteritems(copy.deepcopy(self.local_floatingips))"},{"line_number":362,"context_line":"        for key, floatingip in fip_iter:"},{"line_number":363,"context_line":"            if floatingip.get_lport_id() \u003d\u003d port_id:"},{"line_number":364,"context_line":"                self.disassociate_floatingip(floatingip)"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_282f49f7","line":362,"range":{"start_line":361,"start_character":0,"end_line":362,"end_character":40},"updated":"2016-07-05 18:14:47.000000000","message":"I think it would be better to just save the floating ips that need to be disassociated in one loop, and then iterating that list and call disassociate_floatingip.\ne.g.: \nips_to_disassociate \u003d [floatingip for floatingip in six.itervalues(self.local_floatingips) if floatingip.get_lport_id() \u003d\u003d port_id]\nfor floatingip in ips_to_disassociate:\n    self.disassociate_floatingip(floatingip)","commit_id":"0f2f11c69b55f88fb7e694baab9f5e00e0545af2"},{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"e2611e59b2c2b84cb051288e34ebc3e13376af83","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def remove_local_port(self, lport):"},{"line_number":360,"context_line":"        port_id \u003d lport.get_id()"},{"line_number":361,"context_line":"        fip_iter \u003d six.iteritems(copy.deepcopy(self.local_floatingips))"},{"line_number":362,"context_line":"        for key, floatingip in fip_iter:"},{"line_number":363,"context_line":"            if floatingip.get_lport_id() \u003d\u003d port_id:"},{"line_number":364,"context_line":"                self.disassociate_floatingip(floatingip)"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_018fbe75","line":362,"range":{"start_line":361,"start_character":0,"end_line":362,"end_character":40},"in_reply_to":"1aa78d24_282f49f7","updated":"2016-07-05 23:04:32.000000000","message":"will done","commit_id":"0f2f11c69b55f88fb7e694baab9f5e00e0545af2"}]}
