)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11825,"name":"Sudhakar Babu Gariganti","email":"sudhakar.gariganti@gmail.com","username":"sudhakar-gariganti"},"change_message_id":"3012bb2e0aebe3a8d24813ef510decae45a35ff0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix algorithm error in _modify_rules"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In function _modify_rules of iptables_manager.py, the first rule"},{"line_number":10,"context_line":"position in \u0027new_filter\u0027 was found early, and saved to variant"},{"line_number":11,"context_line":"\u0027rules_index\u0027. while removed rule from \u0027new_filter\u0027, reduce the"},{"line_number":12,"context_line":"position \u0027rules_index\u0027 by one, this is incorrect logic, because"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da20952f_f979e12f","line":9,"updated":"2015-09-07 05:08:30.000000000","message":"I think we can rephrase the commit message to help get more reviews.\nSomething like :\n\n\nIn \u0027_modify_rules\u0027 method of iptables_manager.py, rules_index(first rule position) can be determined in the later part of the method. Currently rules_index value is determined early in the function and recalculated again depending on the changes to filter. \n\nThis patch simplifies the logic by determining the \u0027rules_index\u0027 only after the rules filter has the final data.","commit_id":"b854c1e26d3cda097dcdf017add22635834fd14d"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"eaba04c0e39fee019e20a5c7a21175024ab3d76f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"rules_index value is determined early in the function and recalculated"},{"line_number":12,"context_line":"again depending on the changes to filter."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch simplifies the logic by determining the \u0027rules_index\u0027 only"},{"line_number":15,"context_line":"after the rules filter has the final data."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1488747"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba15a1d1_98cdc35f","line":14,"updated":"2015-09-15 12:44:23.000000000","message":"If this change simplifies the logic without changing it, then the added test should work with the old code but it\u0027s not the case. \n\nThoughts?","commit_id":"10566d358a80ac0b4851f730198f774aa5145c7d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4804c9305de0e5d30172001ddd20919e1ed933fd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"rules_index value is determined early in the function and recalculated"},{"line_number":12,"context_line":"again depending on the changes to filter."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch simplifies the logic by determining the \u0027rules_index\u0027 only"},{"line_number":15,"context_line":"after the rules filter has the final data."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1488747"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba15a1d1_c10fc686","line":14,"in_reply_to":"ba15a1d1_01d4de44","updated":"2015-09-15 13:45:16.000000000","message":"I would agree with Cedric - this is fixing a bug, not simplifying the logic, so some of the verbs in this message need to change to make that clear.","commit_id":"10566d358a80ac0b4851f730198f774aa5145c7d"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"3abfb76cae6aed39a669296a9604695b44ae5010","unresolved":false,"context_lines":[{"line_number":11,"context_line":"rules_index value is determined early in the function and recalculated"},{"line_number":12,"context_line":"again depending on the changes to filter."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch simplifies the logic by determining the \u0027rules_index\u0027 only"},{"line_number":15,"context_line":"after the rules filter has the final data."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1488747"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba15a1d1_01d4de44","line":14,"in_reply_to":"ba15a1d1_98cdc35f","updated":"2015-09-15 13:37:13.000000000","message":"This code change both simplifies and fixes the logic, as it was previously incorrect for certain scenarios (which is why the added test fails with the old code).","commit_id":"10566d358a80ac0b4851f730198f774aa5145c7d"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"deeabaf8a7020ca1755a7b4eae93cee97ba0ca4b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"rules_index value is determined early in the function and recalculated"},{"line_number":12,"context_line":"again depending on the changes to filter."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch simplifies the logic by determining the \u0027rules_index\u0027 only"},{"line_number":15,"context_line":"after the rules filter has the final data."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1488747"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba15a1d1_6b53c26b","line":14,"in_reply_to":"ba15a1d1_c10fc686","updated":"2015-09-17 16:34:33.000000000","message":"+1 to cedric and brian\u0027s comments","commit_id":"10566d358a80ac0b4851f730198f774aa5145c7d"}],"neutron/tests/unit/agent/linux/test_iptables_manager.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"939969a8f644efba53aa19cf10dfba168acfabf3","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"                return cnt, index, False"},{"line_number":1050,"context_line":"        return cnt, index, True"},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"    def _check_iptables_dump_format(self, lines):"},{"line_number":1053,"context_line":"        index \u003d 0"},{"line_number":1054,"context_line":"        cnt, index, legal \u003d self._check_first_char_cnt(\u0027#\u0027, \u0027*\u0027, lines, index)"},{"line_number":1055,"context_line":"        if not legal:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b75f3b0e","line":1052,"updated":"2015-09-04 01:25:14.000000000","message":"These methods are too hard to follow.\n\nI would rather you just assert that the new_lines match a pre-computed set of lines.","commit_id":"78b0958f2a833fbe5e2178c6d1a4b9953b6e1a2e"},{"author":{"_account_id":18043,"name":"Zhangqi Chen","email":"chenzhangqi@360.cn","username":"chen"},"change_message_id":"965a8cb56bc36537885b77e98df9fe1a40cb8d7f","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"                return cnt, index, False"},{"line_number":1050,"context_line":"        return cnt, index, True"},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"    def _check_iptables_dump_format(self, lines):"},{"line_number":1053,"context_line":"        index \u003d 0"},{"line_number":1054,"context_line":"        cnt, index, legal \u003d self._check_first_char_cnt(\u0027#\u0027, \u0027*\u0027, lines, index)"},{"line_number":1055,"context_line":"        if not legal:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_a63914a6","line":1052,"in_reply_to":"da20952f_b75f3b0e","updated":"2015-09-06 03:18:14.000000000","message":"Done","commit_id":"78b0958f2a833fbe5e2178c6d1a4b9953b6e1a2e"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"939969a8f644efba53aa19cf10dfba168acfabf3","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"                         \u0027# Completed on Thu Aug 27 16:33:10 2015\u0027]"},{"line_number":1092,"context_line":"        new_lines \u003d self.iptables._modify_rules(current_lines,"},{"line_number":1093,"context_line":"                self.iptables.ipv4[\u0027filter\u0027], \u0027filter\u0027)"},{"line_number":1094,"context_line":"        legal \u003d self._check_iptables_dump_format(new_lines)"},{"line_number":1095,"context_line":"        self.assertEqual(legal, True)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d75c2f1b","line":1094,"updated":"2015-09-04 01:25:14.000000000","message":"self.assertTrue(self._check_iptables_dump_format(new_lines))","commit_id":"78b0958f2a833fbe5e2178c6d1a4b9953b6e1a2e"},{"author":{"_account_id":18043,"name":"Zhangqi Chen","email":"chenzhangqi@360.cn","username":"chen"},"change_message_id":"965a8cb56bc36537885b77e98df9fe1a40cb8d7f","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"                         \u0027# Completed on Thu Aug 27 16:33:10 2015\u0027]"},{"line_number":1092,"context_line":"        new_lines \u003d self.iptables._modify_rules(current_lines,"},{"line_number":1093,"context_line":"                self.iptables.ipv4[\u0027filter\u0027], \u0027filter\u0027)"},{"line_number":1094,"context_line":"        legal \u003d self._check_iptables_dump_format(new_lines)"},{"line_number":1095,"context_line":"        self.assertEqual(legal, True)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_c63c4895","line":1094,"in_reply_to":"da20952f_d75c2f1b","updated":"2015-09-06 03:18:14.000000000","message":"Done","commit_id":"78b0958f2a833fbe5e2178c6d1a4b9953b6e1a2e"}]}
