)]}'
{"neutron/api/v2/base.py":[{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0ddab592199ad52248709d4d1c050833f4f6ce7e","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_419f5b03","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"updated":"2016-01-12 21:40:26.000000000","message":"This condition is not bulletproof and we don\u0027t need to call obj_deleter to check if request.body is non-empty","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"ff26c14f99563f207b2ba1d1d7863be87112b837","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_27834e58","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"5a5ae5dd_50788af2","updated":"2016-02-04 03:28:54.000000000","message":"I\u0027ll fix it.  Thank you Hirofumi and Cedric.\n\nPlease let me explain my opinion.  I\u0027m not sure that what is unnecessary parameter in request object(\"request body\" only or not).  Although I\u0027ve commented \"request body\" in my commit message, I\u0027d like to catch an exception and prevent from return 500 even if other unnecessary argument is included in request object.","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"d18fc6055f5c70e86c250119ce8922fbb9393c00","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_476f462b","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"da6ed579_0b165955","updated":"2016-01-13 13:57:01.000000000","message":"1. 2. and 3. are all invalid because they provide a body and bodies are forbidden when performing a DELETE. So:\n\n if request.body:\n   raise ...","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"d09aaf67427ddb42436ff349f011f6db3b744a1d","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_6117ff51","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"da6ed579_419f5b03","updated":"2016-01-12 21:42:14.000000000","message":"Moreover the current condition is non-obvious","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"30085b7d531dd7e35e386533b7e145acfd4a6289","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_6e91e346","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"da6ed579_476f462b","updated":"2016-01-14 01:51:27.000000000","message":"However, I thought there is a possibility to be included unnecessary argument except \"body\".  Therefore, I inserted L.549.  Shouldn\u0027t I take care of it?","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"d5a0f621d786f61a67863cc1a172a5f63cb64a65","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_0b165955","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"da6ed579_6117ff51","updated":"2016-01-13 01:21:45.000000000","message":"A request body can include the following values \"1\" and \"2\".  That\u0027s why you said \"we don\u0027t need to check request body is non-empty\".  Is my understanding correct?\n\n1. Request body is empty\n   ex. {}\n2. Request body is not empty and correct format\n   ex. {\"network\":{\"id\":\"7f202224-c7b3-45ab-90cf-ee5c5a631b7b\"}}\n3. Request body is not empty and incorrect format\n   ex. {\"foo\"}\n\nNote:\nIn case of \"3\", it occurs 400(Bad Request) in another validation process.\n  \"Malformed request body: Cannot understand JSON.\"","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"ba0623fa3d10985d171bca122891dbd78f830a82","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        try:"},{"line_number":547,"context_line":"            obj_deleter(request.context, id, **kwargs)"},{"line_number":548,"context_line":"        except TypeError as e:"},{"line_number":549,"context_line":"            cause \u003d \u0027request body\u0027 if \u0027body\u0027 in str(e) else \u0027parameter\u0027"},{"line_number":550,"context_line":"            msg \u003d _(\u0027Unnecessary %s found.\u0027) % cause"},{"line_number":551,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":552,"context_line":"        # A delete operation usually alters resource usage, so mark affected"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_50788af2","line":549,"range":{"start_line":549,"start_character":21,"end_line":549,"end_character":28},"in_reply_to":"da6ed579_6e91e346","updated":"2016-02-04 01:08:41.000000000","message":"I agree with Cedric. What is unecessary argument you expect? At least I thought that CommitMessage of this patch just says request body case.","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c264f84ee728b33fae669668b80f37c3be5b57cf","unresolved":false,"context_lines":[{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Unnecessary request body found.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        obj_deleter \u003d getattr(self._plugin, action)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da0c15f0_26e948e7","line":554,"updated":"2016-03-28 09:41:35.000000000","message":"\u0027Unnecessary\u0027 makes it sound sort of like it\u0027s optional. Can you change it to be more explicit?\n\u0027Body not supported in DELETE requests.\u0027 or something like that.","commit_id":"b7e723dd7fdea3b3fd26b667880d0eb8fc4db630"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"d638e2d2f412e1b5d223b33125e2e12969e72ca7","unresolved":false,"context_lines":[{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Unnecessary request body found.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        obj_deleter \u003d getattr(self._plugin, action)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba0121b8_8c6c179e","line":554,"in_reply_to":"da0c15f0_26e948e7","updated":"2016-03-28 16:35:44.000000000","message":"Thanks for your comment :)  OK, I\u0027ll change this message.","commit_id":"b7e723dd7fdea3b3fd26b667880d0eb8fc4db630"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"0f68ec716136daa7b1add2769260e8ff658563b7","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_a3b99a7b","line":553,"updated":"2016-03-30 21:47:19.000000000","message":"Is there a reason we can fail fast with this and put it before the policy logic in this method? Seems like it would save a few ticks on the processor.","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"d8c4a80c54a5f18b6774cbb9924d64e289cabaf4","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_7a96fc3f","line":553,"in_reply_to":"ba0121b8_69d2c35d","updated":"2016-03-31 02:11:37.000000000","message":"I don’t see your point. I think it is necessary to validate whether request body exists or not. You mean that you should change the position to validate?","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"71c1ff0feb2b716209d7d97687d58c7725364ed2","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_badfc638","line":553,"in_reply_to":"ba0121b8_7a96fc3f","updated":"2016-03-31 18:56:39.000000000","message":"I was just saying put this if block as the 1st thing in this method... before the policy logic is done. But as mentioned; it won\u0027t buy us anything since passing a request body rarely ever happens.","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"aca42b7c4d8582b430cb73a2bbbb76ebfe07b1f5","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_69d2c35d","line":553,"in_reply_to":"ba0121b8_a3b99a7b","updated":"2016-03-30 22:20:44.000000000","message":"In regards to my previous comment, since the condition does not happen often there\u0027s not enough gain to warrant a -1. Therefore it\u0027s probably more of a style/nit to fail-fast on a simple condition.","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a67a8006cd690ff4c63e5d7efc3c02029c484c4d","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_a26147ab","line":553,"in_reply_to":"ba0121b8_badfc638","updated":"2016-05-11 08:39:05.000000000","message":"Agree with boden. I think there is no reason that we have this check in _delete() (with retry_db_errors decorator). How about moving this to delete() itself?","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"fe5983a204ce96de3ee183bcaeeb7426a6dec1c2","unresolved":false,"context_lines":[{"line_number":550,"context_line":"            msg \u003d _(\u0027The resource could not be found.\u0027)"},{"line_number":551,"context_line":"            raise webob.exc.HTTPNotFound(msg)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        if request.body:"},{"line_number":554,"context_line":"            msg \u003d _(\u0027Request body is not supported in DELETE.\u0027)"},{"line_number":555,"context_line":"            raise webob.exc.HTTPBadRequest(msg)"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dab17558_1b3facb4","line":553,"in_reply_to":"dab17558_a26147ab","updated":"2016-05-12 04:11:50.000000000","message":"Hi boden and Akihiro,\n\nI\u0027m sorry I misunderstood about it.\nI finally understand what you say.  I\u0027ve moved this at delete().","commit_id":"39ddbd752c2304c0b5772e9f475818a434038960"}],"neutron/tests/unit/db/test_db_base_plugin_v2.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"ba0623fa3d10985d171bca122891dbd78f830a82","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        req \u003d self.new_delete_request(\u0027networks\u0027, net[\u0027network\u0027][\u0027id\u0027],"},{"line_number":836,"context_line":"                                      data\u003ddata)"},{"line_number":837,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":838,"context_line":"        self.assertEqual(res.status_int, webob.exc.HTTPBadRequest.code)"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"    def test_update_returns_200(self):"},{"line_number":841,"context_line":"        with self.network() as net:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_b0d77ebe","line":838,"range":{"start_line":838,"start_character":8,"end_line":838,"end_character":71},"updated":"2016-02-04 01:08:41.000000000","message":"Please take care what the patch[1] suggests.\n\n[1]: https://review.openstack.org/#/c/273418/","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"ff26c14f99563f207b2ba1d1d7863be87112b837","unresolved":false,"context_lines":[{"line_number":835,"context_line":"        req \u003d self.new_delete_request(\u0027networks\u0027, net[\u0027network\u0027][\u0027id\u0027],"},{"line_number":836,"context_line":"                                      data\u003ddata)"},{"line_number":837,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":838,"context_line":"        self.assertEqual(res.status_int, webob.exc.HTTPBadRequest.code)"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"    def test_update_returns_200(self):"},{"line_number":841,"context_line":"        with self.network() as net:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_3651460f","line":838,"range":{"start_line":838,"start_character":8,"end_line":838,"end_character":71},"in_reply_to":"5a5ae5dd_b0d77ebe","updated":"2016-02-04 03:28:54.000000000","message":"Done","commit_id":"3615837da29a7cd975b77ab8b832285fa8672859"}]}
