)]}'
{"neutron/agent/linux/iptables_manager.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b44953c74e0a87f267d89ea2e273c5a1d5aadf24","unresolved":false,"context_lines":[{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        seen_lines \u003d set()"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"        # TODO(kevinbenton): remove this function and the next one. They are"},{"line_number":621,"context_line":"        # just oversized brooms to sweep bugs under the rug!!! We generate the"},{"line_number":622,"context_line":"        # rules and we shouldn\u0027t be generating duplicates."},{"line_number":623,"context_line":"        def _weed_out_duplicates(line):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_9214724d","line":620,"updated":"2017-03-04 03:26:59.000000000","message":"I would say this function has outlived it\u0027s usefulness. Let\u0027s just start addressing this TODO by eliminating this _weed_out_duplicates function entirely.","commit_id":"6f2607d034591bc81af5889c8cf09f0ca6fc9231"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"36b50cb71418062b7ec627bf48805da327da5ae5","unresolved":false,"context_lines":[{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        seen_lines \u003d set()"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"        # TODO(kevinbenton): remove this function and the next one. They are"},{"line_number":621,"context_line":"        # just oversized brooms to sweep bugs under the rug!!! We generate the"},{"line_number":622,"context_line":"        # rules and we shouldn\u0027t be generating duplicates."},{"line_number":623,"context_line":"        def _weed_out_duplicates(line):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_34dc6173","line":620,"updated":"2017-03-31 01:06:53.000000000","message":"Sorry about delay. yes, do it as part of this change.\n\n\"the next one\" was referring to a function that no longer exists (_weed_out_duplicate_chains), so just remove this one and the TODO","commit_id":"6f2607d034591bc81af5889c8cf09f0ca6fc9231"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"641498db4d0b7fd94d98d323b1f524b23b170cef","unresolved":false,"context_lines":[{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        seen_lines \u003d set()"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"        # TODO(kevinbenton): remove this function and the next one. They are"},{"line_number":621,"context_line":"        # just oversized brooms to sweep bugs under the rug!!! We generate the"},{"line_number":622,"context_line":"        # rules and we shouldn\u0027t be generating duplicates."},{"line_number":623,"context_line":"        def _weed_out_duplicates(line):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_8dad1aeb","line":620,"in_reply_to":"ba2be162_9214724d","updated":"2017-03-06 09:55:05.000000000","message":"OK, would you like me to propose that as a continuation of this change, or would you prefer to do it yourself?\n\nIf the former: what does \"and the next one\" mean?","commit_id":"6f2607d034591bc81af5889c8cf09f0ca6fc9231"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"971e43803de9a06c072193674aa12f77c444f3bf","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        # just oversized brooms to sweep bugs under the rug!!! We generate the"},{"line_number":622,"context_line":"        # rules and we shouldn\u0027t be generating duplicates."},{"line_number":623,"context_line":"        def _weed_out_duplicates(line):"},{"line_number":624,"context_line":"            if line in seen_lines and self.wrap_name in line:"},{"line_number":625,"context_line":"                thing \u003d \u0027chain\u0027 if line.startswith(\u0027:\u0027) else \u0027rule\u0027"},{"line_number":626,"context_line":"                LOG.warning(_LW(\"Duplicate iptables %(thing)s detected. This \""},{"line_number":627,"context_line":"                                \"may indicate a bug in the iptables \""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_9edf6d68","line":624,"updated":"2017-03-02 16:57:21.000000000","message":"Just a performance nit here.  I think you should reverse the check here - \"if wrap_name in line\" first, since seen_lines could be quite large, best to skip looking there.","commit_id":"6f2607d034591bc81af5889c8cf09f0ca6fc9231"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"497b777d363fcaedd0b121bbf95808a015423d82","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        # just oversized brooms to sweep bugs under the rug!!! We generate the"},{"line_number":622,"context_line":"        # rules and we shouldn\u0027t be generating duplicates."},{"line_number":623,"context_line":"        def _weed_out_duplicates(line):"},{"line_number":624,"context_line":"            if line in seen_lines and self.wrap_name in line:"},{"line_number":625,"context_line":"                thing \u003d \u0027chain\u0027 if line.startswith(\u0027:\u0027) else \u0027rule\u0027"},{"line_number":626,"context_line":"                LOG.warning(_LW(\"Duplicate iptables %(thing)s detected. This \""},{"line_number":627,"context_line":"                                \"may indicate a bug in the iptables \""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_9e276dc9","line":624,"in_reply_to":"ba2be162_9edf6d68","updated":"2017-03-02 17:02:20.000000000","message":"Sure, will do this on next spin.","commit_id":"6f2607d034591bc81af5889c8cf09f0ca6fc9231"}]}
