)]}'
{"specs/mitaka/approved/nested-quota-driver-api.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"41d32b0b7bc1ea2de7afb2a16fff2ab2663b7b64","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                      (excluding child-projects)"},{"line_number":177,"context_line":"     b) Reserved Quota - Resources reserved for future use by the project"},{"line_number":178,"context_line":"     c) Allocated Quota - Sum of the quota ``hard_limit`` values of immediate"},{"line_number":179,"context_line":"                          child projects"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"6. The ``free`` quota available within a project is calculated as"},{"line_number":182,"context_line":"         ``free quota \u003d hard_limit - (used + reserved + allocated)``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba15a1d1_4e574902","line":179,"updated":"2015-09-22 17:26:53.000000000","message":"In Nova, we generally allow users to allocate more quota to projects than available resources.\n\nFollowing on from that, it seems best if we allow users to allocate more quota out to each sub tenant, than they actually have.\n\nThat means at quota enforcing time, we must ensure we never exceed the parent tenant\u0027s quota, and this then iterates until there is no parent with quota.\n\nIt feels like we also then need the concept of dedicated quota, where you are guaranteed space, but that is not really part of Nova\u0027s current quota concept, and would be an extra feature on top of nested quotas.","commit_id":"8a9863cf2f62536370a11a21c3d91e13c0cbe686"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ce7b6b8d981d4aa8e95a52021c82f6ed0213f156","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Proposed change"},{"line_number":145,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"1. The default quota (hard limit) for any newly subproject is set to 0."},{"line_number":148,"context_line":"   The neutral value of zero ensures consistency of data in the case of race"},{"line_number":149,"context_line":"   conditions when several projects are created by admins  at the same time."},{"line_number":150,"context_line":"   Suppose the default value of RAM is 1024, and A is the root project. And an"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_b91c4314","line":147,"updated":"2015-11-04 17:38:37.000000000","message":"nit: any new subproject? or any newly added subproject?","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ce7b6b8d981d4aa8e95a52021c82f6ed0213f156","unresolved":false,"context_lines":[{"line_number":153,"context_line":"   C are crossing the default value of A. To avoid this type of situations,"},{"line_number":154,"context_line":"   default quota is set as Zero."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"2. A project is allowed to create a isntance, only after setting the quota to a"},{"line_number":157,"context_line":"   non-zero value (as default value is 0). After the creation of a new project,"},{"line_number":158,"context_line":"   quota values must be set explicitly by a Nova API call to a value which"},{"line_number":159,"context_line":"   ensures availability of free quota, before resources can be claimed in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_192d4f46","line":156,"updated":"2015-11-04 17:38:37.000000000","message":"Nit: instance","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"12b1f09d999db86e36cd04715cc6daf7818674b5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"   C are crossing the default value of A. To avoid this type of situations,"},{"line_number":154,"context_line":"   default quota is set as Zero."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"2. A project is allowed to create a isntance, only after setting the quota to a"},{"line_number":157,"context_line":"   non-zero value (as default value is 0). After the creation of a new project,"},{"line_number":158,"context_line":"   quota values must be set explicitly by a Nova API call to a value which"},{"line_number":159,"context_line":"   ensures availability of free quota, before resources can be claimed in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_5f2177fa","line":156,"in_reply_to":"fa80f949_192d4f46","updated":"2015-11-04 18:36:31.000000000","message":"Done","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ce7b6b8d981d4aa8e95a52021c82f6ed0213f156","unresolved":false,"context_lines":[{"line_number":382,"context_line":"REST API impact"},{"line_number":383,"context_line":"---------------"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"Add new API routers to Update and Delete a target project."},{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_99737f80","line":385,"updated":"2015-11-04 17:38:37.000000000","message":"We need more details here please, at least example requests/responses.","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"12b1f09d999db86e36cd04715cc6daf7818674b5","unresolved":false,"context_lines":[{"line_number":382,"context_line":"REST API impact"},{"line_number":383,"context_line":"---------------"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"Add new API routers to Update and Delete a target project."},{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_5f7897f2","line":385,"in_reply_to":"fa80f949_99737f80","updated":"2015-11-04 18:36:31.000000000","message":"I\u0027ll add an example.","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ce7b6b8d981d4aa8e95a52021c82f6ed0213f156","unresolved":false,"context_lines":[{"line_number":468,"context_line":"* Unit tests will be added for all the REST APIs calls."},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"* Add unit tests for integration with other services."},{"line_number":471,"context_line":""},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"Documentation Impact"},{"line_number":474,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_d90fc7df","line":471,"updated":"2015-11-04 17:38:37.000000000","message":"We really need functional tests in tempest for the new API calls.","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"12b1f09d999db86e36cd04715cc6daf7818674b5","unresolved":false,"context_lines":[{"line_number":468,"context_line":"* Unit tests will be added for all the REST APIs calls."},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"* Add unit tests for integration with other services."},{"line_number":471,"context_line":""},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"Documentation Impact"},{"line_number":474,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa80f949_7f731b16","line":471,"in_reply_to":"fa80f949_d90fc7df","updated":"2015-11-04 18:36:31.000000000","message":"Done","commit_id":"3e00762bbf18ae6ce3e5b969256e4e7bf3166976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"25a52a272ad3e02baaaface9c4fd8c69d7eab342","unresolved":false,"context_lines":[{"line_number":388,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":389,"context_line":"::"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"``PUT /v2.1/{tenant_id}/os-quota-sets/{target_id}``"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"Request:"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa80f949_3a0ee53b","line":391,"updated":"2015-11-05 12:03:29.000000000","message":"So the current API already takes a query string as the tenant_id:\nhttp://developer.openstack.org/api-ref-compute-v2.1.html#os-quota-sets-v2.1\n\nWhy does the same API not work here? We just do different things if we know that its a \"subtenant\" or not, I presume?","commit_id":"e6d83eb6dd7e24d586b598bb469ab19ee78ae738"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"c5d1ab8a4995badc684d3163aab3bf601161381b","unresolved":false,"context_lines":[{"line_number":388,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":389,"context_line":"::"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"``PUT /v2.1/{tenant_id}/os-quota-sets/{target_id}``"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"Request:"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa80f949_bba2d7ac","line":391,"in_reply_to":"fa80f949_3a0ee53b","updated":"2015-11-05 13:00:08.000000000","message":"We have to do a check permission to verify if the \"target  project\" that we want update/delete/whatever is a subproject of the project in the token. \n\nThis API needs to works like:\nI\u0027m in the project ``tenant_id`` and I want to change this other project ``target_id``.","commit_id":"e6d83eb6dd7e24d586b598bb469ab19ee78ae738"}]}
