)]}'
{"specs/liberty/cinder-nested-quota-driver.rst":[{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Users can have different roles inside each project: A normal user can make"},{"line_number":37,"context_line":"use of resources of a project. A project-admin, for example can be a user"},{"line_number":38,"context_line":"who in addition is allowed to create sub-projects, assign quota on resources"},{"line_number":39,"context_line":"to these sub-projects and assign the project admin role to individual users"},{"line_number":40,"context_line":"of the sub-projects. Resource quotas of the root project can only be set by the"},{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_a976d6a1","line":39,"updated":"2015-04-16 01:03:50.000000000","message":"assign the project admin role to individual users -\u003e\nassign the admin role to individual users or\nassign the sub-project admin role to individual users","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Users can have different roles inside each project: A normal user can make"},{"line_number":37,"context_line":"use of resources of a project. A project-admin, for example can be a user"},{"line_number":38,"context_line":"who in addition is allowed to create sub-projects, assign quota on resources"},{"line_number":39,"context_line":"to these sub-projects and assign the project admin role to individual users"},{"line_number":40,"context_line":"of the sub-projects. Resource quotas of the root project can only be set by the"},{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_83101d50","line":39,"in_reply_to":"7aaa499b_a976d6a1","updated":"2015-04-27 21:32:16.000000000","message":"assign the sub-project admin role to individual users to be more precise.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"of the sub-projects. Resource quotas of the root project can only be set by the"},{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"},{"line_number":43,"context_line":"tree below."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aaa499b_0996ea92","line":43,"updated":"2015-04-16 01:03:50.000000000","message":"Since user can be in multiple projects/sub-projects how does the inheritance and quota calculation work for them?\nShould we restrict this spec to user belonging to a single project tree?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":40,"context_line":"of the sub-projects. Resource quotas of the root project can only be set by the"},{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"},{"line_number":43,"context_line":"tree below."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_47056cc0","line":43,"in_reply_to":"7aaa499b_0996ea92","updated":"2015-04-27 21:32:16.000000000","message":"Since the roles are inherited. A project-admin will be an admin in subsequent projects as well so we should be good here. If the project-admin is an user or just a consumer of the quota in a particular project then he will consume quota as any other normal user. Role just defines whether a particular user(may it be admin or normal user) have the priviledge to use quota or not. Hope that helps.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"faa5ea009de8f37b9fb5a5b83012f220b99463fc","unresolved":false,"context_lines":[{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"},{"line_number":43,"context_line":"tree below."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_8ea7124f","line":44,"updated":"2015-04-17 13:00:17.000000000","message":"I suggest splitting this spec into two parts - first implement nested quotas where only an admin is allowed to edit quotas (like today) but it gets the maths right, then add the editing as a send spec/patch. This will make it far easier to test and review.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"60a6c3765d72098c4830a6449d4370399f9953dd","unresolved":false,"context_lines":[{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"},{"line_number":43,"context_line":"tree below."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_9f4bc059","line":44,"in_reply_to":"3ab451fb_8ea7124f","updated":"2015-04-20 14:13:02.000000000","message":"Goog proposal, it will help in review","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":41,"context_line":"admin of the root project. The user roles can be set as inherited, and if set,"},{"line_number":42,"context_line":"then an admin of a project is automatically an admin of all the projects in the"},{"line_number":43,"context_line":"tree below."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_e7e7e1aa","line":44,"in_reply_to":"3ab451fb_8ea7124f","updated":"2015-04-27 21:32:16.000000000","message":"Sure that can be done. I can have two separate changes first for the nested quota and second for the editing both the changes can refer to the same blueprint.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"a90cf5d7e63b8a42e3afcafc3e8974a33e667d85","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"---------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"**Actors**"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Mike - Cloud Admin (i.e. role:cloud-admin) of ProductionIT"},{"line_number":52,"context_line":"* Jay - Manager (i.e. role: project-admin) of Project CMS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_ec54bafe","line":49,"updated":"2015-04-27 03:41:44.000000000","message":"Just want to say I love all of this written work here. :)","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Use Cases"},{"line_number":47,"context_line":"---------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"**Actors**"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Mike - Cloud Admin (i.e. role:cloud-admin) of ProductionIT"},{"line_number":52,"context_line":"* Jay - Manager (i.e. role: project-admin) of Project CMS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_0a265d68","line":49,"in_reply_to":"bab921fb_ec54bafe","updated":"2015-04-27 21:32:16.000000000","message":"Tried to be little creative while writing specs :)","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"1. Mike needs to be able to set the quotas for both CMS and ATLAS, and also"},{"line_number":83,"context_line":"   manage quotas across the entire projects including the root project,"},{"line_number":84,"context_line":"   ProductionIT."},{"line_number":85,"context_line":"2. Jay should be able to update the quota of Visualisation and Computing."},{"line_number":86,"context_line":"3. Jay should be able to able to view the quota of CMS, Visualisation and"},{"line_number":87,"context_line":"   Computing."},{"line_number":88,"context_line":"4. Jay should not be able to update the quota of CMS, although he is the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_d10ef4e4","line":85,"updated":"2015-04-16 01:03:50.000000000","message":"set and update quotas","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":82,"context_line":"1. Mike needs to be able to set the quotas for both CMS and ATLAS, and also"},{"line_number":83,"context_line":"   manage quotas across the entire projects including the root project,"},{"line_number":84,"context_line":"   ProductionIT."},{"line_number":85,"context_line":"2. Jay should be able to update the quota of Visualisation and Computing."},{"line_number":86,"context_line":"3. Jay should be able to able to view the quota of CMS, Visualisation and"},{"line_number":87,"context_line":"   Computing."},{"line_number":88,"context_line":"4. Jay should not be able to update the quota of CMS, although he is the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_fd749b68","line":85,"in_reply_to":"5aa745d1_d10ef4e4","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"   are as follows,"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  +----------------+----------------+----------+--------------+"},{"line_number":99,"context_line":"  | Name           | ``hard_limit`` | ``used`` | ``reserved`` |"},{"line_number":100,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":101,"context_line":"  |  ProductionIT  | 1000           |  100     | 100          |"},{"line_number":102,"context_line":"  +----------------+----------------+----------+--------------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_71a04091","line":99,"updated":"2015-04-16 01:03:50.000000000","message":"Need to define relationship between hard_limit, used and reserved between a project and its sub-projects.\nI would naively expected that project hard_limit \u003e\u003d sum of its subprojects;\nproject \"used\" \u003d sum of used for all its subprojects.\nproject reserve \u003e\u003d sum of its subproject reserve.\n\nBut can also envision different relationships.\n\nThe same rules apply recursively of course.\n\nSuggest moving definitions up front before you present example.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":96,"context_line":"   are as follows,"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  +----------------+----------------+----------+--------------+"},{"line_number":99,"context_line":"  | Name           | ``hard_limit`` | ``used`` | ``reserved`` |"},{"line_number":100,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":101,"context_line":"  |  ProductionIT  | 1000           |  100     | 100          |"},{"line_number":102,"context_line":"  +----------------+----------------+----------+--------------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_e713600c","line":99,"in_reply_to":"5aa745d1_71a04091","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  i. Suppose, Mike tries to increase the ``hard_limit`` of volumes in"},{"line_number":128,"context_line":"     ProductionIT to 2000."},{"line_number":129,"context_line":"  j. Suppose, Mike deletes the quota of Visualisation."},{"line_number":130,"context_line":"  k. Suppose, Mike deletes the project Visualisation."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"8. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":133,"context_line":"   restructure in such a way that there are only four projects namely,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_71f5e081","line":130,"updated":"2015-04-16 01:03:50.000000000","message":"What are all these scenarios?\nThe use or test cases to support?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  i. Suppose, Mike tries to increase the ``hard_limit`` of volumes in"},{"line_number":128,"context_line":"     ProductionIT to 2000."},{"line_number":129,"context_line":"  j. Suppose, Mike deletes the quota of Visualisation."},{"line_number":130,"context_line":"  k. Suppose, Mike deletes the project Visualisation."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"8. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":133,"context_line":"   restructure in such a way that there are only four projects namely,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_670070ab","line":130,"in_reply_to":"5aa745d1_71f5e081","updated":"2015-04-27 21:32:16.000000000","message":"Use cases.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"60a6c3765d72098c4830a6449d4370399f9953dd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Proposed change"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"1. The default quota (hard limit) for any newly created project is set to 0."},{"line_number":147,"context_line":"   The neutral value of zero ensures consistency of data in the case of race"},{"line_number":148,"context_line":"   conditions when several projects are created by admins  at the same time."},{"line_number":149,"context_line":"   Suppose the default value of number of volumes allowed per project is 100,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_5f74089b","line":146,"updated":"2015-04-20 14:13:02.000000000","message":"Is default quota \u003d 0 for all created projects, or only for subprojects? For root projects default quota 0 seems confusing for me.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Proposed change"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"1. The default quota (hard limit) for any newly created project is set to 0."},{"line_number":147,"context_line":"   The neutral value of zero ensures consistency of data in the case of race"},{"line_number":148,"context_line":"   conditions when several projects are created by admins  at the same time."},{"line_number":149,"context_line":"   Suppose the default value of number of volumes allowed per project is 100,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_2fb77af6","line":146,"in_reply_to":"dac4157f_5f74089b","updated":"2015-04-27 21:32:16.000000000","message":"Only for subprojects. I thought the explaination below was clear enough if it was not I have updated the blueprint to clearly state it as sub-project.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":159,"context_line":"3. A user with role \"cloud-admin\" in the root project and with inherited roles"},{"line_number":160,"context_line":"   is called Cloud-Admin and is permitted to do quota operations across the"},{"line_number":161,"context_line":"   entire hierarchy, including the top level project. Cloud-Admins are the only"},{"line_number":162,"context_line":"   users who are allowed to set the quota of the root project in a tree."},{"line_number":163,"context_line":"4. A person with role \"project-admin\" in a project is permitted to do quota"},{"line_number":164,"context_line":"   operations on its sub-projects and users in the hierarchy. If the"},{"line_number":165,"context_line":"   role \"project-admin\" in a project is set as inheritable in Keystone, then"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_b15ec874","line":162,"updated":"2015-04-16 01:03:50.000000000","message":"Is this the requirement?\nExpect that project admin can only manipulate quotas of its direct decedents not full hierarchy.\nThink of scenario of public cloud where cloud admin only gives resources to Company admin who rent capacity. Company internal hierarchy is invisible to Cloud admin.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":159,"context_line":"3. A user with role \"cloud-admin\" in the root project and with inherited roles"},{"line_number":160,"context_line":"   is called Cloud-Admin and is permitted to do quota operations across the"},{"line_number":161,"context_line":"   entire hierarchy, including the top level project. Cloud-Admins are the only"},{"line_number":162,"context_line":"   users who are allowed to set the quota of the root project in a tree."},{"line_number":163,"context_line":"4. A person with role \"project-admin\" in a project is permitted to do quota"},{"line_number":164,"context_line":"   operations on its sub-projects and users in the hierarchy. If the"},{"line_number":165,"context_line":"   role \"project-admin\" in a project is set as inheritable in Keystone, then"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_d218a120","line":162,"in_reply_to":"5aa745d1_b15ec874","updated":"2015-04-27 21:32:16.000000000","message":"Its not a requirement. Ideally it will behave the way you mentioned but the point here is the root of the project should be able to manipulate quota of descendant and it trickles down the heirarchy. Sure...there is a blueprint going on in Keystone known as reseller [1] which will help to do so.\n\n[1] https://blueprints.launchpad.net/keystone/+spec/reseller","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"   its immediate child projects to the last level project/user under the"},{"line_number":168,"context_line":"   project hierarchy."},{"line_number":169,"context_line":"   Note: The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":170,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":171,"context_line":"5. The total resources consumed by a project is divided into"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_f199f020","line":170,"updated":"2015-04-16 01:03:50.000000000","message":"above comment applies.\nMaybe we should have that controlled by a bit setting for role permissions during user creation.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":167,"context_line":"   its immediate child projects to the last level project/user under the"},{"line_number":168,"context_line":"   project hierarchy."},{"line_number":169,"context_line":"   Note: The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":170,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":171,"context_line":"5. The total resources consumed by a project is divided into"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_d2c66167","line":170,"in_reply_to":"5aa745d1_f199f020","updated":"2015-04-27 21:32:16.000000000","message":"Thats outside our scope may be Keystone might be the right place but I guess reseller[1] should help.\n\n[1] https://blueprints.launchpad.net/keystone/+spec/reseller","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."},{"line_number":174,"context_line":"                      (excluding child-projects)"},{"line_number":175,"context_line":"     b) Reserved Quota - Resources reserved for future use by the project"},{"line_number":176,"context_line":"     c) Allocated Quota - Sum of the quota ``hard_limit`` values of immediate"},{"line_number":177,"context_line":"                          child projects"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_31a75851","line":175,"updated":"2015-04-16 01:03:50.000000000","message":"does that include reserves of its decedents?\nOr it is just reserve for the project itself.\nExpect that it excludes decedents.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."},{"line_number":174,"context_line":"                      (excluding child-projects)"},{"line_number":175,"context_line":"     b) Reserved Quota - Resources reserved for future use by the project"},{"line_number":176,"context_line":"     c) Allocated Quota - Sum of the quota ``hard_limit`` values of immediate"},{"line_number":177,"context_line":"                          child projects"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_d2ab0174","line":175,"in_reply_to":"5aa745d1_31a75851","updated":"2015-04-27 21:32:16.000000000","message":"reserves for this specific project not its descendants.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"60a6c3765d72098c4830a6449d4370399f9953dd","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                          child projects"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"6. The ``free`` quota available within a project is calculated as"},{"line_number":180,"context_line":"         ``free quota \u003d hard_limit - (used + reserved + allocated)``"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"   Free quota is not stored in the database; it is calculated for each"},{"line_number":183,"context_line":"   project on the fly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_35e295d6","line":180,"updated":"2015-04-20 14:13:02.000000000","message":"Now we have -1 possible value for quota(no limit), what about it?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                          child projects"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"6. The ``free`` quota available within a project is calculated as"},{"line_number":180,"context_line":"         ``free quota \u003d hard_limit - (used + reserved + allocated)``"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"   Free quota is not stored in the database; it is calculated for each"},{"line_number":183,"context_line":"   project on the fly."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_b2d64def","line":180,"in_reply_to":"dac4157f_35e295d6","updated":"2015-04-27 21:32:16.000000000","message":"I don\u0027t get the comment here. Can you please give an example here ?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":205,"context_line":"     A:Free Quota \u003d 100 {A:hard_limit} - ( 0 {A:used} + 0 {A:reserved} +"},{"line_number":206,"context_line":"                         50 {A:Allocated to B})"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"     A:Free Quota \u003d 50"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"     B:Free Quota \u003d 50  {B:hard_limit} - ( 20 {B:used} + 0 {B:reserved} +"},{"line_number":211,"context_line":"                         10 {B:Allocated to C})"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_4c900796","line":208,"updated":"2015-04-16 01:03:50.000000000","message":"Can we combined both above into a single line like \n\nA:Free Quota \u003d 100 {A:hard_limit} - ( 0 {A:used} + 0 {A:reserved} +\t205\n\t\t\t50 {A:Allocated to B}) \u003d 50","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":205,"context_line":"     A:Free Quota \u003d 100 {A:hard_limit} - ( 0 {A:used} + 0 {A:reserved} +"},{"line_number":206,"context_line":"                         50 {A:Allocated to B})"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"     A:Free Quota \u003d 50"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"     B:Free Quota \u003d 50  {B:hard_limit} - ( 20 {B:used} + 0 {B:reserved} +"},{"line_number":211,"context_line":"                         10 {B:Allocated to C})"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_f2f72589","line":208,"in_reply_to":"5aa745d1_4c900796","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":210,"context_line":"     B:Free Quota \u003d 50  {B:hard_limit} - ( 20 {B:used} + 0 {B:reserved} +"},{"line_number":211,"context_line":"                         10 {B:Allocated to C})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"     B:Free Quota \u003d 20"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"     C:Free Quota \u003d 10  {C:hard_limit} - ( 10 {C:used} + 0 {C:reserved} +"},{"line_number":216,"context_line":"                         0 {C:Allocated})"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_8cddef72","line":213,"updated":"2015-04-16 01:03:50.000000000","message":"ditto","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":210,"context_line":"     B:Free Quota \u003d 50  {B:hard_limit} - ( 20 {B:used} + 0 {B:reserved} +"},{"line_number":211,"context_line":"                         10 {B:Allocated to C})"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"     B:Free Quota \u003d 20"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"     C:Free Quota \u003d 10  {C:hard_limit} - ( 10 {C:used} + 0 {C:reserved} +"},{"line_number":216,"context_line":"                         0 {C:Allocated})"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_f225e508","line":213,"in_reply_to":"5aa745d1_8cddef72","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":215,"context_line":"     C:Free Quota \u003d 10  {C:hard_limit} - ( 10 {C:used} + 0 {C:reserved} +"},{"line_number":216,"context_line":"                         0 {C:Allocated})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"     C:Free Quota \u003d 0"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"     If Project C ``hard_limit`` is increased by 10, then this change results"},{"line_number":221,"context_line":"     in:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_4ce7e740","line":218,"updated":"2015-04-16 01:03:50.000000000","message":"ditto","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":215,"context_line":"     C:Free Quota \u003d 10  {C:hard_limit} - ( 10 {C:used} + 0 {C:reserved} +"},{"line_number":216,"context_line":"                         0 {C:Allocated})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"     C:Free Quota \u003d 0"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"     If Project C ``hard_limit`` is increased by 10, then this change results"},{"line_number":221,"context_line":"     in:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_d21e61ba","line":218,"in_reply_to":"5aa745d1_4ce7e740","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":223,"context_line":"     +------------+----------------+----------+--------------+---------------+"},{"line_number":224,"context_line":"     | Name       | ``hard_limit`` | ``used`` | ``reserved`` | ``allocated`` |"},{"line_number":225,"context_line":"     +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":226,"context_line":"     |  A         | 100            |  0       | 50           |   50          |"},{"line_number":227,"context_line":"     +------------+----------------+----------+--------------+---------------+"},{"line_number":228,"context_line":"     |  B         | 50             | 20       |  0           |   20          |"},{"line_number":229,"context_line":"     +------------+----------------+----------+--------------+---------------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_acb8abe6","line":226,"updated":"2015-04-16 01:03:50.000000000","message":"Should not \"reserved\" for A still stay 0?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":223,"context_line":"     +------------+----------------+----------+--------------+---------------+"},{"line_number":224,"context_line":"     | Name       | ``hard_limit`` | ``used`` | ``reserved`` | ``allocated`` |"},{"line_number":225,"context_line":"     +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":226,"context_line":"     |  A         | 100            |  0       | 50           |   50          |"},{"line_number":227,"context_line":"     +------------+----------------+----------+--------------+---------------+"},{"line_number":228,"context_line":"     |  B         | 50             | 20       |  0           |   20          |"},{"line_number":229,"context_line":"     +------------+----------------+----------+--------------+---------------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_f253a569","line":226,"in_reply_to":"5aa745d1_acb8abe6","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":246,"context_line":"     | Visualisation : hard_limit\u003d150, used\u003d25, reserved\u003d25, allocated\u003d0"},{"line_number":247,"context_line":"     | ATLAS         : hard_limit\u003d400, used\u003d25, reserved\u003d25, allocated\u003d300"},{"line_number":248,"context_line":"     | Services      : hard_limit\u003d100, used\u003d25, reserved\u003d25, allocated\u003d0"},{"line_number":249,"context_line":"     | Computing     : hard_limit\u003d200, used\u003d50, reserved\u003d50, allocated\u003d0"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"     * Suppose Mike tries to increase the volumes quota in CMS to 400."},{"line_number":252,"context_line":"       Since Mike is having the role of admin in ProductionIT which is the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_0c8f9f24","line":249,"updated":"2015-04-16 01:03:50.000000000","message":"Please, add names of admin for each project on its line.\nThat makes reading of scenarios below easier","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":246,"context_line":"     | Visualisation : hard_limit\u003d150, used\u003d25, reserved\u003d25, allocated\u003d0"},{"line_number":247,"context_line":"     | ATLAS         : hard_limit\u003d400, used\u003d25, reserved\u003d25, allocated\u003d300"},{"line_number":248,"context_line":"     | Services      : hard_limit\u003d100, used\u003d25, reserved\u003d25, allocated\u003d0"},{"line_number":249,"context_line":"     | Computing     : hard_limit\u003d200, used\u003d50, reserved\u003d50, allocated\u003d0"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"     * Suppose Mike tries to increase the volumes quota in CMS to 400."},{"line_number":252,"context_line":"       Since Mike is having the role of admin in ProductionIT which is the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_72ce752f","line":249,"in_reply_to":"5aa745d1_0c8f9f24","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":261,"context_line":"       | ProductionIT:used minus"},{"line_number":262,"context_line":"       | ProductionIT:reserved minus"},{"line_number":263,"context_line":"       | ProductionIT:allocated \u003d"},{"line_number":264,"context_line":"       | 1000 - 100 - 100 - (300 + 400) \u003d 100."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_cc9e5707","line":264,"updated":"2015-04-16 01:03:50.000000000","message":"Since CMS hard_limit was bumped to 400 from 300 expect that line to be\n1000 - 100 - 100 - (400 + 400) \u003d 0.\n\nIf you are trying to walk thru internal calculation that need to be done.\nThen this becomes comparison between ask of 100 and ProductionIT available.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":261,"context_line":"       | ProductionIT:used minus"},{"line_number":262,"context_line":"       | ProductionIT:reserved minus"},{"line_number":263,"context_line":"       | ProductionIT:allocated \u003d"},{"line_number":264,"context_line":"       | 1000 - 100 - 100 - (300 + 400) \u003d 100."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_12b3b999","line":264,"in_reply_to":"5aa745d1_cc9e5707","updated":"2015-04-27 21:32:16.000000000","message":"You are right! Thanks. Done.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"       Note:ProductionIT:allocated \u003d CMS:hard_limit + ATLAS:hard_limit"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"       Minimum quota of CMS is given by,"},{"line_number":271,"context_line":"       CMS:used + CMS:reserved + CMS:allocated \u003d 25 + 15 + 250 \u003d 290"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_4c9367fb","line":268,"updated":"2015-04-16 01:03:50.000000000","message":"\u003d 800","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"       Note:ProductionIT:allocated \u003d CMS:hard_limit + ATLAS:hard_limit"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"       Minimum quota of CMS is given by,"},{"line_number":271,"context_line":"       CMS:used + CMS:reserved + CMS:allocated \u003d 25 + 15 + 250 \u003d 290"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_aa1d2911","line":268,"in_reply_to":"5aa745d1_4c9367fb","updated":"2015-04-27 21:32:16.000000000","message":"Done","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":276,"context_line":"       After update, the quota of ProductionIT and CMS will be as follows,"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"       | ProductionIT : hard_limit\u003d1000, used\u003d100, reserved\u003d100, allocated\u003d800"},{"line_number":279,"context_line":"       | CMS          : hard_limit\u003d400, used\u003d25, reserved\u003d15, allocated\u003d250"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"     * Suppose Mike tries to increase the intances quota in CMS to 500. Then"},{"line_number":282,"context_line":"       it will not be successful, since the maximum quota available"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_8c772fd4","line":279,"updated":"2015-04-16 01:03:50.000000000","message":"Should we also exposed available?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":276,"context_line":"       After update, the quota of ProductionIT and CMS will be as follows,"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"       | ProductionIT : hard_limit\u003d1000, used\u003d100, reserved\u003d100, allocated\u003d800"},{"line_number":279,"context_line":"       | CMS          : hard_limit\u003d400, used\u003d25, reserved\u003d15, allocated\u003d250"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"     * Suppose Mike tries to increase the intances quota in CMS to 500. Then"},{"line_number":282,"context_line":"       it will not be successful, since the maximum quota available"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_3247dd78","line":279,"in_reply_to":"5aa745d1_8c772fd4","updated":"2015-04-27 21:32:16.000000000","message":"I dont think so...its already very detailed.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"     * Suppose Mike tries to increase the intances quota in CMS to 500. Then"},{"line_number":282,"context_line":"       it will not be successful, since the maximum quota available"},{"line_number":283,"context_line":"       for CMS is 400."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"     * Suppose Jay who is the Manager of CMS increases the volumes"},{"line_number":286,"context_line":"       quota in CMS to 400, then it will not be successful, since Jay is not"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_6c5bc355","line":283,"updated":"2015-04-16 01:03:50.000000000","message":"prefer to use available at ProductionIT.\nThat way you can handle parallel requests.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"     * Suppose Mike tries to increase the intances quota in CMS to 500. Then"},{"line_number":282,"context_line":"       it will not be successful, since the maximum quota available"},{"line_number":283,"context_line":"       for CMS is 400."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"     * Suppose Jay who is the Manager of CMS increases the volumes"},{"line_number":286,"context_line":"       quota in CMS to 400, then it will not be successful, since Jay is not"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_921a297c","line":283,"in_reply_to":"5aa745d1_6c5bc355","updated":"2015-04-27 21:32:16.000000000","message":"Sorry need more clarification on what you mean here ?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":290,"context_line":"     * Suppose Mike tries to increase the quota of ProductionIT to 2000,"},{"line_number":291,"context_line":"       then it will be successful. Since ProductionIT is the root project,"},{"line_number":292,"context_line":"       there is no limit for the maximum quota of ProductionIT. And also,"},{"line_number":293,"context_line":"       Mike is having admin role in ProductionIT."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"8. A decrease in the quota value of a project is allowed only if it has free"},{"line_number":296,"context_line":"   quota available, free quota \u003e 0 (zero), hence the maximum decrease in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_6c098331","line":293,"updated":"2015-04-16 01:03:50.000000000","message":"Is there any check on overall cloud resource availability?\nOr we are implementing thin-provisioning equivalent.\n\nThe question boils down when do you want to get an error message.\nDeep in sub-project when it tries to allocate volume well below its total and gets an error \"out-of-resources\". Or when allocate resources?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":290,"context_line":"     * Suppose Mike tries to increase the quota of ProductionIT to 2000,"},{"line_number":291,"context_line":"       then it will be successful. Since ProductionIT is the root project,"},{"line_number":292,"context_line":"       there is no limit for the maximum quota of ProductionIT. And also,"},{"line_number":293,"context_line":"       Mike is having admin role in ProductionIT."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"8. A decrease in the quota value of a project is allowed only if it has free"},{"line_number":296,"context_line":"   quota available, free quota \u003e 0 (zero), hence the maximum decrease in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_857665a2","line":293,"in_reply_to":"5aa745d1_6c098331","updated":"2015-04-27 21:32:16.000000000","message":"The error should be reported from deep in sub-project because by changing the hard-limit of the child we are changing the allocated quota for the parent and not the other way around. Hope that answers your question.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"  * Suppose Mike deletes the quota of Visualisation, then it will be"},{"line_number":328,"context_line":"    successful since the allocated quota of Visualisation is zero. The"},{"line_number":329,"context_line":"    deleted quota of Visualisation will add to the free_quota of CMS. The"},{"line_number":330,"context_line":"    quota of CMS will be CMS :hard_limit\u003d300, used\u003d25, reserved\u003d15,"},{"line_number":331,"context_line":"    allocated\u003d100."},{"line_number":332,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_1cba2ce2","line":329,"updated":"2015-04-16 01:03:50.000000000","message":"I like idea of free_quota or available_quota.\nLet\u0027s introduce it from the start.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"  * Suppose Mike deletes the quota of Visualisation, then it will be"},{"line_number":328,"context_line":"    successful since the allocated quota of Visualisation is zero. The"},{"line_number":329,"context_line":"    deleted quota of Visualisation will add to the free_quota of CMS. The"},{"line_number":330,"context_line":"    quota of CMS will be CMS :hard_limit\u003d300, used\u003d25, reserved\u003d15,"},{"line_number":331,"context_line":"    allocated\u003d100."},{"line_number":332,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_4ad33539","line":329,"in_reply_to":"5aa745d1_1cba2ce2","updated":"2015-04-27 21:32:16.000000000","message":"Sure.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    synchronized, this will be automatically taken care of. For the time"},{"line_number":341,"context_line":"    being, Mike has to delete the quota of Visualisation, before he is"},{"line_number":342,"context_line":"    deleting that project. Synchronization of keystone with other OpenStack"},{"line_number":343,"context_line":"    services is beyond the scope of this blueprint."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":346,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_3c73a84f","line":343,"updated":"2015-04-16 01:03:50.000000000","message":"Can we propose to cinder that resources must be released back (set to 0) before project/sub-project deleted? \nIt will be consistent with default quota on creation is 0.\nSounds like viable short term blueprint for keystone.\n\nAgree that synchronizing return of resources on non-empty project is out the scope of this blueprint.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    synchronized, this will be automatically taken care of. For the time"},{"line_number":341,"context_line":"    being, Mike has to delete the quota of Visualisation, before he is"},{"line_number":342,"context_line":"    deleting that project. Synchronization of keystone with other OpenStack"},{"line_number":343,"context_line":"    services is beyond the scope of this blueprint."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":346,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_859d45be","line":343,"in_reply_to":"5aa745d1_3c73a84f","updated":"2015-04-27 21:32:16.000000000","message":"True.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"acd0ed22e4905fc309fb945c4ebb81246d505ac6","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    Operations, then the setup will work like the current setup where there is"},{"line_number":356,"context_line":"    only one level of projects. All the four projects will be treated as root"},{"line_number":357,"context_line":"    projects."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Alternatives"},{"line_number":361,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5aa745d1_9cf87c7e","line":358,"updated":"2015-04-16 01:03:50.000000000","message":"Like that operation is scoped on a project and its parent at most.\nStill need to address parallel operations on children of the same parent.\nSince both of them update parent need to ensure that there are enough free_quota for operations together. Or have some kind tentative update or ordering or locking.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    Operations, then the setup will work like the current setup where there is"},{"line_number":356,"context_line":"    only one level of projects. All the four projects will be treated as root"},{"line_number":357,"context_line":"    projects."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Alternatives"},{"line_number":361,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_25855906","line":358,"in_reply_to":"5aa745d1_9cf87c7e","updated":"2015-04-27 21:32:16.000000000","message":"I think with the current proposed design we should be good.\n\nLets say project A is the root and has 3 children A1, A2 and A3. Lets say the hardlimit for A is 110. The allocated quota is 90 for A i.e. free_quota \u003d hard_limit - { used + reserved + allocated to subprojects)\nfree_quota \u003d 110 - { 0 + 0 + 90 } \u003d 20\n\nScenario 1:-\nLets say A1 and A3 which are running parallely need 20 more each , so in this case either of them whomever\u0027s request is processed first will get served. The serving will be all or nothing i.e. either A1 will get entire 20 or A3 will get it. Lets say A1 wins the battle. So we need to increase the hard_limit of A1 which is restricted by the free quota of the parent A. So the quota_update will result in \n  a. Updating the hard_limit of A3\n  b. Updating the allocated capacity for A\n  c. A3\u0027s request for quota_update should raise an exception as the request can\u0027t be satisfied at this moment because there is no enough free quota available in A. In that case it should be a notification to cloud_admin of the root project A to increase the hard_limit and hence the free_quota should be more to serve A3\u0027s request when it comes again.\n  d. But how to serve the request which were not served initially(request A3) do we persist them somewhere and replay them when enough free quota is available is out of the question of this Spec. But what is assumed in this spec and what I feel is the right approach is if someone is in need of quota he will proactively get in touch with the parent/project-admin/cloud-admin of the project.\n\nScenario 2:-\nLets say A1 and A3 request 30 each then request should be rejected as the parent does not have enough free quota available.\n\nScenario 3:-\nLets say A1 request 20 and A3 request 30 but A3 request is processed first then based on above discussion we raise exception to A3 that not enough free quota available in parent whereas we can server A1\u0027s request.\n\nPlease go though this if you are convinced I can officially make it part of the spec.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"60a6c3765d72098c4830a6449d4370399f9953dd","unresolved":false,"context_lines":[{"line_number":377,"context_line":"REST API impact"},{"line_number":378,"context_line":"---------------"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"None"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac4157f_55c74912","line":380,"updated":"2015-04-20 14:13:02.000000000","message":"Also it would be nice to extend API, add method to simplify quota managment, admin shouldn\u0027t make all calculations in his mind about possible values for quotas(in view of nested projects) since we don\u0027t store it in the db.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":377,"context_line":"REST API impact"},{"line_number":378,"context_line":"---------------"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"None"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_cac4e593","line":380,"in_reply_to":"dac4157f_55c74912","updated":"2015-04-27 21:32:16.000000000","message":"Which API specifically are you talking about ? Can you give specific example of what you are expecting here ?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"faa5ea009de8f37b9fb5a5b83012f220b99463fc","unresolved":false,"context_lines":[{"line_number":389,"context_line":"Notifications impact"},{"line_number":390,"context_line":"--------------------"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"None"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_2e447e72","line":392,"updated":"2015-04-17 13:00:17.000000000","message":"Any change of quota values (not usage, but limits) should generate an event","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":389,"context_line":"Notifications impact"},{"line_number":390,"context_line":"--------------------"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"None"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_aa48892e","line":392,"in_reply_to":"3ab451fb_2e447e72","updated":"2015-04-27 21:32:16.000000000","message":"Should be helpful from debugging and tracing perspective should be helpful. With this approach I expect the sub-project to be more pro-active when it needs more quota. Even mechanism can be used to notify the starving sub-project when the parent has enough free quota available. Please see comment above is response to @arkady\u0027s question on \"addressing  parallel operations \".","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"faa5ea009de8f37b9fb5a5b83012f220b99463fc","unresolved":false,"context_lines":[{"line_number":395,"context_line":"Other end user impact"},{"line_number":396,"context_line":"---------------------"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"None"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_4e36aa04","line":398,"updated":"2015-04-17 13:00:17.000000000","message":"End user can now set qutoas for sub-projects?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":395,"context_line":"Other end user impact"},{"line_number":396,"context_line":"---------------------"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"None"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_aa6f6991","line":398,"in_reply_to":"3ab451fb_4e36aa04","updated":"2015-04-27 21:32:16.000000000","message":"Only Cloud-Admin or immediate parent can set quota on sub-project.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"faa5ea009de8f37b9fb5a5b83012f220b99463fc","unresolved":false,"context_lines":[{"line_number":401,"context_line":"Performance Impact"},{"line_number":402,"context_line":"------------------"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"None"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ab451fb_ee0c5644","line":404,"updated":"2015-04-17 13:00:17.000000000","message":"A larger number of db entries are potentially required to represent quotas, and the quota db accesses are currently some of our worst performing - I\u0027d be surprised if there isn\u0027t a potential slowdown of create/delete","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":401,"context_line":"Performance Impact"},{"line_number":402,"context_line":"------------------"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"None"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_0a0f7de2","line":404,"in_reply_to":"3ab451fb_ee0c5644","updated":"2015-04-27 21:32:16.000000000","message":"Sure. Details can be added to measure performance.","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"a90cf5d7e63b8a42e3afcafc3e8974a33e667d85","unresolved":false,"context_lines":[{"line_number":431,"context_line":"Work Items"},{"line_number":432,"context_line":"----------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"1. The role called \"cloud-admin\"  will be created and assigning that"},{"line_number":435,"context_line":"   role to a user in root project and making it inheritable."},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"2. Role called  \"project-admin\" will be created. The user with \"project-admin\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab921fb_4c5de613","line":434,"updated":"2015-04-27 03:41:44.000000000","message":"Do we have any cross project agreement on this?","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c462272532f024baba8533821be9a529669ac157","unresolved":false,"context_lines":[{"line_number":431,"context_line":"Work Items"},{"line_number":432,"context_line":"----------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"1. The role called \"cloud-admin\"  will be created and assigning that"},{"line_number":435,"context_line":"   role to a user in root project and making it inheritable."},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"2. Role called  \"project-admin\" will be created. The user with \"project-admin\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_caf985ca","line":434,"in_reply_to":"bab921fb_4c5de613","updated":"2015-04-27 21:32:16.000000000","message":"Hi Mike,\n\nPlease see the comment below \n\n\"Note:The roles like \"cloud-admin\" and \"project-admin\" are not hard coded. It is used in this Blueprint, just for demonstration purpose.\"","commit_id":"55a55e8fa6c4eb090fd57ccbec3c1ef327002c8e"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Project Priority"},{"line_number":147,"context_line":"-----------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hance we need an"},{"line_number":150,"context_line":"update. Also as the entire Openstack community is moving toward heirarchical"},{"line_number":151,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_efa45a09","line":149,"updated":"2015-04-29 18:46:15.000000000","message":"*hence","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Project Priority"},{"line_number":147,"context_line":"-----------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hance we need an"},{"line_number":150,"context_line":"update. Also as the entire Openstack community is moving toward heirarchical"},{"line_number":151,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_71aa41d6","line":149,"in_reply_to":"3acd31a7_efa45a09","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":147,"context_line":"-----------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hance we need an"},{"line_number":150,"context_line":"update. Also as the entire Openstack community is moving toward heirarchical"},{"line_number":151,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_af966292","line":150,"updated":"2015-04-29 18:46:15.000000000","message":"*hierarchical","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":147,"context_line":"-----------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hance we need an"},{"line_number":150,"context_line":"update. Also as the entire Openstack community is moving toward heirarchical"},{"line_number":151,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_b1a0d9f5","line":150,"in_reply_to":"3acd31a7_af966292","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"dfbd73b98cc99b7d0dd8c72bf755fa2c78758f1d","unresolved":false,"context_lines":[{"line_number":267,"context_line":"       | ProductionIT:used minus"},{"line_number":268,"context_line":"       | ProductionIT:reserved minus"},{"line_number":269,"context_line":"       | ProductionIT:allocated \u003d"},{"line_number":270,"context_line":"       | 1000 - 100 - 100 - (400 + 400) \u003d 0."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_f381cc90","line":270,"updated":"2015-04-29 13:00:21.000000000","message":"this is confusing.\nJust put a formula for free quota here and plug the numbers as you did.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":267,"context_line":"       | ProductionIT:used minus"},{"line_number":268,"context_line":"       | ProductionIT:reserved minus"},{"line_number":269,"context_line":"       | ProductionIT:allocated \u003d"},{"line_number":270,"context_line":"       | 1000 - 100 - 100 - (400 + 400) \u003d 0."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"       So maximum permissible quota for CMS is 300 + 100 \u003d 400"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_711481f4","line":270,"in_reply_to":"5ad0253b_f381cc90","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"       Note: CMS:allocated \u003d Visualisation:hard_limit + Computing:hard_limit"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"       Since 290 \u003c\u003d 400 \u003c\u003d400, quota operation will be successful."},{"line_number":282,"context_line":"       After update, the quota of ProductionIT and CMS will be as follows,"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"       | ProductionIT : hard_limit\u003d1000, used\u003d100, reserved\u003d100, allocated\u003d800"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_b15ec774","line":281,"updated":"2015-04-29 18:46:15.000000000","message":"These numbers should be explained to improve the readability. Something like... \"Since 290 (minimum quota) \u003c\u003d 400 (new quota) \u003c\u003d 400 (maximum quota), quota operation will be successful.\"","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"       Note: CMS:allocated \u003d Visualisation:hard_limit + Computing:hard_limit"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"       Since 290 \u003c\u003d 400 \u003c\u003d400, quota operation will be successful."},{"line_number":282,"context_line":"       After update, the quota of ProductionIT and CMS will be as follows,"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"       | ProductionIT : hard_limit\u003d1000, used\u003d100, reserved\u003d100, allocated\u003d800"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_9135dd47","line":281,"in_reply_to":"3acd31a7_b15ec774","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"dfbd73b98cc99b7d0dd8c72bf755fa2c78758f1d","unresolved":false,"context_lines":[{"line_number":296,"context_line":"     * Suppose Mike tries to increase the quota of ProductionIT to 2000,"},{"line_number":297,"context_line":"       then it will be successful. Since ProductionIT is the root project,"},{"line_number":298,"context_line":"       there is no limit for the maximum quota of ProductionIT. And also,"},{"line_number":299,"context_line":"       Mike is having admin role in ProductionIT."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"8. A decrease in the quota value of a project is allowed only if it has free"},{"line_number":302,"context_line":"   quota available, free quota \u003e 0 (zero), hence the maximum decrease in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_8ed5cb44","line":299,"updated":"2015-04-29 13:00:21.000000000","message":"This is deceiving. This is true only of there are enough resources in overcloud to satisfy it. While in theory root admin can increase its hard limit to infinity and divvy up to projects in reality some of the volume creating operation will fail due to lack of resources.\nThat brings into question the meaning of hard_limit, used and allocated and what can admins and users can really depend on.\n\nThat need to be spelled out.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":296,"context_line":"     * Suppose Mike tries to increase the quota of ProductionIT to 2000,"},{"line_number":297,"context_line":"       then it will be successful. Since ProductionIT is the root project,"},{"line_number":298,"context_line":"       there is no limit for the maximum quota of ProductionIT. And also,"},{"line_number":299,"context_line":"       Mike is having admin role in ProductionIT."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"8. A decrease in the quota value of a project is allowed only if it has free"},{"line_number":302,"context_line":"   quota available, free quota \u003e 0 (zero), hence the maximum decrease in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_743a2f38","line":299,"in_reply_to":"5ad0253b_8ed5cb44","updated":"2015-04-30 19:32:28.000000000","message":"Interestring question. My reply in upcoming patch....\n\n\"For a private cloud the hard_limit depends on the internal\ninventory that is maintained internally by the cloud provider.\nMike the Cloud Admin will have an access to these details\nand will update the hard_limit depending on the available\ninventory. So hard_limit is bounded by the available inventory\nfor the Private Cloud and it will vary for each Private Cloud.\"","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"      If Project B\u0027s hard_limit needs to be reduced further by 20, then this"},{"line_number":316,"context_line":"      operation will be aborted, because the free quota of Project B should"},{"line_number":317,"context_line":"      be greater than or equal to (20+0+10)."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    * Suppose Mike tries to reduce the volumes quota in CMS to 350,"},{"line_number":320,"context_line":"      it will be successful since the minimum quota required for CMS is 290."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_743eddb9","line":317,"updated":"2015-04-29 18:46:15.000000000","message":"The free quota should be greater than or equal to 0.\n\nThe \"new quota\" is the one that should be greater than or equal to the minimum quota required (20+0+10). Right?","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"      If Project B\u0027s hard_limit needs to be reduced further by 20, then this"},{"line_number":316,"context_line":"      operation will be aborted, because the free quota of Project B should"},{"line_number":317,"context_line":"      be greater than or equal to (20+0+10)."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    * Suppose Mike tries to reduce the volumes quota in CMS to 350,"},{"line_number":320,"context_line":"      it will be successful since the minimum quota required for CMS is 290."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_f4a75f4d","line":317,"in_reply_to":"3acd31a7_743eddb9","updated":"2015-04-30 19:32:28.000000000","message":"Nope, free_limit should be greater than increase in hard_limit by the child project.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    * Suppose Mike tries to reduce the volumes quota of CMS to 200,"},{"line_number":323,"context_line":"      then it will not be successful, since it violates the minimum quota"},{"line_number":324,"context_line":"      criteria."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"9. Delete quota is equivalent to updating the quota with zero values. It"},{"line_number":327,"context_line":"   will be successful if the allocated quota is zero. Authentication logic"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_f4d42d48","line":324,"updated":"2015-04-29 18:46:15.000000000","message":"I think these two bullets should not be indented, since you are talking about ProductIT hierarchy and not A-\u003eB-\u003eC hierarchy anymore.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    * Suppose Mike tries to reduce the volumes quota of CMS to 200,"},{"line_number":323,"context_line":"      then it will not be successful, since it violates the minimum quota"},{"line_number":324,"context_line":"      criteria."},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"9. Delete quota is equivalent to updating the quota with zero values. It"},{"line_number":327,"context_line":"   will be successful if the allocated quota is zero. Authentication logic"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_273febb5","line":324,"in_reply_to":"3acd31a7_f4d42d48","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"dfbd73b98cc99b7d0dd8c72bf755fa2c78758f1d","unresolved":false,"context_lines":[{"line_number":346,"context_line":"    synchronized, this will be automatically taken care of. For the time"},{"line_number":347,"context_line":"    being, Mike has to delete the quota of Visualisation, before he is"},{"line_number":348,"context_line":"    deleting that project. Synchronization of keystone with other OpenStack"},{"line_number":349,"context_line":"    services is beyond the scope of this blueprint."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":352,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_02a4efa3","line":349,"updated":"2015-04-29 13:00:21.000000000","message":"Not sure if propose another blueprint for keystone to test that all project resources have been deleted before it can be deleted, but deleting resources is admin/user responsibility.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":346,"context_line":"    synchronized, this will be automatically taken care of. For the time"},{"line_number":347,"context_line":"    being, Mike has to delete the quota of Visualisation, before he is"},{"line_number":348,"context_line":"    deleting that project. Synchronization of keystone with other OpenStack"},{"line_number":349,"context_line":"    services is beyond the scope of this blueprint."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":352,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_277a4b25","line":349,"in_reply_to":"5ad0253b_02a4efa3","updated":"2015-04-30 19:32:28.000000000","message":"I wanted to bring up all the points that we may face now or in future. And I think it will be nice if we have an API or some kind of interaction from Keystone to Cinder (or any other project that manages Quota for that matter) to perform cleanup activity and then its up to that respective project to perform cleanup. Something like pycadf [1],  can generate audit for certain actions on resources. The notification can go to a queue and then the respective consumer can consume these events.\n\n[1] https://github.com/openstack/pycadf","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":7160,"name":"arkady kanevsky","email":"akanevsk@redhat.com","username":"arkady"},"change_message_id":"dfbd73b98cc99b7d0dd8c72bf755fa2c78758f1d","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    important because increase in hard_limit for a subproject (depending on"},{"line_number":369,"context_line":"    the free_quota in the parent) and updating the allocated quota at the parent"},{"line_number":370,"context_line":"    level needs to be an atomic operation. Once the atomic operation is performed"},{"line_number":371,"context_line":"    new incoming request should will be served."},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"Alternatives"},{"line_number":374,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ad0253b_22736bb3","line":371,"updated":"2015-04-29 13:00:21.000000000","message":"Not sure what you are trying to say in the first sentence.\nHow is manual testing helps with multiple quota operations in progress?\n\nAgree that atomic operation for child and parent for quota changes will solve parallel operations. Not sure how you propose to implement it.\n\ngrammar issue in the last sentence.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    important because increase in hard_limit for a subproject (depending on"},{"line_number":369,"context_line":"    the free_quota in the parent) and updating the allocated quota at the parent"},{"line_number":370,"context_line":"    level needs to be an atomic operation. Once the atomic operation is performed"},{"line_number":371,"context_line":"    new incoming request should will be served."},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"Alternatives"},{"line_number":374,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_ca315e0d","line":371,"in_reply_to":"5ad0253b_22736bb3","updated":"2015-04-30 19:32:28.000000000","message":"Sure updated.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0c06257556d48a3afbacfa9d36d086cee9bf6a9f","unresolved":false,"context_lines":[{"line_number":396,"context_line":"Security impact"},{"line_number":397,"context_line":"---------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"None"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_ba9ea905","line":399,"updated":"2015-04-29 14:47:32.000000000","message":"Care should be taken during reviews to ensure that this code does not allow any quota escape vulnerabilities. Given it is a more complex model, it is well worth reviewers spending time on actively trying to subvert the model (time of check .v. time of use, etc)","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":396,"context_line":"Security impact"},{"line_number":397,"context_line":"---------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"None"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_aa362201","line":399,"in_reply_to":"3acd31a7_ba9ea905","updated":"2015-04-30 19:32:28.000000000","message":"Good point. Thanks for bringing it up. Will add details.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0c06257556d48a3afbacfa9d36d086cee9bf6a9f","unresolved":false,"context_lines":[{"line_number":402,"context_line":"Notifications impact"},{"line_number":403,"context_line":"--------------------"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"None"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_9a108daa","line":405,"updated":"2015-04-29 14:47:32.000000000","message":"As patch set 1: Any change of quota values (not usage, but limits) should generate an event. This is useful for general debugging, auditing to figure out who did what, etc","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":402,"context_line":"Notifications impact"},{"line_number":403,"context_line":"--------------------"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"None"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_25700372","line":405,"in_reply_to":"3acd31a7_9a108daa","updated":"2015-04-30 19:32:28.000000000","message":"Sure. In patch set #1 I just updated the comment in the comment section but should have updated in my spec while sending patch set 2 my bad. Please check the next patch","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0c06257556d48a3afbacfa9d36d086cee9bf6a9f","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"Work Items"},{"line_number":446,"context_line":"----------"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"1. The role called \"cloud-admin\"  will be created and assigning that"},{"line_number":449,"context_line":"   role to a user in root project and making it inheritable."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_3ae5f9a7","line":446,"updated":"2015-04-29 14:47:32.000000000","message":"Can we spell out the split I suggested on patch set 1 here, please? In particular the first change should only fix up the quota calculations to be sub-project aware, not add any new editing capabilities. No new rolls etc are needed for the first pass at this.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"Work Items"},{"line_number":446,"context_line":"----------"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"1. The role called \"cloud-admin\"  will be created and assigning that"},{"line_number":449,"context_line":"   role to a user in root project and making it inheritable."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_aa3182a4","line":446,"in_reply_to":"3acd31a7_3ae5f9a7","updated":"2015-04-30 19:32:28.000000000","message":"I did add it on line #42 and #43 in patch set 2 and patch set 3 . I should have added it here. My bad. Fixed it now please check the next patch. In next patch removed it from line #42, #43 and updated in the work items section.","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"318d92944fa9928d0eeafe5756e25b817d58f0f7","unresolved":false,"context_lines":[{"line_number":490,"context_line":""},{"line_number":491,"context_line":"* `Wiki \u003chttps://wiki.openstack.org/wiki/HierarchicalMultitenancy\u003e`_"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"* `Heirarchical Projects"},{"line_number":494,"context_line":"  \u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"* `Hierarchical Projects Improvements"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_5493e1fa","line":493,"updated":"2015-04-29 18:46:15.000000000","message":"Hierarchical Projects","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"895affea0eb38c50ca7e03a1c06d0a09d7a09973","unresolved":false,"context_lines":[{"line_number":490,"context_line":""},{"line_number":491,"context_line":"* `Wiki \u003chttps://wiki.openstack.org/wiki/HierarchicalMultitenancy\u003e`_"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"* `Heirarchical Projects"},{"line_number":494,"context_line":"  \u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"* `Hierarchical Projects Improvements"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_270a4b27","line":493,"in_reply_to":"3acd31a7_5493e1fa","updated":"2015-04-30 19:32:28.000000000","message":"Done","commit_id":"ac30f6d63f22e1142347bc915f7e6fa9af8fb2b1"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":136,"context_line":"  j. Suppose, Mike deletes the quota of Visualisation."},{"line_number":137,"context_line":"  k. Suppose, Mike deletes the project Visualisation."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"8. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":140,"context_line":"   restructure in such a way that there are only four projects namely,"},{"line_number":141,"context_line":"   Visualisation, Computing, Services and Operations."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_c0c7fd10","line":139,"updated":"2015-04-30 22:20:04.000000000","message":"9.","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":136,"context_line":"  j. Suppose, Mike deletes the quota of Visualisation."},{"line_number":137,"context_line":"  k. Suppose, Mike deletes the project Visualisation."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"8. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":140,"context_line":"   restructure in such a way that there are only four projects namely,"},{"line_number":141,"context_line":"   Visualisation, Computing, Services and Operations."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_42b76ed8","line":139,"in_reply_to":"3acd31a7_c0c7fd10","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Project Priority"},{"line_number":145,"context_line":"-----------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hence we need an"},{"line_number":148,"context_line":"update. Also as the entire Openstack community is moving toward hierarchical"},{"line_number":149,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_dca2454b","line":147,"updated":"2015-04-30 22:20:04.000000000","message":"existing","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Project Priority"},{"line_number":145,"context_line":"-----------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hence we need an"},{"line_number":148,"context_line":"update. Also as the entire Openstack community is moving toward hierarchical"},{"line_number":149,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_22ba32c1","line":147,"in_reply_to":"3acd31a7_dca2454b","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":145,"context_line":"-----------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hence we need an"},{"line_number":148,"context_line":"update. Also as the entire Openstack community is moving toward hierarchical"},{"line_number":149,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_9c85edae","line":148,"updated":"2015-04-30 22:20:04.000000000","message":"OpenStack","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":145,"context_line":"-----------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The code in the exsisting DBQuotaDriver is deprecated and hence we need an"},{"line_number":148,"context_line":"update. Also as the entire Openstack community is moving toward hierarchical"},{"line_number":149,"context_line":"projects this can be an useful addition to Cinder."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_02b176e1","line":148,"in_reply_to":"3acd31a7_9c85edae","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":350,"context_line":"      before he is deleting that project. Synchronization of keystone"},{"line_number":351,"context_line":"      with other OpenStack services is beyond the scope of this blueprint."},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":354,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"},{"line_number":355,"context_line":"    ATLAS or in the parent of ATLAS."},{"line_number":356,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_1c355df6","line":353,"updated":"2015-04-30 22:20:04.000000000","message":"12.. and so on..","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":350,"context_line":"      before he is deleting that project. Synchronization of keystone"},{"line_number":351,"context_line":"      with other OpenStack services is beyond the scope of this blueprint."},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"10. Suppose if Jay, who is the Manager of CMS tries to view the quota of"},{"line_number":354,"context_line":"    ATLAS, it will not be successful, since Jay is not having any role in"},{"line_number":355,"context_line":"    ATLAS or in the parent of ATLAS."},{"line_number":356,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_c2cb7e52","line":353,"in_reply_to":"3acd31a7_1c355df6","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":"The parameter hard_limit used in the spec needs to be closely tied"},{"line_number":406,"context_line":"to the actual inventory present in each individual private cloud. As"},{"line_number":407,"context_line":"most of the calculations are based of hard_limit the transperent view"},{"line_number":408,"context_line":"of available inventory is needed for quota calculations. This is beyond"},{"line_number":409,"context_line":"the scope of this spec but bringing it up for clarity. Also care"},{"line_number":410,"context_line":"should be taken to ensure that this does not allow any quota escape"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_1f030f0f","line":407,"updated":"2015-04-30 22:20:04.000000000","message":"transparent","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":"The parameter hard_limit used in the spec needs to be closely tied"},{"line_number":406,"context_line":"to the actual inventory present in each individual private cloud. As"},{"line_number":407,"context_line":"most of the calculations are based of hard_limit the transperent view"},{"line_number":408,"context_line":"of available inventory is needed for quota calculations. This is beyond"},{"line_number":409,"context_line":"the scope of this spec but bringing it up for clarity. Also care"},{"line_number":410,"context_line":"should be taken to ensure that this does not allow any quota escape"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_62d70aee","line":407,"in_reply_to":"3acd31a7_1f030f0f","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":423,"context_line":"event or notification mechanism can be used to notify the starving"},{"line_number":424,"context_line":"sub-project, to retry later, when the parent has enough"},{"line_number":425,"context_line":"free quota available. Also going ahead when Keystone deletes"},{"line_number":426,"context_line":"a project and the quota is freed up a notification can go"},{"line_number":427,"context_line":"to a queue and then cinder can consume this event to"},{"line_number":428,"context_line":"proactively free up the quota from cinder db."},{"line_number":429,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_df2357a6","line":426,"updated":"2015-04-30 22:20:04.000000000","message":"quota is not freed up here synchronously after project deletion, it will be freed up after cinder consumes the event","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":423,"context_line":"event or notification mechanism can be used to notify the starving"},{"line_number":424,"context_line":"sub-project, to retry later, when the parent has enough"},{"line_number":425,"context_line":"free quota available. Also going ahead when Keystone deletes"},{"line_number":426,"context_line":"a project and the quota is freed up a notification can go"},{"line_number":427,"context_line":"to a queue and then cinder can consume this event to"},{"line_number":428,"context_line":"proactively free up the quota from cinder db."},{"line_number":429,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_422c0e02","line":426,"in_reply_to":"3acd31a7_df2357a6","updated":"2015-04-30 23:26:52.000000000","message":"Needed to construct the sentence properly. Thanks for pointing this out.","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"f9022b36211a75fff045d815d2add54331358fac","unresolved":false,"context_lines":[{"line_number":432,"context_line":"---------------------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"Only Cloud-Admin or immediate parent can set quota on"},{"line_number":435,"context_line":"sub-project. Cloud-Admin can evn set and update its"},{"line_number":436,"context_line":"own quota."},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_7c30d101","line":435,"updated":"2015-04-30 22:20:04.000000000","message":"even","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"c820ad296cedf0912ca60538e23156a7ced8e763","unresolved":false,"context_lines":[{"line_number":432,"context_line":"---------------------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"Only Cloud-Admin or immediate parent can set quota on"},{"line_number":435,"context_line":"sub-project. Cloud-Admin can evn set and update its"},{"line_number":436,"context_line":"own quota."},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3acd31a7_824a26c4","line":435,"in_reply_to":"3acd31a7_7c30d101","updated":"2015-04-30 23:26:52.000000000","message":"Done","commit_id":"436228fc2aae9105671932cb44f9d3b3a14f0555"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6452f15ece1b7cd8e91fc32e14d90418992f8026","unresolved":false,"context_lines":[{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Nested quota driver for enforcing quotas in hierarchical projects"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/cinder-nested-quota-driver"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_f029a038","line":10,"updated":"2015-05-01 00:53:03.000000000","message":"change to:\n\n`bp cinder-nested-quota-driver\n\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-nested-quota-driver \u003e`_\n\nInstead of just showing a link, make it more user friendly. \n\nHere is the generated doc for this: http://docs-draft.openstack.org/41/173141/5/check/gate-cinder-specs-docs/5e444e4//doc/build/html/specs/liberty/cinder-nested-quota-driver.html?highlight\u003dnested","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d1b5ea3a92c0c84531bfaf5aa06d544be468e1f4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Nested quota driver for enforcing quotas in hierarchical projects"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/cinder-nested-quota-driver"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_eb0c153d","line":10,"in_reply_to":"3acd31a7_f029a038","updated":"2015-05-01 01:45:09.000000000","message":"Done","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6452f15ece1b7cd8e91fc32e14d90418992f8026","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"},{"line_number":14,"context_line":"projects."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"http://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\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":5,"id":"3acd31a7_10de5c3f","line":16,"updated":"2015-05-01 00:53:03.000000000","message":"this too.","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d1b5ea3a92c0c84531bfaf5aa06d544be468e1f4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"},{"line_number":14,"context_line":"projects."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"http://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\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":5,"id":"3acd31a7_2b2a0d7f","line":16,"in_reply_to":"3acd31a7_10de5c3f","updated":"2015-05-01 01:45:09.000000000","message":"Done","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6452f15ece1b7cd8e91fc32e14d90418992f8026","unresolved":false,"context_lines":[{"line_number":431,"context_line":"Other end user impact"},{"line_number":432,"context_line":"---------------------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"Only Cloud-Admin or immediate parent can set quota on"},{"line_number":435,"context_line":"sub-project. Cloud-Admin can even set and update its"},{"line_number":436,"context_line":"own quota."},{"line_number":437,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_f09c005f","line":434,"updated":"2015-05-01 00:53:03.000000000","message":"nit: there are more spaces to the right, why not use the extra space","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d1b5ea3a92c0c84531bfaf5aa06d544be468e1f4","unresolved":false,"context_lines":[{"line_number":431,"context_line":"Other end user impact"},{"line_number":432,"context_line":"---------------------"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"Only Cloud-Admin or immediate parent can set quota on"},{"line_number":435,"context_line":"sub-project. Cloud-Admin can even set and update its"},{"line_number":436,"context_line":"own quota."},{"line_number":437,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_2b78cd8e","line":434,"in_reply_to":"3acd31a7_f09c005f","updated":"2015-05-01 01:45:09.000000000","message":"Done","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6452f15ece1b7cd8e91fc32e14d90418992f8026","unresolved":false,"context_lines":[{"line_number":500,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"Depends on bp Hierarchical Multitenancy"},{"line_number":503,"context_line":"  * `\u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_90aeec83","line":503,"updated":"2015-05-01 00:53:03.000000000","message":"* `Hierarchical Projects \u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d1b5ea3a92c0c84531bfaf5aa06d544be468e1f4","unresolved":false,"context_lines":[{"line_number":500,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"Depends on bp Hierarchical Multitenancy"},{"line_number":503,"context_line":"  * `\u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_4bd1c956","line":503,"in_reply_to":"3acd31a7_90aeec83","updated":"2015-05-01 01:45:09.000000000","message":"Done","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6452f15ece1b7cd8e91fc32e14d90418992f8026","unresolved":false,"context_lines":[{"line_number":520,"context_line":"References"},{"line_number":521,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"* `Wiki \u003chttps://wiki.openstack.org/wiki/HierarchicalMultitenancy\u003e`_"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"* `Hierarchical Projects"},{"line_number":526,"context_line":"  \u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_50897425","line":523,"updated":"2015-05-01 00:53:03.000000000","message":"Wiki -\u003e Hierarchical Projects Wiki","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d1b5ea3a92c0c84531bfaf5aa06d544be468e1f4","unresolved":false,"context_lines":[{"line_number":520,"context_line":"References"},{"line_number":521,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"* `Wiki \u003chttps://wiki.openstack.org/wiki/HierarchicalMultitenancy\u003e`_"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"* `Hierarchical Projects"},{"line_number":526,"context_line":"  \u003chttp://specs.openstack.org/openstack/keystone-specs/specs/juno/hierarchical_multitenancy.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_0bcbd1a6","line":523,"in_reply_to":"3acd31a7_50897425","updated":"2015-05-01 01:45:09.000000000","message":"Done","commit_id":"ef914e1f6d806d982dab5449ee4a7f237a587513"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"82e8cb31757fd3a9b8d7aedd597adce9321892b6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"`bp cinder-nested-quota-driver"},{"line_number":12,"context_line":"\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-nested-quota-driver \u003e`_"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"},{"line_number":15,"context_line":"projects."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_6bffe5aa","line":12,"updated":"2015-05-01 01:55:34.000000000","message":"this didn\u0027t rendered correctly.\n\nsee http://docs-draft.openstack.org/41/173141/6/check/gate-cinder-specs-docs/9b3c460//doc/build/html/specs/liberty/cinder-nested-quota-driver.html?highlight\u003dnested","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"`bp cinder-nested-quota-driver"},{"line_number":12,"context_line":"\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-nested-quota-driver \u003e`_"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Nested quota driver will enable OpenStack to enforce quota in nested"},{"line_number":15,"context_line":"projects."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_7108e82d","line":12,"in_reply_to":"3acd31a7_6bffe5aa","updated":"2015-05-01 17:18:12.000000000","message":"Done","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"28c5ddb878c098af791622daad3ee144f04b26c2","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"9. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":143,"context_line":"   restructure in such a way that there are only four projects namely,"},{"line_number":144,"context_line":"   Visualisation, Computing, Services and Operations."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_d1146645","line":144,"updated":"2015-05-01 05:35:18.000000000","message":"I\u0027m not following this case. What are you trying to show with #9?  This removes the hierarchical projects and make everything flat?","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"9. Suppose the company doesn\u0027t want a nested structure and want to"},{"line_number":143,"context_line":"   restructure in such a way that there are only four projects namely,"},{"line_number":144,"context_line":"   Visualisation, Computing, Services and Operations."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_5194cce0","line":144,"in_reply_to":"3acd31a7_d1146645","updated":"2015-05-01 17:18:12.000000000","message":"Please see #14 in Proposed change.","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"28c5ddb878c098af791622daad3ee144f04b26c2","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"1. The default quota (hard limit) for any newly created sub-project is set to 0."},{"line_number":159,"context_line":"   The neutral value of zero ensures consistency of data in the case of race"},{"line_number":160,"context_line":"   conditions when several projects are created by admins  at the same time."},{"line_number":161,"context_line":"   Suppose the default value of number of volumes allowed per project is 100,"},{"line_number":162,"context_line":"   and A is the root project. And an admin is creating B, a child project of A,"},{"line_number":163,"context_line":"   and another admin is creating C, again a child project of A. Now, the sum"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_71191279","line":160,"updated":"2015-05-01 05:35:18.000000000","message":"extra space after \"admins\"","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"1. The default quota (hard limit) for any newly created sub-project is set to 0."},{"line_number":159,"context_line":"   The neutral value of zero ensures consistency of data in the case of race"},{"line_number":160,"context_line":"   conditions when several projects are created by admins  at the same time."},{"line_number":161,"context_line":"   Suppose the default value of number of volumes allowed per project is 100,"},{"line_number":162,"context_line":"   and A is the root project. And an admin is creating B, a child project of A,"},{"line_number":163,"context_line":"   and another admin is creating C, again a child project of A. Now, the sum"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_91dca4e5","line":160,"in_reply_to":"3acd31a7_71191279","updated":"2015-05-01 17:18:12.000000000","message":"Done","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"28c5ddb878c098af791622daad3ee144f04b26c2","unresolved":false,"context_lines":[{"line_number":179,"context_line":"   its immediate child projects to the last level project/user under the"},{"line_number":180,"context_line":"   project hierarchy."},{"line_number":181,"context_line":"   Note: The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":182,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":183,"context_line":"5. The total resources consumed by a project is divided into"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_f123e2a5","line":182,"updated":"2015-05-01 05:35:18.000000000","message":"Can you describe how are these roles created and get permissions assigned?","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":179,"context_line":"   its immediate child projects to the last level project/user under the"},{"line_number":180,"context_line":"   project hierarchy."},{"line_number":181,"context_line":"   Note: The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":182,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":183,"context_line":"5. The total resources consumed by a project is divided into"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"     a) Used Quota  - Resources used by the volumes in a project."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_31e1509b","line":182,"in_reply_to":"3acd31a7_f123e2a5","updated":"2015-05-01 17:18:12.000000000","message":"Note: The roles like \"cloud-admin\" and \"project-admin\" are not hard coded. It is used in this Blueprint, just for demonstration purpose. HTH.\n\nMore details here [1]\n\n[1] https://review.openstack.org/#/c/101017/26/specs/juno/hierarchical_multitenancy.rst","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"28c5ddb878c098af791622daad3ee144f04b26c2","unresolved":false,"context_lines":[{"line_number":488,"context_line":"   project/user under the project hierarchy, provided it is inheritable."},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"   Note:The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":491,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"5. A new Quota Driver called ``NestedQuotaDriver`` will be implemented by"},{"line_number":494,"context_line":"   extending the existing ``DbQuotaDriver``, to enforce quotas in hierarchical"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_31783a8f","line":491,"updated":"2015-05-01 05:35:18.000000000","message":"I have a question on this earlier.","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":488,"context_line":"   project/user under the project hierarchy, provided it is inheritable."},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"   Note:The roles like \"cloud-admin\" and \"project-admin\" are not hard coded."},{"line_number":491,"context_line":"   It is used in this Blueprint, just for demonstration purpose."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"5. A new Quota Driver called ``NestedQuotaDriver`` will be implemented by"},{"line_number":494,"context_line":"   extending the existing ``DbQuotaDriver``, to enforce quotas in hierarchical"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_f1bf585e","line":491,"in_reply_to":"3acd31a7_31783a8f","updated":"2015-05-01 17:18:12.000000000","message":"Please refer to\n\nhttps://review.openstack.org/#/c/101017/26/specs/juno/hierarchical_multitenancy.rst","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"28c5ddb878c098af791622daad3ee144f04b26c2","unresolved":false,"context_lines":[{"line_number":516,"context_line":"Documentation Impact"},{"line_number":517,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"None"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_91638edc","line":519,"updated":"2015-05-01 05:35:18.000000000","message":"This should have a doc impact.","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"087916c7aff861959024eb131f4511e59f93a26e","unresolved":false,"context_lines":[{"line_number":516,"context_line":"Documentation Impact"},{"line_number":517,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"None"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_71ac6835","line":519,"in_reply_to":"3acd31a7_91638edc","updated":"2015-05-01 17:18:12.000000000","message":"Sure. Done","commit_id":"80838886e24995526a9d443ae3c9d0cb10dc6eac"}]}
