)]}'
{"neutron/tests/unit/agent/linux/test_iptables_firewall.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8a75df584f12c954b53fcda7be6102d69d2a8f65","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"                cmd.extend([\u0027-d\u0027, \u0027fe80::1\u0027])"},{"line_number":1121,"context_line":"            else:"},{"line_number":1122,"context_line":"                cmd.extend([\u0027-s\u0027, \u0027fe80::1\u0027])"},{"line_number":1123,"context_line":"        # initial data has 1, 2, and 9 in use, CT zone will start at 10."},{"line_number":1124,"context_line":"        cmd.extend([\u0027-w\u0027, 10])"},{"line_number":1125,"context_line":"        calls \u003d ["},{"line_number":1126,"context_line":"            mock.call(cmd, run_as_root\u003dTrue, check_exit_code\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_16c0bc29","side":"PARENT","line":1123,"updated":"2017-01-28 01:17:35.000000000","message":"This is actually useful data and I wouldn\u0027t delete it.  Best to just make a constant at the top and use it instead of 10\n\n# initial data has 1, 2 and 9 in use, CT zone will start at 10\nINITIAL_CT_ZONE \u003d 10","commit_id":"c001ac434a40f4af17c87529db4e20088cfbddc7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68171a88eaee08be32d07340e6002302626f6b02","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"                cmd.extend([\u0027-d\u0027, \u0027fe80::1\u0027])"},{"line_number":1121,"context_line":"            else:"},{"line_number":1122,"context_line":"                cmd.extend([\u0027-s\u0027, \u0027fe80::1\u0027])"},{"line_number":1123,"context_line":"        # initial data has 1, 2, and 9 in use, CT zone will start at 10."},{"line_number":1124,"context_line":"        cmd.extend([\u0027-w\u0027, 10])"},{"line_number":1125,"context_line":"        calls \u003d ["},{"line_number":1126,"context_line":"            mock.call(cmd, run_as_root\u003dTrue, check_exit_code\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_19454cb2","side":"PARENT","line":1123,"in_reply_to":"3a461143_16c0bc29","updated":"2017-01-28 09:20:29.000000000","message":"In fact IMO it\u0027s not correct now. Before this patch it was correct because ipconntrack.get_device_zone() is looking for next free zone number for port if it\u0027s not assigned yet. So if initially some \"ports\" uses 1, 2 and 9, this method returned 10 for port in test.\nNow it\u0027s not like that because I assigned manually this zone number 10 for test port. I could set there even 1000 and it would be also fine.","commit_id":"c001ac434a40f4af17c87529db4e20088cfbddc7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8a75df584f12c954b53fcda7be6102d69d2a8f65","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"             \u0027protocol\u0027: protocol}]"},{"line_number":1104,"context_line":""},{"line_number":1105,"context_line":"        if ct_zone:"},{"line_number":1106,"context_line":"            self.firewall.ipconntrack._device_zone_map[port[\u0027device\u0027]] \u003d\\"},{"line_number":1107,"context_line":"                ct_zone"},{"line_number":1108,"context_line":"        else:"},{"line_number":1109,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_765660cf","line":1106,"updated":"2017-01-28 01:17:35.000000000","message":"nit: could you replace the \\ with (), pep8 will probably complain anyways","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68171a88eaee08be32d07340e6002302626f6b02","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"             \u0027protocol\u0027: protocol}]"},{"line_number":1104,"context_line":""},{"line_number":1105,"context_line":"        if ct_zone:"},{"line_number":1106,"context_line":"            self.firewall.ipconntrack._device_zone_map[port[\u0027device\u0027]] \u003d\\"},{"line_number":1107,"context_line":"                ct_zone"},{"line_number":1108,"context_line":"        else:"},{"line_number":1109,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_7910105a","line":1106,"in_reply_to":"3a461143_765660cf","updated":"2017-01-28 09:20:29.000000000","message":"changed","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8a75df584f12c954b53fcda7be6102d69d2a8f65","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"        new_port[\u0027security_groups\u0027] \u003d [\u0027fake_sg_id2\u0027]"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"        if ct_zone:"},{"line_number":1184,"context_line":"            self.firewall.ipconntrack._device_zone_map[\u0027tapfake_dev\u0027] \u003d\\"},{"line_number":1185,"context_line":"                ct_zone"},{"line_number":1186,"context_line":"        else:"},{"line_number":1187,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop(\u0027tapfake_dev\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_d61f1406","line":1184,"updated":"2017-01-28 01:17:35.000000000","message":"Ditto","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68171a88eaee08be32d07340e6002302626f6b02","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"        new_port[\u0027security_groups\u0027] \u003d [\u0027fake_sg_id2\u0027]"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":"        if ct_zone:"},{"line_number":1184,"context_line":"            self.firewall.ipconntrack._device_zone_map[\u0027tapfake_dev\u0027] \u003d\\"},{"line_number":1185,"context_line":"                ct_zone"},{"line_number":1186,"context_line":"        else:"},{"line_number":1187,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop(\u0027tapfake_dev\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_b90ef838","line":1184,"in_reply_to":"3a461143_d61f1406","updated":"2017-01-28 09:20:29.000000000","message":"Done","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8a75df584f12c954b53fcda7be6102d69d2a8f65","unresolved":false,"context_lines":[{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":"        self.firewall.filtered_ports[port[\u0027device\u0027]] \u003d new_port"},{"line_number":1191,"context_line":"        self.firewall.filter_defer_apply_off()"},{"line_number":1192,"context_line":"        if ct_zone:"},{"line_number":1193,"context_line":"            calls \u003d ["},{"line_number":1194,"context_line":"                mock.call([\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, \u0027ipv4\u0027, \u0027-d\u0027, \u002710.0.0.1\u0027,"},{"line_number":1195,"context_line":"                           \u0027-w\u0027, 10],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_16a99c7b","line":1192,"updated":"2017-01-28 01:17:35.000000000","message":"Maybe to save on all the duplication here something like:\n\ncalls \u003d []\ncall \u003d [\u0027conntrack\u0027, ...]\nif ct_zone:\n    call.extend([\u0027-w\u0027, 10])\ncalls.extend(call)\n\nCan probably do better than that, looks awful once I typed it.\n\nPossibly even create another function that returns a call list since this is all duplicated below twice.","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68171a88eaee08be32d07340e6002302626f6b02","unresolved":false,"context_lines":[{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":"        self.firewall.filtered_ports[port[\u0027device\u0027]] \u003d new_port"},{"line_number":1191,"context_line":"        self.firewall.filter_defer_apply_off()"},{"line_number":1192,"context_line":"        if ct_zone:"},{"line_number":1193,"context_line":"            calls \u003d ["},{"line_number":1194,"context_line":"                mock.call([\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, \u0027ipv4\u0027, \u0027-d\u0027, \u002710.0.0.1\u0027,"},{"line_number":1195,"context_line":"                           \u0027-w\u0027, 10],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_fc322ef1","line":1192,"in_reply_to":"3a461143_16a99c7b","updated":"2017-01-28 09:20:29.000000000","message":"I added helper method to get list of calls. I hope it\u0027s better for You now :)","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8a75df584f12c954b53fcda7be6102d69d2a8f65","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"        self.firewall.filtered_ports \u003d {port[\u0027device\u0027]: port}"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"        if ct_zone:"},{"line_number":1266,"context_line":"            self.firewall.ipconntrack._device_zone_map[port[\u0027device\u0027]] \u003d\\"},{"line_number":1267,"context_line":"                ct_zone"},{"line_number":1268,"context_line":"        else:"},{"line_number":1269,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop(port[\u0027device\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_f6efb0e6","line":1266,"updated":"2017-01-28 01:17:35.000000000","message":"Ditto","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68171a88eaee08be32d07340e6002302626f6b02","unresolved":false,"context_lines":[{"line_number":1263,"context_line":"        self.firewall.filtered_ports \u003d {port[\u0027device\u0027]: port}"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"        if ct_zone:"},{"line_number":1266,"context_line":"            self.firewall.ipconntrack._device_zone_map[port[\u0027device\u0027]] \u003d\\"},{"line_number":1267,"context_line":"                ct_zone"},{"line_number":1268,"context_line":"        else:"},{"line_number":1269,"context_line":"            self.firewall.ipconntrack._device_zone_map.pop(port[\u0027device\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_f9040019","line":1266,"in_reply_to":"3a461143_f6efb0e6","updated":"2017-01-28 09:20:29.000000000","message":"Done","commit_id":"9bf0f134e35ea2bf904073d4d711668456037cd1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b4faea8ef4ba4445c5de391e8e33962f9a29ea7","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            for direction in [\u0027-d\u0027, \u0027-s\u0027]:"},{"line_number":1173,"context_line":"                cmd \u003d [\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, proto, direction, ip]"},{"line_number":1174,"context_line":"                if ct_zone:"},{"line_number":1175,"context_line":"                    cmd +\u003d [\u0027-w\u0027, ct_zone]"},{"line_number":1176,"context_line":"                expected_calls.append("},{"line_number":1177,"context_line":"                    mock.call(cmd, run_as_root\u003dTrue, check_exit_code\u003dTrue,"},{"line_number":1178,"context_line":"                              extra_ok_codes\u003d[1]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_20d0eb1e","line":1175,"range":{"start_line":1175,"start_character":20,"end_line":1175,"end_character":26},"updated":"2017-01-30 14:56:48.000000000","message":"nit: cmd.extend([...])","commit_id":"5d3d896b0733a16c26ba526baaf4fc19c275e64a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"90bf38fea1b2f373b9a461e830853db0c0b51503","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            for direction in [\u0027-d\u0027, \u0027-s\u0027]:"},{"line_number":1173,"context_line":"                cmd \u003d [\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, proto, direction, ip]"},{"line_number":1174,"context_line":"                if ct_zone:"},{"line_number":1175,"context_line":"                    cmd +\u003d [\u0027-w\u0027, ct_zone]"},{"line_number":1176,"context_line":"                expected_calls.append("},{"line_number":1177,"context_line":"                    mock.call(cmd, run_as_root\u003dTrue, check_exit_code\u003dTrue,"},{"line_number":1178,"context_line":"                              extra_ok_codes\u003d[1]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_b627c1b4","line":1175,"range":{"start_line":1175,"start_character":20,"end_line":1175,"end_character":26},"in_reply_to":"3a461143_20d0eb1e","updated":"2017-01-30 15:26:23.000000000","message":"Done","commit_id":"5d3d896b0733a16c26ba526baaf4fc19c275e64a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b4faea8ef4ba4445c5de391e8e33962f9a29ea7","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                conntrack_cmd \u003d [\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, ethertype,"},{"line_number":1268,"context_line":"                                 direction, ips[ethertype][0]]"},{"line_number":1269,"context_line":"                if ct_zone:"},{"line_number":1270,"context_line":"                    conntrack_cmd.extend([\u0027-w\u0027, 10])"},{"line_number":1271,"context_line":"                conntrack_cmd.extend([remote_ip_direction, ips[ethertype][1]])"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"                calls.append(mock.call(conntrack_cmd,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_a0bdbb69","line":1270,"updated":"2017-01-30 14:56:48.000000000","message":"Can you create a constant for the \u002710\u0027 at the top:\n\n# initial data has 1, 2, and 9 in use, CT zone will start at 10.\nCT_ZONE_START 10\n\nOtherwise we don\u0027t know why we\u0027re using 10 since the comments on L1123 and L1155 were removed.","commit_id":"5d3d896b0733a16c26ba526baaf4fc19c275e64a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4efcf574ad1f071c0d45a0a02b030bac70aec2f1","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                conntrack_cmd \u003d [\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, ethertype,"},{"line_number":1268,"context_line":"                                 direction, ips[ethertype][0]]"},{"line_number":1269,"context_line":"                if ct_zone:"},{"line_number":1270,"context_line":"                    conntrack_cmd.extend([\u0027-w\u0027, 10])"},{"line_number":1271,"context_line":"                conntrack_cmd.extend([remote_ip_direction, ips[ethertype][1]])"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"                calls.append(mock.call(conntrack_cmd,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_bb640c22","line":1270,"in_reply_to":"3a461143_a0bdbb69","updated":"2017-01-30 15:16:07.000000000","message":"Sorry, didn\u0027t see your comment on PS1, so ignore this.","commit_id":"5d3d896b0733a16c26ba526baaf4fc19c275e64a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"90bf38fea1b2f373b9a461e830853db0c0b51503","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                conntrack_cmd \u003d [\u0027conntrack\u0027, \u0027-D\u0027, \u0027-f\u0027, ethertype,"},{"line_number":1268,"context_line":"                                 direction, ips[ethertype][0]]"},{"line_number":1269,"context_line":"                if ct_zone:"},{"line_number":1270,"context_line":"                    conntrack_cmd.extend([\u0027-w\u0027, 10])"},{"line_number":1271,"context_line":"                conntrack_cmd.extend([remote_ip_direction, ips[ethertype][1]])"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"                calls.append(mock.call(conntrack_cmd,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_f606a91a","line":1270,"in_reply_to":"3a461143_bb640c22","updated":"2017-01-30 15:26:23.000000000","message":"Ok :)","commit_id":"5d3d896b0733a16c26ba526baaf4fc19c275e64a"}]}
