)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b0dbca75947dc85eaeffbaf0c49eb9081a98dcb7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"we should return HTTPForbidden instead of HTTPBadRequest"},{"line_number":12,"context_line":"if the quota is over."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depends on"},{"line_number":15,"context_line":"https://review.openstack.org/#/c/216846/"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ic72501fbe0a1c761890d498f483e99d106bd7804"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7a2fa921_eca29dfb","line":14,"updated":"2015-10-08 20:32:20.000000000","message":"You can remove this.","commit_id":"53acf5fa786eed7cfd7dec7f0296fa0028edb2d4"}],"nova/api/openstack/compute/plugins/v3/tenant_networks.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"86af2b35cdc4a60e24996e39a4a2296c0a08e40c","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                reservation \u003d QUOTAS.reserve(context, networks\u003d1)"},{"line_number":168,"context_line":"        except exception.OverQuota:"},{"line_number":169,"context_line":"            msg \u003d _(\"Quota exceeded, too many networks.\")"},{"line_number":170,"context_line":"            raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            networks \u003d self.network_api.create(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_7f06671e","line":170,"updated":"2015-08-05 14:20:56.000000000","message":"I think we might want to add:\nheaders\u003d{\u0027Retry-After\u0027: 0}\n\nThat would match create server.","commit_id":"d06147d44131f26dfd712f9823ded59abd7f1aaa"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"ab193ddb107b8d63358b5b10a6a08fc34e5d6c37","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                reservation \u003d QUOTAS.reserve(context, networks\u003d1)"},{"line_number":168,"context_line":"        except exception.OverQuota:"},{"line_number":169,"context_line":"            msg \u003d _(\"Quota exceeded, too many networks.\")"},{"line_number":170,"context_line":"            raise exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        try:"},{"line_number":173,"context_line":"            networks \u003d self.network_api.create(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3ea18af8","line":170,"in_reply_to":"1a4dcd0f_7f06671e","updated":"2015-08-12 13:53:06.000000000","message":"Done","commit_id":"d06147d44131f26dfd712f9823ded59abd7f1aaa"}],"nova/api/openstack/compute/tenant_networks.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e7135e1cf5324e76d084bafb7fc46da6999c2bee","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        except exception.OverQuota:"},{"line_number":170,"context_line":"            msg \u003d _(\"Quota exceeded, too many networks.\")"},{"line_number":171,"context_line":"            raise exc.HTTPForbidden(explanation\u003dmsg,"},{"line_number":172,"context_line":"                headers\u003d{\u0027Retry-After\u0027: 0})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        kwargs[\u0027project_id\u0027] \u003d context.project_id"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa1b9901_7163531b","line":172,"updated":"2015-08-18 05:49:39.000000000","message":"Why do we need to specify Retry-After here?\n\nAccording to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html , this header doesn\u0027t seem to be used at Forbidden case(40X).\n\n The Retry-After response-header field can be used with a 503 (Service Unavailable)\n response to indicate how long the service is expected to be unavailable to the requesting\n client. This field MAY also be used with any 3xx (Redirection) response to indicate the\n minimum time the user-agent is asked wait before issuing the redirected request.\n The value of this field can be either an HTTP-date or an integer number of seconds\n (in decimal) after the time of the response.","commit_id":"8ed9876f9a5eea4901459c1644f5afd831b88ba8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"6b054fa7477c9bae42360586fbb1bdf23d342e4c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        except exception.OverQuota:"},{"line_number":170,"context_line":"            msg \u003d _(\"Quota exceeded, too many networks.\")"},{"line_number":171,"context_line":"            raise exc.HTTPForbidden(explanation\u003dmsg,"},{"line_number":172,"context_line":"                headers\u003d{\u0027Retry-After\u0027: 0})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        kwargs[\u0027project_id\u0027] \u003d context.project_id"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa1b9901_d296a8ef","line":172,"in_reply_to":"fa1b9901_7163531b","updated":"2015-08-19 05:29:52.000000000","message":"Yea, nice catch. Retry-After does not seems good for OverQuota case. and telling users to retry after 0 sec does not make much sense.","commit_id":"8ed9876f9a5eea4901459c1644f5afd831b88ba8"}]}
