)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ee720ff3f8c1954077c0e00d5ba9ac220c18af76","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Refactor the _get_external_device_interface_name method"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently this method does two things. It returns the name"},{"line_number":10,"context_line":"of the external interface name as its name indicates. But"},{"line_number":11,"context_line":"this method creates some interfaces in the case of dvr mode."},{"line_number":12,"context_line":"This patch split these two things into two methods and"},{"line_number":13,"context_line":"refactor a bit the code according to this change."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a890539_ebbda4d8","line":10,"updated":"2014-11-21 04:19:27.000000000","message":"nit:  Remove the first \"name\" on this line.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"243fc122e3ef101d8c75a4bd294b69335d850da8","unresolved":false,"context_lines":[{"line_number":792,"context_line":"            ri.iptables_manager.ipv4[\u0027nat\u0027].add_rule(*rule)"},{"line_number":793,"context_line":"        ri.iptables_manager.apply()"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    def process_router_floating_ip_nat_rules(self, ri, floating_ips):"},{"line_number":796,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        Configures iptables rules for the floating ips of the given router."}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_5832e05e","line":795,"range":{"start_line":795,"start_character":55,"end_line":795,"end_character":67},"updated":"2015-01-06 10:26:27.000000000","message":"You could consider floating_ips\u003dNone\n\nint he code:\n\nif floating_ips \u003d\u003d None:\n    floating_ips \u003d []\n\nthen you can save the updates on lines 1153 and 1154 (as exmaples)","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"37289be89410b0000fa578e75876e90e21333097","unresolved":false,"context_lines":[{"line_number":792,"context_line":"            ri.iptables_manager.ipv4[\u0027nat\u0027].add_rule(*rule)"},{"line_number":793,"context_line":"        ri.iptables_manager.apply()"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    def process_router_floating_ip_nat_rules(self, ri, floating_ips):"},{"line_number":796,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        Configures iptables rules for the floating ips of the given router."}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_ebb7381f","line":795,"in_reply_to":"3a961159_5832e05e","updated":"2015-01-06 10:47:53.000000000","message":"Agreed","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"243fc122e3ef101d8c75a4bd294b69335d850da8","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        Configures iptables rules for the floating ips of the given router."},{"line_number":799,"context_line":"        The floating_ips parameter has to be provided thanks to the"},{"line_number":800,"context_line":"        get_floating_ips method in order to have the floating ips list"},{"line_number":801,"context_line":"        correctly filtered."},{"line_number":802,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_98d1a8fd","line":799,"updated":"2015-01-06 10:26:27.000000000","message":"i am not sure that we need this comment","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"37289be89410b0000fa578e75876e90e21333097","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        Configures iptables rules for the floating ips of the given router."},{"line_number":799,"context_line":"        The floating_ips parameter has to be provided thanks to the"},{"line_number":800,"context_line":"        get_floating_ips method in order to have the floating ips list"},{"line_number":801,"context_line":"        correctly filtered."},{"line_number":802,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_4bc76c98","line":799,"in_reply_to":"3a961159_98d1a8fd","updated":"2015-01-06 10:47:53.000000000","message":"It was to address a comment from Michael Smith in the PS1. Suggestion are welcome","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"243fc122e3ef101d8c75a4bd294b69335d850da8","unresolved":false,"context_lines":[{"line_number":879,"context_line":""},{"line_number":880,"context_line":"        Ensures addresses for existing floating IPs and cleans up"},{"line_number":881,"context_line":"        those that should not longer be configured."},{"line_number":882,"context_line":"        The floating_ips parameter has to be provided thanks to the"},{"line_number":883,"context_line":"        get_floating_ips method in order to have the floating ips list"},{"line_number":884,"context_line":"        correctly filtered."},{"line_number":885,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_1805b879","line":882,"updated":"2015-01-06 10:26:27.000000000","message":"same comment here","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"243fc122e3ef101d8c75a4bd294b69335d850da8","unresolved":false,"context_lines":[{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    def external_gateway_removed(self, ri, ex_gw_port, interface_name):"},{"line_number":1152,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1153,"context_line":"            self.process_router_floating_ip_nat_rules(ri, [])"},{"line_number":1154,"context_line":"            self.process_router_floating_ip_addresses(ri, ex_gw_port, [])"},{"line_number":1155,"context_line":"            for p in ri.internal_ports:"},{"line_number":1156,"context_line":"                internal_interface \u003d self.get_internal_device_name(p[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_f8eb8ca1","line":1153,"updated":"2015-01-06 10:26:27.000000000","message":"this is an example of where the comments are not relevant","commit_id":"3d958d69c126028b8fb0c3dfb8e46ccbf55deb46"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"609d7b8cab26aa53fd6e8aa98fc2329612f9119e","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        Configures iptables rules for the floating ips of the given router."},{"line_number":598,"context_line":"        The floating_ips parameter has to be provided thanks to the"},{"line_number":599,"context_line":"        get_floating_ips method in order to have the floating ips list"},{"line_number":600,"context_line":"        correctly filtered."},{"line_number":601,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_b5858dae","line":598,"updated":"2015-01-15 01:40:27.000000000","message":"The docstring is no place for describing why a method signature looks in a certain way, especially if this is done in relation to the use from another method. This smells lack of separation of concerns and should be avoided.\n\nPlease consider adding this as a #NOTE if you feel the need of explaining why the extra param is necessary.","commit_id":"03c484bf0cf2d9ac261bc25dd6bda771cb3ffc08"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"609d7b8cab26aa53fd6e8aa98fc2329612f9119e","unresolved":false,"context_lines":[{"line_number":673,"context_line":"                self.floating_ip_removed_dist(ri, ip_cidr)"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"    def process_router_floating_ip_addresses(self, ri, ex_gw_port,"},{"line_number":676,"context_line":"                                             floating_ips\u003dNone):"},{"line_number":677,"context_line":"        \"\"\"Configure IP addresses on router\u0027s external gateway interface."},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        Ensures addresses for existing floating IPs and cleans up"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_d58e99d0","line":676,"updated":"2015-01-15 01:40:27.000000000","message":"ditto","commit_id":"03c484bf0cf2d9ac261bc25dd6bda771cb3ffc08"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b1dc14636ba14c9d66421c08870e6823a4955041","unresolved":false,"context_lines":[{"line_number":615,"context_line":"                    break"},{"line_number":616,"context_line":"        iptables_manager.apply()"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def process_router_floating_ip_nat_rules(self, ri, floating_ips\u003dNone):"},{"line_number":619,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        Configures iptables rules for the floating ips of the given router."}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_d45e74e8","line":618,"updated":"2015-01-15 21:49:45.000000000","message":"Do we need to pass around floating_ips?  Couldn\u0027t this method just call self.get_floating_ips() itself?  I\u0027ll see how it looks and upload a patch.","commit_id":"ca6c83b84ece135755d8f374f6ff0b1e7b74df12"}],"neutron/agent/l3_agent.py":[{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"9bddaef67c0f6e0021ecc4b3e83664a7c7e280f8","unresolved":false,"context_lines":[{"line_number":1079,"context_line":"            ri.iptables_manager.ipv4[\u0027nat\u0027].add_rule(*rule)"},{"line_number":1080,"context_line":"        ri.iptables_manager.apply()"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"    def process_router_floating_ip_nat_rules(self, ri, floating_ips):"},{"line_number":1083,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":1084,"context_line":""},{"line_number":1085,"context_line":"        Configures iptables rules for the floating ips of the given router"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_80ece8bc","line":1082,"updated":"2014-11-21 17:39:57.000000000","message":"Can we have any sort of comment indicating a pre-condition requirement that floating_ips must be pre-filtered via a call to get_floating_ips?  This refactor is an improvement but I\u0027m a little nervous about callers having to pre-filter.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"0065dd8c1f02c72dd4ff1be8b296f5399d683414","unresolved":false,"context_lines":[{"line_number":1079,"context_line":"            ri.iptables_manager.ipv4[\u0027nat\u0027].add_rule(*rule)"},{"line_number":1080,"context_line":"        ri.iptables_manager.apply()"},{"line_number":1081,"context_line":""},{"line_number":1082,"context_line":"    def process_router_floating_ip_nat_rules(self, ri, floating_ips):"},{"line_number":1083,"context_line":"        \"\"\"Configure NAT rules for the router\u0027s floating IPs."},{"line_number":1084,"context_line":""},{"line_number":1085,"context_line":"        Configures iptables rules for the floating ips of the given router"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_e4c76043","line":1082,"in_reply_to":"5a890539_80ece8bc","updated":"2014-11-24 09:47:58.000000000","message":"Agreed, I\u0027ll do","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"9bddaef67c0f6e0021ecc4b3e83664a7c7e280f8","unresolved":false,"context_lines":[{"line_number":1100,"context_line":""},{"line_number":1101,"context_line":"    def create_dvr_fip_interfaces(self, ri, ex_gw_port, floating_ips):"},{"line_number":1102,"context_line":"        # filter out only FIPs for this host/agent"},{"line_number":1103,"context_line":"        floating_ips \u003d [i for i in floating_ips if i[\u0027host\u0027] \u003d\u003d self.host]"},{"line_number":1104,"context_line":"        if floating_ips:"},{"line_number":1105,"context_line":"            is_first \u003d self._fip_ns_subscribe(ri.router_id)"},{"line_number":1106,"context_line":"            if is_first:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_a089e427","line":1103,"updated":"2014-11-21 17:39:57.000000000","message":"The line above can be removed since floating_ips is pre-filtered now (L987).  I\u0027d still like a comment indicating that floating_ips must be pre-filtered for DVR if possible.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"0065dd8c1f02c72dd4ff1be8b296f5399d683414","unresolved":false,"context_lines":[{"line_number":1100,"context_line":""},{"line_number":1101,"context_line":"    def create_dvr_fip_interfaces(self, ri, ex_gw_port, floating_ips):"},{"line_number":1102,"context_line":"        # filter out only FIPs for this host/agent"},{"line_number":1103,"context_line":"        floating_ips \u003d [i for i in floating_ips if i[\u0027host\u0027] \u003d\u003d self.host]"},{"line_number":1104,"context_line":"        if floating_ips:"},{"line_number":1105,"context_line":"            is_first \u003d self._fip_ns_subscribe(ri.router_id)"},{"line_number":1106,"context_line":"            if is_first:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_84e4dce0","line":1103,"in_reply_to":"5a890539_a089e427","updated":"2014-11-24 09:47:58.000000000","message":"oh, you\u0027re right, rebasing issue :)","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"ee720ff3f8c1954077c0e00d5ba9ac220c18af76","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_8b4980d2","line":1119,"updated":"2014-11-21 04:19:27.000000000","message":"Nit: these two lines don\u0027t do anything for me.  You might consider removing them.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"940d380f2ef6b90a29d71fed910de2f93a40a717","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_0c11d851","line":1119,"in_reply_to":"5a890539_04f9cc4d","updated":"2014-11-24 23:29:36.000000000","message":"In python, isn\u0027t None \"returned\" if there is no return? Or is it a style thing?  I\u0027m OK either way. \nhttp://stackoverflow.com/questions/15300550/python-return-return-none-and-no-return-at-all","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"0e1c51107a592d8e13e505d2c6100badf8adcd0b","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_24406406","line":1119,"in_reply_to":"5a890539_0c11d851","updated":"2014-11-25 08:39:18.000000000","message":"Hehe, I\u0027m ok to remove the \"return None\". As you was saying to remove two lines I was not sure about what was you intention.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"3783f00084a1569f062332116b9709db8baddb10","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_1328f0e0","line":1119,"in_reply_to":"5a890539_24406406","updated":"2014-11-25 22:57:52.000000000","message":"I thought that was what Carl meant but looking at it again, we need to take care that the return at L1122 is not called in this path however.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"9bddaef67c0f6e0021ecc4b3e83664a7c7e280f8","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_a0900444","line":1119,"in_reply_to":"5a890539_8b4980d2","updated":"2014-11-21 17:39:57.000000000","message":"+1","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"0065dd8c1f02c72dd4ff1be8b296f5399d683414","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        if ri.router[\u0027distributed\u0027]:"},{"line_number":1117,"context_line":"            if self.agent_gateway_port:"},{"line_number":1118,"context_line":"                return self.get_rtr_int_device_name(ri.router_id)"},{"line_number":1119,"context_line":"            else:"},{"line_number":1120,"context_line":"                return None"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"        return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_04f9cc4d","line":1119,"in_reply_to":"5a890539_a0900444","updated":"2014-11-24 09:47:58.000000000","message":"mmm, we need to return None if we are in the dvr mode and we don\u0027t have the self.agent_gateway_port filled ? There is a condition line 1171 about the value returned here.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":10971,"name":"Michael Smith","email":"michael.smith6@hp.com","username":"mrsmith"},"change_message_id":"9bddaef67c0f6e0021ecc4b3e83664a7c7e280f8","unresolved":false,"context_lines":[{"line_number":1162,"context_line":"                self.floating_ip_removed_dist(ri, ip_cidr)"},{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def process_router_floating_ip_addresses(self, ri, ex_gw_port,"},{"line_number":1165,"context_line":"                                             floating_ips):"},{"line_number":1166,"context_line":"        \"\"\"Configure IP addresses on router\u0027s external gateway interface."},{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"        Ensures addresses for existing floating IPs and cleans up"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_e0092c85","line":1165,"updated":"2014-11-21 17:39:57.000000000","message":"Similar to L1082 - it would be nice to have a comment about pre-filtering floating_ips if possible.","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"0065dd8c1f02c72dd4ff1be8b296f5399d683414","unresolved":false,"context_lines":[{"line_number":1162,"context_line":"                self.floating_ip_removed_dist(ri, ip_cidr)"},{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def process_router_floating_ip_addresses(self, ri, ex_gw_port,"},{"line_number":1165,"context_line":"                                             floating_ips):"},{"line_number":1166,"context_line":"        \"\"\"Configure IP addresses on router\u0027s external gateway interface."},{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"        Ensures addresses for existing floating IPs and cleans up"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_c4f8a47e","line":1165,"in_reply_to":"5a890539_e0092c85","updated":"2014-11-24 09:47:58.000000000","message":"Sure","commit_id":"dab824767665993a190d32aff6f50e42b9cc8217"}]}
