)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"be42b614e09c9c7ab7ef82e346e4a8d6807848fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d786398c_db966918","updated":"2022-08-24 08:05:46.000000000","message":"hi, Kiran Pawar, thanks for your change,\nIn my opinion,\n\nIn this case, the capacity of per_share_gigabytes is effectively removed, and users can create a share and then extend it.  as result, all share size large than per_share_gigabytes,  i don\u0027t think this is a good idea.\n\nabout this case, i think reserved_share_extend_percentage will be useful.\n\nwhat do you think?\n\n ","commit_id":"2269a64fbf2c04b9c684e531b56cf820902c8200"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b35ecdd9e0aebfe5f8f82a623e9c85df1d7f08ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fc227f9b_73bf9e8b","in_reply_to":"d786398c_db966918","updated":"2022-08-25 11:11:30.000000000","message":"In our deployment, we restrict it under admin i.e. only admin can use extend quota and user still need to use share quota. but I thought, not to keep same logic in upstream.  Do you think I should so same here ?\n\nif admin:\n    use_share_extend_size_quota\nelse:\n    use_share_Size_quota","commit_id":"2269a64fbf2c04b9c684e531b56cf820902c8200"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee4a536ad0df25d5f2f651844109de018645abc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"06039dce_8603a60b","in_reply_to":"fc227f9b_73bf9e8b","updated":"2022-08-29 02:15:28.000000000","message":"I agree with this modification, only admin can extend share.","commit_id":"2269a64fbf2c04b9c684e531b56cf820902c8200"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"0ac318846f1aec9cecc1bd2c89d844ae57f0b050","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7d55dc4b_6577341e","updated":"2022-08-26 09:45:03.000000000","message":"haixin ,\nplease check updated patch. The extend quota is admin only.","commit_id":"b58dc1fabf919fe253d740ad6c779087f2b816c4"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee4a536ad0df25d5f2f651844109de018645abc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"15465877_33fd1ea0","updated":"2022-08-29 02:15:28.000000000","message":"hi, Kiran Pawar.\nthanks for your update change.\n","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"17c842f00b1687f19c8aa0698cfeb2faf907a271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1beeea4e_5e79705a","updated":"2022-08-30 02:27:45.000000000","message":"Thanks Kiran! It is changing the API, so can you please update the API docs ? ","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f5a2d892_3c779ba8","updated":"2022-08-29 23:45:21.000000000","message":"Thanks, some comments and questions inline","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":186,"context_line":"             availability zone. Also, users can add subnets for an in-use share"},{"line_number":187,"context_line":"             network."},{"line_number":188,"context_line":"    * 2.71 - Added \u0027updated_at\u0027 field in share instance show API output."},{"line_number":189,"context_line":"    * 2.72 - Added quota control to per share extend size(admin only)."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"\"\"\""},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3dbec15c_81a0f6ca","line":189,"range":{"start_line":189,"start_character":57,"end_line":189,"end_character":69},"updated":"2022-08-29 23:45:21.000000000","message":"don\u0027t need this annotation; RBAC makes access configurable to any persona in the cloud","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":186,"context_line":"             availability zone. Also, users can add subnets for an in-use share"},{"line_number":187,"context_line":"             network."},{"line_number":188,"context_line":"    * 2.71 - Added \u0027updated_at\u0027 field in share instance show API output."},{"line_number":189,"context_line":"    * 2.72 - Added quota control to per share extend size(admin only)."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"\"\"\""},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"b6d0f1b9_bf0699dc","line":189,"range":{"start_line":189,"start_character":57,"end_line":189,"end_character":69},"in_reply_to":"3dbec15c_81a0f6ca","updated":"2022-09-05 14:14:17.000000000","message":"Done","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee4a536ad0df25d5f2f651844109de018645abc2","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"2.72"},{"line_number":401,"context_line":"----"},{"line_number":402,"context_line":"  Added quota control to per share extend size."}],"source_content_type":"text/x-rst","patch_set":4,"id":"d9783511_c2fec8a0","line":402,"range":{"start_line":402,"start_character":46,"end_line":402,"end_character":47},"updated":"2022-08-29 02:15:28.000000000","message":"(admin only)","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7a875494059784ccfcf5769ede34bba21491b916","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"2.72"},{"line_number":401,"context_line":"----"},{"line_number":402,"context_line":"  Added quota control to per share extend size."}],"source_content_type":"text/x-rst","patch_set":4,"id":"0f0fd98e_b32be3fd","line":402,"range":{"start_line":402,"start_character":46,"end_line":402,"end_character":47},"in_reply_to":"d9783511_c2fec8a0","updated":"2022-08-29 07:35:44.000000000","message":"Done","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"2.72"},{"line_number":401,"context_line":"----"},{"line_number":402,"context_line":"  Added quota control to per share extend size (admin-only)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"66143fe6_b4bc4e7e","line":402,"range":{"start_line":402,"start_character":47,"end_line":402,"end_character":59},"updated":"2022-08-29 23:45:21.000000000","message":"don\u0027t need this; RBAC makes access configurable to any persona","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"2.72"},{"line_number":401,"context_line":"----"},{"line_number":402,"context_line":"  Added quota control to per share extend size (admin-only)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"29897760_9bfbe051","line":402,"range":{"start_line":402,"start_character":47,"end_line":402,"end_character":59},"in_reply_to":"66143fe6_b4bc4e7e","updated":"2022-09-05 14:14:17.000000000","message":"Done","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/api/v2/quota_sets.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                            \"integer.\") % {\u0027value\u0027: value, \u0027key\u0027: key}"},{"line_number":194,"context_line":"                    LOG.warning(msg)"},{"line_number":195,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":196,"context_line":"            if not context.is_admin and key \u003d\u003d \u0027per_share_extend_gigabytes\u0027:"},{"line_number":197,"context_line":"                msg \u003d _(\"Quota %(key)s can only be updated by admin.\""},{"line_number":198,"context_line":"                        ) % {\u0027key\u0027: key}"},{"line_number":199,"context_line":"                LOG.warning(msg)"},{"line_number":200,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        LOG.debug(\"Force update quotas: %s.\", force_update)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f5d9cd52_22e0a43b","line":200,"range":{"start_line":196,"start_character":0,"end_line":200,"end_character":63},"updated":"2022-08-29 23:45:21.000000000","message":"API policies for create/update/delete actions are sufficient for this new quota as well. We don\u0027t need this check:\n\nhttps://github.com/openstack/manila/blob/c07f2d8ba8c97294858af1fb6388135de17b509d/manila/api/v2/quota_sets.py#L140\nhttps://github.com/openstack/manila/blob/256b5c84ba6f2fa42c72d0ab50c906d8dcf2f986/manila/api/v2/quota_class_sets.py#L49\nhttps://github.com/openstack/manila/blob/6f68d7e60fd854ab9f4e7eb56af81549d5b2b980/manila/policies/quota_set.py#L45-L75\nhttps://github.com/openstack/manila/blob/6f68d7e60fd854ab9f4e7eb56af81549d5b2b980/manila/policies/quota_class_set.py#L39-L56","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                            \"integer.\") % {\u0027value\u0027: value, \u0027key\u0027: key}"},{"line_number":194,"context_line":"                    LOG.warning(msg)"},{"line_number":195,"context_line":"                    raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":196,"context_line":"            if not context.is_admin and key \u003d\u003d \u0027per_share_extend_gigabytes\u0027:"},{"line_number":197,"context_line":"                msg \u003d _(\"Quota %(key)s can only be updated by admin.\""},{"line_number":198,"context_line":"                        ) % {\u0027key\u0027: key}"},{"line_number":199,"context_line":"                LOG.warning(msg)"},{"line_number":200,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        LOG.debug(\"Force update quotas: %s.\", force_update)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ab9ae851_05a022aa","line":200,"range":{"start_line":196,"start_character":0,"end_line":200,"end_character":63},"in_reply_to":"f5d9cd52_22e0a43b","updated":"2022-09-05 14:14:17.000000000","message":"Done","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/db/migrations/alembic/versions/e23742469ecd_add_per_share_extend_gigabytes_quota_.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"add per share extend gigabytes quota class"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Revision ID: e23742469ecd"},{"line_number":16,"context_line":"Revises: a87e0fb17dee"}],"source_content_type":"text/x-python","patch_set":5,"id":"eb55e2ae_9236989c","line":13,"range":{"start_line":13,"start_character":40,"end_line":13,"end_character":45},"updated":"2022-08-29 23:45:21.000000000","message":"this isn\u0027t a quota \"class\" (quota classes are templates - the only class we support out of the box is the \"default\" quota class which affects any user that doesn\u0027t have their quotas overridden)","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"add per share extend gigabytes quota class"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Revision ID: e23742469ecd"},{"line_number":16,"context_line":"Revises: a87e0fb17dee"}],"source_content_type":"text/x-python","patch_set":5,"id":"3b00c516_c4bf6fb3","line":13,"range":{"start_line":13,"start_character":40,"end_line":13,"end_character":45},"in_reply_to":"eb55e2ae_9236989c","updated":"2022-09-05 14:14:17.000000000","message":"Done","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/quota.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":54,"context_line":"    cfg.IntOpt(\u0027per_share_extend_gigabytes\u0027,"},{"line_number":55,"context_line":"               default\u003d-1,"},{"line_number":56,"context_line":"               help\u003d\u0027Max size allowed per share to extend, in gigabytes.\u0027,"},{"line_number":57,"context_line":"               deprecated_group\u003d\u0027DEFAULT\u0027,"},{"line_number":58,"context_line":"               deprecated_name\u003d\u0027quota_per_share_extend_gigabytes\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027snapshot_gigabytes\u0027,"},{"line_number":60,"context_line":"               default\u003d1000,"},{"line_number":61,"context_line":"               help\u003d\u0027Number of snapshot gigabytes allowed per project.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"17aad10d_38cfdcab","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":65},"updated":"2022-08-29 23:45:21.000000000","message":"these aren\u0027t needed since the option is just being added and we\u0027re discouraging the usage of quota options in the [DEFAULT] section by deprecating them there","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.IntOpt(\u0027per_share_extend_gigabytes\u0027,"},{"line_number":55,"context_line":"               default\u003d-1,"},{"line_number":56,"context_line":"               help\u003d\u0027Max size allowed per share to extend, in gigabytes.\u0027,"},{"line_number":57,"context_line":"               deprecated_group\u003d\u0027DEFAULT\u0027,"},{"line_number":58,"context_line":"               deprecated_name\u003d\u0027quota_per_share_extend_gigabytes\u0027),"},{"line_number":59,"context_line":"    cfg.IntOpt(\u0027snapshot_gigabytes\u0027,"},{"line_number":60,"context_line":"               default\u003d1000,"},{"line_number":61,"context_line":"               help\u003d\u0027Number of snapshot gigabytes allowed per project.\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"d4d97d31_dad1bf07","line":58,"range":{"start_line":57,"start_character":0,"end_line":58,"end_character":65},"in_reply_to":"17aad10d_38cfdcab","updated":"2022-09-05 14:14:17.000000000","message":"Done","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}],"manila/share/api.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee4a536ad0df25d5f2f651844109de018645abc2","unresolved":true,"context_lines":[{"line_number":2258,"context_line":"            }"},{"line_number":2259,"context_line":"            raise exception.ShareBusyException(reason\u003dmsg)"},{"line_number":2260,"context_line":""},{"line_number":2261,"context_line":"    def _check_is_share_size_within_quota_limit(self, context, size):"},{"line_number":2262,"context_line":"        \"\"\"Raises an exception if share size above per share quota limit.\"\"\""},{"line_number":2263,"context_line":"        try:"},{"line_number":2264,"context_line":"            values \u003d {\u0027per_share_gigabytes\u0027: size}"}],"source_content_type":"text/x-python","patch_set":4,"id":"99ae1479_c3b5f4fa","line":2261,"range":{"start_line":2261,"start_character":8,"end_line":2261,"end_character":47},"updated":"2022-08-29 02:15:28.000000000","message":"The original function name is fine, not confused with the project quota, user quota detection.","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7a875494059784ccfcf5769ede34bba21491b916","unresolved":false,"context_lines":[{"line_number":2258,"context_line":"            }"},{"line_number":2259,"context_line":"            raise exception.ShareBusyException(reason\u003dmsg)"},{"line_number":2260,"context_line":""},{"line_number":2261,"context_line":"    def _check_is_share_size_within_quota_limit(self, context, size):"},{"line_number":2262,"context_line":"        \"\"\"Raises an exception if share size above per share quota limit.\"\"\""},{"line_number":2263,"context_line":"        try:"},{"line_number":2264,"context_line":"            values \u003d {\u0027per_share_gigabytes\u0027: size}"}],"source_content_type":"text/x-python","patch_set":4,"id":"c450157d_2e0164b4","line":2261,"range":{"start_line":2261,"start_character":8,"end_line":2261,"end_character":47},"in_reply_to":"99ae1479_c3b5f4fa","updated":"2022-08-29 07:35:44.000000000","message":"Done","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ee4a536ad0df25d5f2f651844109de018645abc2","unresolved":true,"context_lines":[{"line_number":2269,"context_line":"            raise exception.ShareSizeExceedsLimit("},{"line_number":2270,"context_line":"                size\u003dsize, limit\u003dquotas[\u0027per_share_gigabytes\u0027])"},{"line_number":2271,"context_line":""},{"line_number":2272,"context_line":"    def _check_is_share_extend_size_within_quota_limit(self, context, size):"},{"line_number":2273,"context_line":"        \"\"\"Raises an exception if share extend size above quota limit.\"\"\""},{"line_number":2274,"context_line":"        try:"},{"line_number":2275,"context_line":"            values \u003d {\u0027per_share_extend_gigabytes\u0027: size}"}],"source_content_type":"text/x-python","patch_set":4,"id":"49a206f3_c96d7613","line":2272,"range":{"start_line":2272,"start_character":8,"end_line":2272,"end_character":54},"updated":"2022-08-29 02:15:28.000000000","message":"how about\ndef _check_is_share_size_within_per_share_extend_quota_limit()\n?","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7a875494059784ccfcf5769ede34bba21491b916","unresolved":false,"context_lines":[{"line_number":2269,"context_line":"            raise exception.ShareSizeExceedsLimit("},{"line_number":2270,"context_line":"                size\u003dsize, limit\u003dquotas[\u0027per_share_gigabytes\u0027])"},{"line_number":2271,"context_line":""},{"line_number":2272,"context_line":"    def _check_is_share_extend_size_within_quota_limit(self, context, size):"},{"line_number":2273,"context_line":"        \"\"\"Raises an exception if share extend size above quota limit.\"\"\""},{"line_number":2274,"context_line":"        try:"},{"line_number":2275,"context_line":"            values \u003d {\u0027per_share_extend_gigabytes\u0027: size}"}],"source_content_type":"text/x-python","patch_set":4,"id":"089ecc34_2c12bb2e","line":2272,"range":{"start_line":2272,"start_character":8,"end_line":2272,"end_character":54},"in_reply_to":"49a206f3_c96d7613","updated":"2022-08-29 07:35:44.000000000","message":"Done","commit_id":"af98f4776707491cf0b4c1b9157d633adf8cf14f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d5a88c5ab351f0411bf4187ca7a39db56964c7ac","unresolved":true,"context_lines":[{"line_number":2331,"context_line":"            share_type \u003d None"},{"line_number":2332,"context_line":"        share_types.provision_filter_on_size(context, share_type, new_size)"},{"line_number":2333,"context_line":""},{"line_number":2334,"context_line":"        if context.is_admin:"},{"line_number":2335,"context_line":"            self._check_is_share_size_within_per_share_extend_quota_limit("},{"line_number":2336,"context_line":"                context, new_size)"},{"line_number":2337,"context_line":"        else:"},{"line_number":2338,"context_line":"            self._check_is_share_size_within_per_share_quota_limit("},{"line_number":2339,"context_line":"                context, new_size)"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":"        replicas \u003d self.db.share_replicas_get_all_by_share("},{"line_number":2342,"context_line":"            context, share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"762678ee_b8cbf4d3","line":2339,"range":{"start_line":2334,"start_character":0,"end_line":2339,"end_character":34},"updated":"2022-08-29 23:45:21.000000000","message":"I\u0027m confused; we have a new limit, but the limit is only enforced for administrators? What is the use case here?","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"17c842f00b1687f19c8aa0698cfeb2faf907a271","unresolved":true,"context_lines":[{"line_number":2331,"context_line":"            share_type \u003d None"},{"line_number":2332,"context_line":"        share_types.provision_filter_on_size(context, share_type, new_size)"},{"line_number":2333,"context_line":""},{"line_number":2334,"context_line":"        if context.is_admin:"},{"line_number":2335,"context_line":"            self._check_is_share_size_within_per_share_extend_quota_limit("},{"line_number":2336,"context_line":"                context, new_size)"},{"line_number":2337,"context_line":"        else:"},{"line_number":2338,"context_line":"            self._check_is_share_size_within_per_share_quota_limit("},{"line_number":2339,"context_line":"                context, new_size)"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":"        replicas \u003d self.db.share_replicas_get_all_by_share("},{"line_number":2342,"context_line":"            context, share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"e4c0eed0_1000ac14","line":2339,"range":{"start_line":2334,"start_character":0,"end_line":2339,"end_character":34},"in_reply_to":"3dff91f5_bd7f4a0b","updated":"2022-08-30 02:27:45.000000000","message":"Agree with Goutham. This proposed admin only extend quota increases the complexity of quota system. I cannot understand the use case, it seems that a simple force flag to allow admin extend beyond quota value could be enough.","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ac8923d0f2b165c1e01b6984d6d1f334ee0a6613","unresolved":true,"context_lines":[{"line_number":2331,"context_line":"            share_type \u003d None"},{"line_number":2332,"context_line":"        share_types.provision_filter_on_size(context, share_type, new_size)"},{"line_number":2333,"context_line":""},{"line_number":2334,"context_line":"        if context.is_admin:"},{"line_number":2335,"context_line":"            self._check_is_share_size_within_per_share_extend_quota_limit("},{"line_number":2336,"context_line":"                context, new_size)"},{"line_number":2337,"context_line":"        else:"},{"line_number":2338,"context_line":"            self._check_is_share_size_within_per_share_quota_limit("},{"line_number":2339,"context_line":"                context, new_size)"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":"        replicas \u003d self.db.share_replicas_get_all_by_share("},{"line_number":2342,"context_line":"            context, share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3dff91f5_bd7f4a0b","line":2339,"range":{"start_line":2334,"start_character":0,"end_line":2339,"end_character":34},"in_reply_to":"762678ee_b8cbf4d3","updated":"2022-08-29 23:50:14.000000000","message":"I see your discussion with Haixin; your use case seems to be that admins must have a different quota for share extensions than normal users... that seems fine; but, will you really benefit from this double gating?\n\nI mean, if you\u0027re an administrator, you could be allowed to use the \"force\" flag during share extension, and we could stop enforcing the per_share_gigabytes quota on that share during extension. Wouldn\u0027t that solve your use case? Is there a need to restrict the max size for administrators as well?\n\nAlso, If we have to do this, i would discourage the use of \"context.is_admin\". It would be better to introduce a new RBAC policy for this action - you can default that to the project administrator persona - but, you must provide a chance for deployers to be able to override this behavior in a granular fashion.","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"95180dd730cd47c7c954f2cfb10b7236b2c7f33b","unresolved":true,"context_lines":[{"line_number":2331,"context_line":"            share_type \u003d None"},{"line_number":2332,"context_line":"        share_types.provision_filter_on_size(context, share_type, new_size)"},{"line_number":2333,"context_line":""},{"line_number":2334,"context_line":"        if context.is_admin:"},{"line_number":2335,"context_line":"            self._check_is_share_size_within_per_share_extend_quota_limit("},{"line_number":2336,"context_line":"                context, new_size)"},{"line_number":2337,"context_line":"        else:"},{"line_number":2338,"context_line":"            self._check_is_share_size_within_per_share_quota_limit("},{"line_number":2339,"context_line":"                context, new_size)"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":"        replicas \u003d self.db.share_replicas_get_all_by_share("},{"line_number":2342,"context_line":"            context, share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"f5fd2193_79b103c4","line":2339,"range":{"start_line":2334,"start_character":0,"end_line":2339,"end_character":34},"in_reply_to":"e4c0eed0_1000ac14","updated":"2022-08-30 03:08:19.000000000","message":"Let me guess at the usage scenario described here。\n1：The backend storage still has enough capacity\n2：an share size is 5G, and per_share_gigabytes is 6G.\nthen admin user want to extend size from 5G to 7G.(no admin user not allowed)\nif admin use force flag will still failed to extend.(because 7G \u003e 6G)\nThe force flag only circumvents the restriction of  reserved_share_extend_percentage in scheduling layer.\nand not go through secheduler.\n\nThe purpose of this configuration is to give the administrator a privileged configuration to expand capacity in this case,\n\nAlternatively, skip the check_is_share_size_within_per_share_quota_limit check if the administrator extend share.","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"87793f061f44ecaecd5ece73a377038e2ff7af12","unresolved":false,"context_lines":[{"line_number":2331,"context_line":"            share_type \u003d None"},{"line_number":2332,"context_line":"        share_types.provision_filter_on_size(context, share_type, new_size)"},{"line_number":2333,"context_line":""},{"line_number":2334,"context_line":"        if context.is_admin:"},{"line_number":2335,"context_line":"            self._check_is_share_size_within_per_share_extend_quota_limit("},{"line_number":2336,"context_line":"                context, new_size)"},{"line_number":2337,"context_line":"        else:"},{"line_number":2338,"context_line":"            self._check_is_share_size_within_per_share_quota_limit("},{"line_number":2339,"context_line":"                context, new_size)"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":"        replicas \u003d self.db.share_replicas_get_all_by_share("},{"line_number":2342,"context_line":"            context, share[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"57433464_6b5551b0","line":2339,"range":{"start_line":2334,"start_character":0,"end_line":2339,"end_character":34},"in_reply_to":"f5fd2193_79b103c4","updated":"2022-09-05 14:14:17.000000000","message":"yes, the use case is to allow extend to admin(either system admin or project admin) beyond per share quota (which is applicable for non-admin user). Force flag control scheduler behaviour and can not be used in this case. I will add new RBAC or proably use RBAC from https://review.opendev.org/c/openstack/manila/+/824726.","commit_id":"492b02df4e1f119c9ca7905bfb27c69b73f20446"}]}
