)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"17bf12e19188c846bf71b77d04ced37e4d676adb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DVR, add_router_interface: check for no subnets"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The bug report specifies the following sequence of actions to reproduce"},{"line_number":10,"context_line":"the issue:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1) Create DVR router"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_0a094131","line":10,"updated":"2015-11-18 04:18:18.000000000","message":"the reproduce steps should put in bug description, not here","commit_id":"1dca0525e90e8fef55da9ac563299dfdc451a07b"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"597f4a865d0488be96c29874f2a99408546b60bd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"DVR, add_router_interface: check for no subnets"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The bug report specifies the following sequence of actions to reproduce"},{"line_number":10,"context_line":"the issue:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1) Create DVR router"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_a047eaba","line":10,"in_reply_to":"ba8a016a_0a094131","updated":"2015-11-18 10:10:48.000000000","message":"+1, please describe the fix, not the bug","commit_id":"1dca0525e90e8fef55da9ac563299dfdc451a07b"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"c01d8a60461f739aef2c3137fc6b312233313fa7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Eilert \u003cstephen.eilert@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-18 15:52:51 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DVR, add_router_interface: check for no subnets"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When the l3 dvr scheduler gets triggered, perhaps by adding an interface"},{"line_number":10,"context_line":"to a router, at some point the \u0027get_subnet_ids_on_router\u0027 will be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba8a016a_293dc1dc","line":7,"updated":"2015-11-19 22:04:03.000000000","message":"The commit message header is not clear.\nCan you give a valid header?\n\nMay say \"Fix get_subnet_ids_on_router in dvr scheduler\"","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"}],"neutron/db/l3_dvrscheduler_db.py":[{"author":{"_account_id":13770,"name":"Adolfo Duarte","email":"adduarte@redhat.com","username":"adolfoduarte"},"change_message_id":"55a90efc966649ad88b006a3fdfb9c1a21cd68bd","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            int_ips \u003d int_port[\u0027fixed_ips\u0027]"},{"line_number":145,"context_line":"            if int_ips:"},{"line_number":146,"context_line":"                int_subnet \u003d int_ips[0][\u0027subnet_id\u0027]"},{"line_number":147,"context_line":"                subnet_ids.add(int_subnet)"},{"line_number":148,"context_line":"            else:"},{"line_number":149,"context_line":"                LOG.debug(\u0027DVR: Could not find a subnet id\u0027"},{"line_number":150,"context_line":"                          \u0027for router %s\u0027, router_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_fbbe8d63","line":147,"updated":"2015-11-20 06:33:18.000000000","message":"won\u0027t this still break if get port returns a list with a first element which has no \u0027subnet_id\u0027?  is there a chance of that happening?","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ff9d76f6c949e36ea1b88a6a99d2d0233dcb8735","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            int_ips \u003d int_port[\u0027fixed_ips\u0027]"},{"line_number":145,"context_line":"            if int_ips:"},{"line_number":146,"context_line":"                int_subnet \u003d int_ips[0][\u0027subnet_id\u0027]"},{"line_number":147,"context_line":"                subnet_ids.add(int_subnet)"},{"line_number":148,"context_line":"            else:"},{"line_number":149,"context_line":"                LOG.debug(\u0027DVR: Could not find a subnet id\u0027"},{"line_number":150,"context_line":"                          \u0027for router %s\u0027, router_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_462edd8c","line":147,"in_reply_to":"ba8a016a_fbbe8d63","updated":"2015-11-20 08:19:08.000000000","message":"this shouldn\u0027t happen, please see _make_port_dict() in base db plugin","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"}],"neutron/tests/unit/scheduler/test_l3_agent_scheduler.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"597f4a865d0488be96c29874f2a99408546b60bd","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"              \u0027distributed\u0027: True,"},{"line_number":1149,"context_line":"        }"},{"line_number":1150,"context_line":"        with mock.patch("},{"line_number":1151,"context_line":"            \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027 \u0027.get_ports\u0027,"},{"line_number":1152,"context_line":"            return_value\u003d[dvr_port]):"},{"line_number":1153,"context_line":"            sub_ids \u003d self.dut.get_subnet_ids_on_router(self.adminContext,"},{"line_number":1154,"context_line":"                                                        r1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_8032e65d","line":1151,"updated":"2015-11-18 10:10:48.000000000","message":"\u0027.\u0027 is not needed before \u0027get_ports\u0027, did you try the test without the fix?","commit_id":"1dca0525e90e8fef55da9ac563299dfdc451a07b"},{"author":{"_account_id":17953,"name":"Stephen Eilert","email":"stephen.eilert@hpe.com","username":"outworlder"},"change_message_id":"577fbf478fd9d501c5832db2923c8c415d7bfb65","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"              \u0027distributed\u0027: True,"},{"line_number":1149,"context_line":"        }"},{"line_number":1150,"context_line":"        with mock.patch("},{"line_number":1151,"context_line":"            \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027 \u0027.get_ports\u0027,"},{"line_number":1152,"context_line":"            return_value\u003d[dvr_port]):"},{"line_number":1153,"context_line":"            sub_ids \u003d self.dut.get_subnet_ids_on_router(self.adminContext,"},{"line_number":1154,"context_line":"                                                        r1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_576462b7","line":1151,"updated":"2015-11-19 19:33:09.000000000","message":"Actually, yes. If try the test without the fix, the test breaks as expected.\n\nAlso, if I remove the dot, then the test breaks, with or without the fix. There are other tests using the exact same code, that\u0027s where I got the idea from.\n(The actual error, without the dot, is: AttributeError: \u003cmodule \u0027neutron.db.db_base_plugin_v2\u0027 from \u0027~/Neutron/neutron/neutron/db/db_base_plugin_v2.py\u0027\u003e does not have the attribute \u0027NeutronDbPluginV2get_ports\u0027\")","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"},{"author":{"_account_id":13770,"name":"Adolfo Duarte","email":"adduarte@redhat.com","username":"adolfoduarte"},"change_message_id":"8e471b230047ec090a7d30d2eb4a302eea2d3abd","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"              \u0027distributed\u0027: True,"},{"line_number":1149,"context_line":"        }"},{"line_number":1150,"context_line":"        with mock.patch("},{"line_number":1151,"context_line":"            \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027 \u0027.get_ports\u0027,"},{"line_number":1152,"context_line":"            return_value\u003d[dvr_port]):"},{"line_number":1153,"context_line":"            sub_ids \u003d self.dut.get_subnet_ids_on_router(self.adminContext,"},{"line_number":1154,"context_line":"                                                        r1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_dbff0964","line":1151,"updated":"2015-11-20 06:21:48.000000000","message":"drop the single quotes for the class name like so: \nmock.patch(neutron.db.db_base_plugin_v2.NeutronDbPluginV2,  \u0027get_ports\u0027,\nreutrn_value\u003d[dvr_port])","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ff9d76f6c949e36ea1b88a6a99d2d0233dcb8735","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"              \u0027distributed\u0027: True,"},{"line_number":1149,"context_line":"        }"},{"line_number":1150,"context_line":"        with mock.patch("},{"line_number":1151,"context_line":"            \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027 \u0027.get_ports\u0027,"},{"line_number":1152,"context_line":"            return_value\u003d[dvr_port]):"},{"line_number":1153,"context_line":"            sub_ids \u003d self.dut.get_subnet_ids_on_router(self.adminContext,"},{"line_number":1154,"context_line":"                                                        r1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_232e2ba5","line":1151,"in_reply_to":"ba8a016a_576462b7","updated":"2015-11-20 08:19:08.000000000","message":"ah, I see now. Whitespace is really confusing, consider removing it.","commit_id":"9deb94b254d87c71c45bc2e5ed148a6d330d67f4"}]}
