)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4e1d637446eeadb3a483c37eb9063cdaf8fde40f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f6379f53_4046db81","updated":"2022-03-14 17:52:10.000000000","message":"Adding melwitt here, as she was most recently heavily involved in the nova conversion process.","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"863ef664efb4cb9e4fd94fc8806ff85e1f169105","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e0c6ba64_98232156","updated":"2022-03-15 01:32:07.000000000","message":"This looks pretty solid to me, didn\u0027t notice anything obvious to add at the moment. I have a couple of comments inline.","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8102d8579717833e9ce9e45e209c059b8393597","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7db0bb7e_93c2f1c8","updated":"2022-03-15 21:13:37.000000000","message":"Thanks Amy, I\u0027m scheduled for comma addiction therapy later in the week :)","commit_id":"23b902ccb23cc1b010b9118f987beb8d6f6b099b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cdaede13_332862d5","updated":"2022-03-16 13:53:13.000000000","message":"Good points gmann, I\u0027m starting on an amendment now. Thanks!","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"11aeb0f92aa79273b0db6d27cee81b7857e9a0d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ca2cddeb_4b9ddd23","updated":"2022-03-15 22:51:24.000000000","message":"Great to have this added.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3777c87dbdce699b48a6313c7f1baba70027df6e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"19b5f0ac_e2a867f3","updated":"2022-03-15 22:39:38.000000000","message":"LGTM, thanks","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"970cc23b62891acc4c0aacbc204e45f3c36c84eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f99f5e49_c8151948","updated":"2022-03-16 02:52:03.000000000","message":"even it is merged and I am late to review but few comments inline. ","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"}],"technical-guides/index.rst":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"970cc23b62891acc4c0aacbc204e45f3c36c84eb","unresolved":true,"context_lines":[{"line_number":2,"context_line":"Technical Guides"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Contents:"},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":".. toctree::"},{"line_number":9,"context_line":"   :maxdepth: 2"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"d8971ef6_433058ca","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":0},"updated":"2022-03-16 02:52:03.000000000","message":"we can remove this and let actual guidlines name be listed in index page. otherwise it is generated as:\n\nTechnical Guides\n    Contents:\n\nhttps://docs.openstack.org/project-team-guide/","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":true,"context_lines":[{"line_number":2,"context_line":"Technical Guides"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Contents:"},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":".. toctree::"},{"line_number":9,"context_line":"   :maxdepth: 2"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"75c8f6c5_4c3039e2","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":0},"in_reply_to":"d8971ef6_433058ca","updated":"2022-03-16 13:53:13.000000000","message":"Ah yeah, thanks. I meant to flag this as \"not sure what to do here\" but I was just trying to get it all linked up so I could write the content.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"}],"technical-guides/unified-limits.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"863ef664efb4cb9e4fd94fc8806ff85e1f169105","unresolved":true,"context_lines":[{"line_number":52,"context_line":"currently allocated, it only stores the limit: the maximum amount"},{"line_number":53,"context_line":"allowed. It is up to the service that owns the resource to do the"},{"line_number":54,"context_line":"checking of consumption against the limit to decide whether a resource"},{"line_number":55,"context_line":"allocation should be allowed."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Is this only relevant for allocate-able or quota-able resources?"},{"line_number":58,"context_line":"----------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7d50ec09_79f0738d","line":55,"updated":"2022-03-15 01:32:07.000000000","message":"Debating if it might be helpful to mention oslo.limit here, imagining if someone new to keystone limits is reading this and this section talks all about limits. Their first question might be \"so how do I do resource counting and enforcement?\" before they\u0027ve gotten to the \"players involved\" section.","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b29ecb3b87bdc921f88d07b08e24a85d1c5922f0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"currently allocated, it only stores the limit: the maximum amount"},{"line_number":53,"context_line":"allowed. It is up to the service that owns the resource to do the"},{"line_number":54,"context_line":"checking of consumption against the limit to decide whether a resource"},{"line_number":55,"context_line":"allocation should be allowed."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Is this only relevant for allocate-able or quota-able resources?"},{"line_number":58,"context_line":"----------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"710d3e10_a764e4f0","line":55,"in_reply_to":"0d4d32fc_ddc3b219","updated":"2022-03-15 20:45:54.000000000","message":"Done","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9b9434474f40852f9154c3b35bb05bf08e8264c","unresolved":true,"context_lines":[{"line_number":52,"context_line":"currently allocated, it only stores the limit: the maximum amount"},{"line_number":53,"context_line":"allowed. It is up to the service that owns the resource to do the"},{"line_number":54,"context_line":"checking of consumption against the limit to decide whether a resource"},{"line_number":55,"context_line":"allocation should be allowed."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Is this only relevant for allocate-able or quota-able resources?"},{"line_number":58,"context_line":"----------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0d4d32fc_ddc3b219","line":55,"in_reply_to":"7d50ec09_79f0738d","updated":"2022-03-15 15:58:59.000000000","message":"Sure, I\u0027ll add some foreshadowing here and delegate the details to below.","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"863ef664efb4cb9e4fd94fc8806ff85e1f169105","unresolved":true,"context_lines":[{"line_number":112,"context_line":"application of \"current + requested \u003e\u003d limit\" behavior, as well as"},{"line_number":113,"context_line":"standardized error messages."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Additionally, the Enforcer makes an attempt to coerce the user into a"},{"line_number":116,"context_line":"batch-oriented approach to save on round trips to Keystone. The"},{"line_number":117,"context_line":"consumer of the library should attempt to conform to this behavior"},{"line_number":118,"context_line":"whenever possible."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7d7920f3_42ff8a9d","line":116,"range":{"start_line":115,"start_character":1,"end_line":116,"end_character":59},"updated":"2022-03-15 01:32:07.000000000","message":"If I understand what you mean here, I think the Enforcer doesn\u0027t batch resource names for calls for limits with regard to keystone calls [1]. And I notice the keystone API doesn\u0027t let you filter limits by more than one resource [1], so to save round trips, you have to GET all the limits and do your own filtering. I\u0027m thinking we should probably update Enforcer to do that. It would mean Enforcer has to do filtering on the returned limits resource names itself though ... but that\u0027s lighter than separate keystone calls for each resource name.\n\n[1] https://github.com/openstack/oslo.limit/blob/562ada0e2d1353d1405a1215cb396b7e44e70a02/oslo_limit/limit.py#L319-L338\n[2] https://docs.openstack.org/api-ref/identity/v3/index.html?expanded\u003dlist-registered-limits-detail#list-registered-limits","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3777c87dbdce699b48a6313c7f1baba70027df6e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"application of \"current + requested \u003e\u003d limit\" behavior, as well as"},{"line_number":113,"context_line":"standardized error messages."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Additionally, the Enforcer makes an attempt to coerce the user into a"},{"line_number":116,"context_line":"batch-oriented approach to save on round trips to Keystone. The"},{"line_number":117,"context_line":"consumer of the library should attempt to conform to this behavior"},{"line_number":118,"context_line":"whenever possible."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a335e8a_0aacd75c","line":116,"range":{"start_line":115,"start_character":1,"end_line":116,"end_character":59},"in_reply_to":"72083d3f_e7e2d1d3","updated":"2022-03-15 22:39:38.000000000","message":"Ack","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9b9434474f40852f9154c3b35bb05bf08e8264c","unresolved":true,"context_lines":[{"line_number":112,"context_line":"application of \"current + requested \u003e\u003d limit\" behavior, as well as"},{"line_number":113,"context_line":"standardized error messages."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Additionally, the Enforcer makes an attempt to coerce the user into a"},{"line_number":116,"context_line":"batch-oriented approach to save on round trips to Keystone. The"},{"line_number":117,"context_line":"consumer of the library should attempt to conform to this behavior"},{"line_number":118,"context_line":"whenever possible."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"72083d3f_e7e2d1d3","line":116,"range":{"start_line":115,"start_character":1,"end_line":116,"end_character":59},"in_reply_to":"7d7920f3_42ff8a9d","updated":"2022-03-15 15:58:59.000000000","message":"Right, but it could/should in the future. Writing new code to use this to be as batch-friendly in the future means we can get that gain if the underlying stuff does it correctly. So, write the code here to use the batching python interface, and leave the optimizations to the library maintainers.\n\nI added this because I think nova, being a retrofit, probably doesn\u0027t (can\u0027t) use this as much as we might like. So to avoid someone learning by example from code that was a compromise, I wanted to say \"if you can, batch it\".","commit_id":"c17aa585cb6d50c02b5daa968c886af5650a1cb7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8102d8579717833e9ce9e45e209c059b8393597","unresolved":true,"context_lines":[{"line_number":43,"context_line":"on a resource\" and \"the amount of resource currently being"},{"line_number":44,"context_line":"consumed\". The quota is enforced by comparing the amount currently"},{"line_number":45,"context_line":"used to the amount allowed at the time that a new resource allocation"},{"line_number":46,"context_line":"attempt is made. In that case, a service like Cinder implements a"},{"line_number":47,"context_line":"quota on disk usage when a new allocation is requested, by comparing"},{"line_number":48,"context_line":"current allocations to the limit, before deciding if the request"},{"line_number":49,"context_line":"should be granted."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ccc36a9d_8702fc51","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":29},"updated":"2022-03-15 21:13:37.000000000","message":"Thanks, this was left over from me originally being prescriptive and hypothetical, but changing to a relatable example instead.","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":false,"context_lines":[{"line_number":43,"context_line":"on a resource\" and \"the amount of resource currently being"},{"line_number":44,"context_line":"consumed\". The quota is enforced by comparing the amount currently"},{"line_number":45,"context_line":"used to the amount allowed at the time that a new resource allocation"},{"line_number":46,"context_line":"attempt is made. In that case, a service like Cinder implements a"},{"line_number":47,"context_line":"quota on disk usage when a new allocation is requested, by comparing"},{"line_number":48,"context_line":"current allocations to the limit, before deciding if the request"},{"line_number":49,"context_line":"should be granted."}],"source_content_type":"text/x-rst","patch_set":2,"id":"c08d3ec6_1e47fb78","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":29},"in_reply_to":"ccc36a9d_8702fc51","updated":"2022-03-16 13:53:13.000000000","message":"Done","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8102d8579717833e9ce9e45e209c059b8393597","unresolved":true,"context_lines":[{"line_number":132,"context_line":"tradeoff between being off-by-one in quota enforcement and potentially"},{"line_number":133,"context_line":"wildly out of sync with actual consumption has generally preferred the"},{"line_number":134,"context_line":"former. Indeed, the Enforcer pattern in `oslo.limit`_ receives"},{"line_number":135,"context_line":"functions which are called to calculate current usage, and it is"},{"line_number":136,"context_line":"recommended that the implementations of these do that calculation live"},{"line_number":137,"context_line":"instead of mere lookups in accounting tables."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"b1e6a31e_eaae493f","line":135,"range":{"start_line":135,"start_character":53,"end_line":135,"end_character":54},"updated":"2022-03-15 21:13:37.000000000","message":"IMHO this comma was correct, as it delineates a non-restrictive phrase from the rest of the sentence.\n\nhttps://www.grammarly.com/blog/comma-before-which/","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":false,"context_lines":[{"line_number":132,"context_line":"tradeoff between being off-by-one in quota enforcement and potentially"},{"line_number":133,"context_line":"wildly out of sync with actual consumption has generally preferred the"},{"line_number":134,"context_line":"former. Indeed, the Enforcer pattern in `oslo.limit`_ receives"},{"line_number":135,"context_line":"functions which are called to calculate current usage, and it is"},{"line_number":136,"context_line":"recommended that the implementations of these do that calculation live"},{"line_number":137,"context_line":"instead of mere lookups in accounting tables."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"f258af74_e422a116","line":135,"range":{"start_line":135,"start_character":53,"end_line":135,"end_character":54},"in_reply_to":"b1e6a31e_eaae493f","updated":"2022-03-16 13:53:13.000000000","message":"Done","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8102d8579717833e9ce9e45e209c059b8393597","unresolved":true,"context_lines":[{"line_number":152,"context_line":"All or none"},{"line_number":153,"context_line":"-----------"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"It is recommended that if any unified limits are to be applied, all of"},{"line_number":156,"context_line":"them should be applied. Meaning, it is okay to allow for enabling or"},{"line_number":157,"context_line":"disabling quota/limit checking entirely, or to enable \"internal"},{"line_number":158,"context_line":"limits\" vs. \"limits in keystone\" for projects transitioning. However,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"00861ab8_ca59a658","line":155,"range":{"start_line":155,"start_character":62,"end_line":155,"end_character":63},"updated":"2022-03-15 21:13:37.000000000","message":"This is a conditional statement and thus this applies:\n\nhttps://linguaholic.com/linguablog/comma-before-then/\n\nIt\u0027s apparently optional for implicit \"then\" usage, but I\u0027m going to put the then in here and thus add back the comma. The one below this is a straight \"if..then\" conditional and thus needs it back as well.","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":false,"context_lines":[{"line_number":152,"context_line":"All or none"},{"line_number":153,"context_line":"-----------"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"It is recommended that if any unified limits are to be applied, all of"},{"line_number":156,"context_line":"them should be applied. Meaning, it is okay to allow for enabling or"},{"line_number":157,"context_line":"disabling quota/limit checking entirely, or to enable \"internal"},{"line_number":158,"context_line":"limits\" vs. \"limits in keystone\" for projects transitioning. However,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4f23c9ea_b3d4a52b","line":155,"range":{"start_line":155,"start_character":62,"end_line":155,"end_character":63},"in_reply_to":"00861ab8_ca59a658","updated":"2022-03-16 13:53:13.000000000","message":"Done","commit_id":"0f9869fe62823d72bb27b06417a704972ba8c4f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b29ecb3b87bdc921f88d07b08e24a85d1c5922f0","unresolved":true,"context_lines":[{"line_number":73,"context_line":"In order to implement limits in Keystone, the `oslo.limit`_ library is"},{"line_number":74,"context_line":"provided, and should be used by consumers to do so. This library"},{"line_number":75,"context_line":"provides an interface to efficiently query limits from Keystone and"},{"line_number":76,"context_line":"generally provides a quota-driven workflow that will directly apply it"},{"line_number":77,"context_line":"in most cases. Limits queried via the limit library must be registered"},{"line_number":78,"context_line":"before use and thus most projects will need devstack changes to make"},{"line_number":79,"context_line":"sure that registration happens."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ac3eaf83_3b900b88","line":76,"range":{"start_line":76,"start_character":68,"end_line":76,"end_character":70},"updated":"2022-03-15 20:45:54.000000000","message":"This is no longer correct I think. The workflow applies to the thing being done, in that it\u0027s \"relevant\" or \"related\".\n\nIt does not apply the workflow itself, as in taking action, which I think is what the sentence means with your edit. Now, this reads to me as if the library provides the quotas functionality itself, but it does not: it provides tooling (i.e. the workflow) for the service to implement and enforce quotas.","commit_id":"23b902ccb23cc1b010b9118f987beb8d6f6b099b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":false,"context_lines":[{"line_number":73,"context_line":"In order to implement limits in Keystone, the `oslo.limit`_ library is"},{"line_number":74,"context_line":"provided, and should be used by consumers to do so. This library"},{"line_number":75,"context_line":"provides an interface to efficiently query limits from Keystone and"},{"line_number":76,"context_line":"generally provides a quota-driven workflow that will directly apply it"},{"line_number":77,"context_line":"in most cases. Limits queried via the limit library must be registered"},{"line_number":78,"context_line":"before use and thus most projects will need devstack changes to make"},{"line_number":79,"context_line":"sure that registration happens."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f0ec005_6ce3ab19","line":76,"range":{"start_line":76,"start_character":68,"end_line":76,"end_character":70},"in_reply_to":"ac3eaf83_3b900b88","updated":"2022-03-16 13:53:13.000000000","message":"Done","commit_id":"23b902ccb23cc1b010b9118f987beb8d6f6b099b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"970cc23b62891acc4c0aacbc204e45f3c36c84eb","unresolved":true,"context_lines":[{"line_number":18,"context_line":"projects. Each resource limit is \"registered\" with keystone and given"},{"line_number":19,"context_line":"a default value which can be overridden per-project with different"},{"line_number":20,"context_line":"values."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Why store this in Keystone?"},{"line_number":23,"context_line":"---------------------------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"120f50ce_9b727a07","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":0},"updated":"2022-03-16 02:52:03.000000000","message":"also, it will be good to add a section here about what is the issue in existing quota mechanism projects has and how this unified limit can solve those. That will help projects to understand the requirement to move to the unified limit.\n\nEven below sections are covering those in detail but having a list of issues in existing quota and how this unified limit can solve will be helpful to understand the further document.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":true,"context_lines":[{"line_number":18,"context_line":"projects. Each resource limit is \"registered\" with keystone and given"},{"line_number":19,"context_line":"a default value which can be overridden per-project with different"},{"line_number":20,"context_line":"values."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Why store this in Keystone?"},{"line_number":23,"context_line":"---------------------------"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7722395b_66d3f62e","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":0},"in_reply_to":"120f50ce_9b727a07","updated":"2022-03-16 13:53:13.000000000","message":"Okay, I guess I didn\u0027t see this as a requirement, but more of a \"if you\u0027re going to use unified limits, here are guidelines.\"\n\nI definitely agree that anyone adding new quota stuff should use unified limits instead of growing something themselves at this point. Converting existing projects is nice, but I can imagine it\u0027s pretty low priority.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"970cc23b62891acc4c0aacbc204e45f3c36c84eb","unresolved":true,"context_lines":[{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"19508ad4_639296e5","line":172,"range":{"start_line":170,"start_character":60,"end_line":172,"end_character":36},"updated":"2022-03-16 02:52:03.000000000","message":"we can add the nova example here to know how to handle the existing APIs case. are not they recommended/planned to be deprecated with new microversion?\n\nAlso, the legacy way of defining the quota via conf file (like in nova case not sure if other projects also have that) is ignored if a unified limit is enabled.\n\nThese kinds of directions about what to do with the existing way of quota will be helpful. Or in detail what are the recommended migration plan so that we do not break existing users. I prefer it can be a separate section \u0027Migration Plan\u0027 or so.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":true,"context_lines":[{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a4694969_e0b78766","line":172,"range":{"start_line":170,"start_character":60,"end_line":172,"end_character":36},"in_reply_to":"19508ad4_639296e5","updated":"2022-03-16 13:53:13.000000000","message":"Okay, I\u0027m not sure we can be too prescriptive about how they should deprecate the existing stuff for all projects, and I would expect that to be covered under standard API and deprecation guidelines. However, good point about providing some guidance about how to handle the new case. Specifically, *not* proxying existing quota set apis to keystone is a good example.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7d584437c08a0e4662cbed0aa9d13e899d7d025b","unresolved":true,"context_lines":[{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c0bc8b85_51647e0e","line":172,"range":{"start_line":170,"start_character":60,"end_line":172,"end_character":36},"in_reply_to":"a4694969_e0b78766","updated":"2022-03-16 14:03:30.000000000","message":"\u003e Also, the legacy way of defining the quota via conf file (like in nova case not sure if other projects also have that) is ignored if a unified limit is enabled.\n\nI thought I covered this in the \"All or none\" section, but will try to strengthen the wording there.","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0c301944099fb13fd062293c5d8b26e69cf33ab7","unresolved":true,"context_lines":[{"line_number":167,"context_line":"----------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"0619733e_f5827f30","line":172,"range":{"start_line":170,"start_character":60,"end_line":172,"end_character":36},"in_reply_to":"a4694969_e0b78766","updated":"2022-03-16 14:21:26.000000000","message":"sure, at least we can tell \u0027make sure you are not breaking the exiting way\u0027 they do it via keeping or deprecating the existing APIs is all their call(I agree with you on this).","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"970cc23b62891acc4c0aacbc204e45f3c36c84eb","unresolved":true,"context_lines":[{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Keystone does not know about resource consumption and thus cannot"},{"line_number":177,"context_line":"provide users information about it. Further, resource limit"},{"line_number":178,"context_line":"information is not necessarily something users are permitted to see by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8f837645_9987c8df","line":175,"range":{"start_line":172,"start_character":37,"end_line":175,"end_character":0},"updated":"2022-03-16 02:52:03.000000000","message":"Do you think we should provide a API spec (or a standard way of their name/request/response body) for such new APIs so that it can be consistent for all project implementing new one. glance API format as mentioned as example can be good to recommend?","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2dd41002e6567d9336f019b6358f65524ad66026","unresolved":true,"context_lines":[{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Keystone does not know about resource consumption and thus cannot"},{"line_number":177,"context_line":"provide users information about it. Further, resource limit"},{"line_number":178,"context_line":"information is not necessarily something users are permitted to see by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e776f1b4_0f2e95b4","line":175,"range":{"start_line":172,"start_character":37,"end_line":175,"end_character":0},"in_reply_to":"8f837645_9987c8df","updated":"2022-03-16 13:53:13.000000000","message":"That\u0027s really not doable for nova, and so I would expect not doable for other projects either without substantial needless API churn. So, because I don\u0027t want nova to have to do that, I\u0027ll say I\u0027d rather not push people to rewrite towards some new goal if they already have one. Do you feel strongly otherwise?","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0c301944099fb13fd062293c5d8b26e69cf33ab7","unresolved":true,"context_lines":[{"line_number":169,"context_line":"Projects with existing quota systems likely already expose APIs for"},{"line_number":170,"context_line":"their users to examine their limits and usage for resources. These"},{"line_number":171,"context_line":"APIs should be maintained, but pull the limit information from"},{"line_number":172,"context_line":"Keystone if unified limits are used. Projects that do not have legacy"},{"line_number":173,"context_line":"APIs for this purpose should implement them as they are necessary for"},{"line_number":174,"context_line":"proper user behavior."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Keystone does not know about resource consumption and thus cannot"},{"line_number":177,"context_line":"provide users information about it. Further, resource limit"},{"line_number":178,"context_line":"information is not necessarily something users are permitted to see by"}],"source_content_type":"text/x-rst","patch_set":4,"id":"239ca38e_fea09ec6","line":175,"range":{"start_line":172,"start_character":37,"end_line":175,"end_character":0},"in_reply_to":"e776f1b4_0f2e95b4","updated":"2022-03-16 14:21:26.000000000","message":"yeah for nova or any projects having existing APIs are not doable but if for any proejcts impelementing quota first time for them it will be useful that what APIs they can provide to get quota like glance did. But may be you can better judge if that is something is required or just a good API to have?","commit_id":"ee9ddbc45c11a6f644982b2d9aa9310300787ac7"}]}
