)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"96fb506cba74235ff4f995d11418888f0d82700d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"fix update neutron resource with incorrect body key server return 500"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current neutron, when I update resource with incorrect body, neutron"},{"line_number":10,"context_line":"server return 500 NeutronError. it should be fixed 400(BadRequest)"},{"line_number":11,"context_line":"this patch fixed it."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I024b8ef73be69af069e4516dc501df3f5c145419"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_019ac460","line":10,"range":{"start_line":10,"start_character":32,"end_line":10,"end_character":34},"updated":"2019-08-02 12:26:53.000000000","message":"nitty nit: \"It\"","commit_id":"7e040d40996d8bc24aab07279246ec6ce7bbf531"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"96fb506cba74235ff4f995d11418888f0d82700d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"fix update neutron resource with incorrect body key server return 500"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current neutron, when I update resource with incorrect body, neutron"},{"line_number":10,"context_line":"server return 500 NeutronError. it should be fixed 400(BadRequest)"},{"line_number":11,"context_line":"this patch fixed it."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I024b8ef73be69af069e4516dc501df3f5c145419"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_41bd1cb5","line":10,"range":{"start_line":10,"start_character":51,"end_line":10,"end_character":54},"updated":"2019-08-02 12:26:53.000000000","message":"nitty nit: \"and BadRequest (400) should be returned\"","commit_id":"7e040d40996d8bc24aab07279246ec6ce7bbf531"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"b09e4905e0f35deace0bce0092104c93e01c8027","unresolved":false,"context_lines":[{"line_number":7,"context_line":"fix update neutron resource with incorrect body key server return 500"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In current neutron, when I update resource with incorrect body, neutron"},{"line_number":10,"context_line":"server return 500 NeutronError. it should be fixed 400(BadRequest)"},{"line_number":11,"context_line":"this patch fixed it."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I024b8ef73be69af069e4516dc501df3f5c145419"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_f2072a81","line":10,"range":{"start_line":10,"start_character":32,"end_line":10,"end_character":34},"in_reply_to":"7faddb67_019ac460","updated":"2019-08-05 00:11:58.000000000","message":"ok, thanks slawek. I will add it.","commit_id":"7e040d40996d8bc24aab07279246ec6ce7bbf531"}],"neutron/pecan_wsgi/controllers/resource.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d2985acc8a5d3721c9ca02e7c80cca47f0352071","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def put(self, *args, **kwargs):"},{"line_number":61,"context_line":"        neutron_context \u003d request.context[\u0027neutron_context\u0027]"},{"line_number":62,"context_line":"        if \"resources\" not in request.context:"},{"line_number":63,"context_line":"            msg \u003d _(\"Resources to be updated should be included in \""},{"line_number":64,"context_line":"                    \"request body.\")"},{"line_number":65,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":66,"context_line":"        resources \u003d request.context[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_f3de3068","line":63,"range":{"start_line":63,"start_character":21,"end_line":63,"end_character":30},"updated":"2019-08-06 14:21:03.000000000","message":"So every resource update, like network, subnet, port etc. will return the same message? Then this is a bit not clear for user. How about use \u0027self.resource\u0027 (something we already have used in line 69 and 74) to indicate the specific resource? Then this may be like this:\n_(\"Unable to find \u0027%s\u0027 in request body\") % self.resource\n(yes, something like line 158)","commit_id":"c7d2d67be2367d34e44a37df3503b2e4c95f3bff"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"657928ed1e49ad8d2ee7f2ff315fbb710171b20d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def put(self, *args, **kwargs):"},{"line_number":61,"context_line":"        neutron_context \u003d request.context[\u0027neutron_context\u0027]"},{"line_number":62,"context_line":"        if \"resources\" not in request.context:"},{"line_number":63,"context_line":"            msg \u003d _(\"Resources to be updated should be included in \""},{"line_number":64,"context_line":"                    \"request body.\")"},{"line_number":65,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":66,"context_line":"        resources \u003d request.context[\u0027resources\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_0b7aa822","line":63,"range":{"start_line":63,"start_character":21,"end_line":63,"end_character":30},"in_reply_to":"7faddb67_f3de3068","updated":"2019-08-06 23:49:57.000000000","message":"that\u0027s a good suggestion. thanks LIU, I\u0027ll update it.","commit_id":"c7d2d67be2367d34e44a37df3503b2e4c95f3bff"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":507,"context_line":"            network_req \u003d self.new_update_request(\"networks\", None,"},{"line_number":508,"context_line":"                                                  network_id)"},{"line_number":509,"context_line":"            res \u003d network_req.get_response(self.api)"},{"line_number":510,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    def test_update_network_with_incorrect_resource_body(self):"},{"line_number":513,"context_line":"        with self.network() as network:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_0910574f","line":510,"range":{"start_line":510,"start_character":29,"end_line":510,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"Could we verify the resource name of this error message? Accoring to the new code, it will have a word \u0027network\u0027 in the exception message.","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":30380,"name":"ZhouHeng","email":"zhouhenglc@inspur.com","username":"zhouhenglc"},"change_message_id":"a6720fbeee6ae44ec2ff03e7d0ec9596ca02c414","unresolved":false,"context_lines":[{"line_number":507,"context_line":"            network_req \u003d self.new_update_request(\"networks\", None,"},{"line_number":508,"context_line":"                                                  network_id)"},{"line_number":509,"context_line":"            res \u003d network_req.get_response(self.api)"},{"line_number":510,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    def test_update_network_with_incorrect_resource_body(self):"},{"line_number":513,"context_line":"        with self.network() as network:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_3e3ea8b9","line":510,"range":{"start_line":510,"start_character":29,"end_line":510,"end_character":53},"in_reply_to":"7faddb67_0910574f","updated":"2019-08-08 09:11:59.000000000","message":"that will more rigorous. I will update it. thanks LIU.","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                                                  incorrect_body,"},{"line_number":518,"context_line":"                                                  network_id)"},{"line_number":519,"context_line":"            res \u003d network_req.get_response(self.api)"},{"line_number":520,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"class TestMl2NetworksV2AgentMechDrivers(Ml2PluginV2TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_290d1335","line":520,"range":{"start_line":520,"start_character":39,"end_line":520,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"ditto","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":731,"context_line":"            subnet_req \u003d self.new_update_request(\"subnets\", None,"},{"line_number":732,"context_line":"                                                 subnet_id)"},{"line_number":733,"context_line":"            res \u003d subnet_req.get_response(self.api)"},{"line_number":734,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def test_update_subnet_with_incorrect_resource_body(self):"},{"line_number":737,"context_line":"        with self.subnet() as subnet:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_c919df7a","line":734,"range":{"start_line":734,"start_character":39,"end_line":734,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"\u0027subnet\u0027 in message","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            subnet_req \u003d self.new_update_request(\"subnets\", incorrect_body,"},{"line_number":741,"context_line":"                                                 subnet_id)"},{"line_number":742,"context_line":"            res \u003d subnet_req.get_response(self.api)"},{"line_number":743,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    def test_subnet_after_update_callback(self):"},{"line_number":746,"context_line":"        after_update \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_e9161b4a","line":743,"range":{"start_line":743,"start_character":39,"end_line":743,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"ditto","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"            port_id \u003d port[\"port\"][\"id\"]"},{"line_number":1118,"context_line":"            port_req \u003d self.new_update_request(\"ports\", None, port_id)"},{"line_number":1119,"context_line":"            res \u003d port_req.get_response(self.api)"},{"line_number":1120,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"    def test_update_port_with_incorrect_resource_body(self):"},{"line_number":1123,"context_line":"        with self.port() as port:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_a92a637b","line":1120,"range":{"start_line":1120,"start_character":39,"end_line":1120,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"\u0027port\u0027 in message","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a1d72110c3a7c2ae31729e87801ad24d97a73fcb","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"            port_req \u003d self.new_update_request(\"ports\", incorrect_body,"},{"line_number":1127,"context_line":"                                               port_id)"},{"line_number":1128,"context_line":"            res \u003d port_req.get_response(self.api)"},{"line_number":1129,"context_line":"            self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)"},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":"    def test_update_port_status_build(self):"},{"line_number":1132,"context_line":"        with self.port() as port:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_491f2f5b","line":1129,"range":{"start_line":1129,"start_character":39,"end_line":1129,"end_character":53},"updated":"2019-08-08 07:19:58.000000000","message":"ditto","commit_id":"44a03318dea8ac96e05db83b6e58b3e86dae7aa5"}]}
