)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":9,"context_line":"New object qos_type along-with its specs will be used to define"},{"line_number":10,"context_line":"Quality of Service that driver can implement on Manila resource e.g."},{"line_number":11,"context_line":"share. The driver must report capability `qos_type_support` and"},{"line_number":12,"context_line":"share-type extra-spec nameed `default_qos_type` must have valid"},{"line_number":13,"context_line":"qos_type name as its value."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement: blueprint qos-types"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3c92bc94_3078808c","line":12,"range":{"start_line":12,"start_character":22,"end_line":12,"end_character":28},"updated":"2025-12-11 00:00:32.000000000","message":"typo","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"New object qos_type along-with its specs will be used to define"},{"line_number":10,"context_line":"Quality of Service that driver can implement on Manila resource e.g."},{"line_number":11,"context_line":"share. The driver must report capability `qos_type_support` and"},{"line_number":12,"context_line":"share-type extra-spec nameed `default_qos_type` must have valid"},{"line_number":13,"context_line":"qos_type name as its value."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Implement: blueprint qos-types"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fd5eb4d9_25dae032","line":12,"range":{"start_line":12,"start_character":22,"end_line":12,"end_character":28},"in_reply_to":"3c92bc94_3078808c","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3cdfba2c_ac8ec870","updated":"2025-10-13 08:42:31.000000000","message":"Provided my comments.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"15c292d9_c6547de8","updated":"2025-11-10 19:22:51.000000000","message":"Thanks for working on this spec, Kiran. Please take a look at the comments/questions inline","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9b356d81a78229899e4b95739fe238d95e4c9e1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cc1013a4_1a993fa3","updated":"2025-11-14 10:25:51.000000000","message":"Updated spec\n- removed associate/disassociate\n- The qos_type name should be unique and backend driver should define name of policy from combination of qos type name and vserver name.\n- The admin only create/update/delete on qos type.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"71ac8e93_de42fc73","updated":"2025-11-21 00:15:43.000000000","message":"Thanks for working on this Kiran, please see comments inline","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"08ac683e_3185a862","updated":"2025-11-21 21:43:57.000000000","message":"Thanks for the updates Kiran, some comments inline. If you\u0027d like we can go back and forth on the comments before you resolve/address them.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4dd7bd430acd255d723db51da3f31a2c9edcb82d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bde1199f_28a6df8e","updated":"2025-11-26 12:37:45.000000000","message":"updated. created_at/delted_at/updated_at are removed from all tables since its not mentioned on any spec and those fields are by-default gets added in each table.","commit_id":"7ced23d7ca1c621afa1540e7a15fe0dcea504681"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"cfd2a14480171ea1025a8e5f6556cc013e74d130","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6befdd4d_cc210e3e","updated":"2025-12-04 16:49:08.000000000","message":"If share_type extra_specs contain mention of fixed qos policy and qos_type mentioned in share_type extra_specs default_qos_type also refer to fixed qos policy, this will be invalid combination. The driver should raise exception during share create in such case. Since share type and qos type are ADMIN only APIs, it is expected to have valid configuration deployed.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f39426ed0f3ba4a3456fff069297bf84a4486473","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"49c86736_441b4ab0","updated":"2025-12-08 16:29:10.000000000","message":"LGTM","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"055695a8_dede77b1","updated":"2025-12-11 00:00:32.000000000","message":"Thanks for the changes, more comments inline","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1d5066c52989795f4f76688ce4e5b617b6571c0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6f6da5aa_ff8288be","updated":"2025-12-04 08:29:17.000000000","message":"share create request is removed. When share is created from particular share type and that share type has default_qos_type, that qos_type will be applied for share during creation. So no changes needed in share create request.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"bc5d9e2b2f37b1cd349680a1eb29a6092f0bf5a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0b91cae9_0dae6d27","updated":"2025-12-11 13:54:06.000000000","message":"LGTM","commit_id":"9c49b28d615bc0dd0be563bee5ff4641a9d51dae"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f82c5e1c78de098617ef178c0687d99629e7aeb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fce3ffcb_a51ba9fc","updated":"2025-12-11 09:45:45.000000000","message":"LGTM","commit_id":"9c49b28d615bc0dd0be563bee5ff4641a9d51dae"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9732cead2618e6b2191fe5b7b7c5733fb3e1f102","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0219c177_10418d7d","updated":"2025-12-11 13:53:09.000000000","message":"LGTM, thanks Kiran.","commit_id":"9c49b28d615bc0dd0be563bee5ff4641a9d51dae"}],"specs/gazpacho/qos_types.rst":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":true,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a878c60_8c317872","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":24},"updated":"2025-11-10 19:22:51.000000000","message":"nit: associate","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":true,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4aafb754_abd090bb","line":29,"range":{"start_line":29,"start_character":34,"end_line":29,"end_character":44},"updated":"2025-11-10 19:22:51.000000000","message":"share types","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5cbb73661fa5b97a07816df92c1e78b2cb70a718","unresolved":true,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1e780b67_54c96c2f","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":24},"in_reply_to":"1a878c60_8c317872","updated":"2025-11-12 16:29:25.000000000","message":"Acknowledged","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9b356d81a78229899e4b95739fe238d95e4c9e1e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a697eaca_9bd0bddc","line":29,"range":{"start_line":29,"start_character":14,"end_line":29,"end_character":24},"in_reply_to":"1e780b67_54c96c2f","updated":"2025-11-14 10:25:51.000000000","message":"Done","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5cbb73661fa5b97a07816df92c1e78b2cb70a718","unresolved":true,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5655d6ec_bbcc2fc0","line":29,"range":{"start_line":29,"start_character":34,"end_line":29,"end_character":44},"in_reply_to":"4aafb754_abd090bb","updated":"2025-11-12 16:29:25.000000000","message":"Acknowledged","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9b356d81a78229899e4b95739fe238d95e4c9e1e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple policies on share server and"},{"line_number":27,"context_line":"then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and associated them with share type. The qos_type represents a QoS"},{"line_number":30,"context_line":"policy and so multiple policies can be defined on share server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f676db2_98f76791","line":29,"range":{"start_line":29,"start_character":34,"end_line":29,"end_character":44},"in_reply_to":"5655d6ec_bbcc2fc0","updated":"2025-11-14 10:25:51.000000000","message":"Done","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Introduce a new top-level object: qos_type."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"1. qos_type contains an id, name, description, and a set of qos_specs"},{"line_number":52,"context_line":"   (key/value pairs)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"866e2b9f_dac20cd7","line":49,"updated":"2025-10-13 08:42:31.000000000","message":"How about other drivers? Will this be applicable to other drivers? Unless all other drivers have qos capabilities (some storage systems can have a different name applicable).","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ff7881a59d8271a419a8bb7dc9f42cbd0edcf58","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Introduce a new top-level object: qos_type."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"1. qos_type contains an id, name, description, and a set of qos_specs"},{"line_number":52,"context_line":"   (key/value pairs)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"79b3fd22_4ec6546a","line":49,"in_reply_to":"866e2b9f_dac20cd7","updated":"2025-11-06 11:37:37.000000000","message":"The qos_type will be new object in which any driver can add its own things and pass at the time of share and share server creation. Yes, we can have alternative name. Lets see what other says.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"2. qos_type can be associated with one or more share_type object."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"3. share_type object can reference multiple qos_type objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"4. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":59,"context_line":"   blocked if the qos_type is still associated with any share_type."}],"source_content_type":"text/x-rst","patch_set":2,"id":"f7b9576a_6fb2bd5c","line":56,"updated":"2025-10-13 08:42:31.000000000","message":"What does this line mean? Today there is a 1:1 mapping between shares and qos type. While creating the share, you can only attach one QoS Policy and not more than that.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ff7881a59d8271a419a8bb7dc9f42cbd0edcf58","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"2. qos_type can be associated with one or more share_type object."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"3. share_type object can reference multiple qos_type objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"4. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":59,"context_line":"   blocked if the qos_type is still associated with any share_type."}],"source_content_type":"text/x-rst","patch_set":2,"id":"6ef6c278_da9772c3","line":56,"in_reply_to":"f7b9576a_6fb2bd5c","updated":"2025-11-06 11:37:37.000000000","message":"share will have many QoS type and one QoS type can be associated with many shares.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":56,"context_line":"3. share_type object can reference multiple qos_type objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"4. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":59,"context_line":"   blocked if the qos_type is still associated with any share_type."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* qos_type APIs"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9494daee_5789705c","line":59,"updated":"2025-10-13 08:42:31.000000000","message":"So when a QoS is applied or attached to a share, there is no way we can modify the QoS type unless we unassociate the QoS from all the shares that use them? This limitation can be costly given that ONTAP today allows modifying the QoS policy even if its attached to Shares? May be we can allow but with a warning (force flag?)","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ff7881a59d8271a419a8bb7dc9f42cbd0edcf58","unresolved":false,"context_lines":[{"line_number":56,"context_line":"3. share_type object can reference multiple qos_type objects."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"4. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":59,"context_line":"   blocked if the qos_type is still associated with any share_type."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* qos_type APIs"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"47e36f2a_7c2370e0","line":59,"in_reply_to":"9494daee_5789705c","updated":"2025-11-06 11:37:37.000000000","message":"In the spec, its said so. But after discussion with NetApp, we should allow to add QoS type to given share type even after share is created. The new QoS and modified QoS will be applied only when share is created.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Modify share create API"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  In order to support of selecting either of QoS policy, manila share create"},{"line_number":69,"context_line":"  API will accept optional parameters i.e. ``qos_type``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Changes in backend driver"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"22fe00b4_1180c5db","line":69,"range":{"start_line":68,"start_character":2,"end_line":69,"end_character":56},"updated":"2025-11-10 19:22:51.000000000","message":"```suggestion\n  In order to allow users selecting the desired QoS policy, manila share\n  create API will accept an optional parameter named ``qos_type``.\n```","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5cbb73661fa5b97a07816df92c1e78b2cb70a718","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Modify share create API"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  In order to support of selecting either of QoS policy, manila share create"},{"line_number":69,"context_line":"  API will accept optional parameters i.e. ``qos_type``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Changes in backend driver"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"31797c9d_7aec1480","line":69,"range":{"start_line":68,"start_character":2,"end_line":69,"end_character":56},"in_reply_to":"22fe00b4_1180c5db","updated":"2025-11-12 16:29:25.000000000","message":"Acknowledged","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9b356d81a78229899e4b95739fe238d95e4c9e1e","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Modify share create API"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  In order to support of selecting either of QoS policy, manila share create"},{"line_number":69,"context_line":"  API will accept optional parameters i.e. ``qos_type``."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Changes in backend driver"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"75b78ce1_bb6e8eb4","line":69,"range":{"start_line":68,"start_character":2,"end_line":69,"end_character":56},"in_reply_to":"31797c9d_7aec1480","updated":"2025-11-14 10:25:51.000000000","message":"Done","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":74,"context_line":"  created has information of qos_types associated with its share_type. Backend"},{"line_number":75,"context_line":"  driver will create share server and also create all possible adaptive QoS"},{"line_number":76,"context_line":"  policies from qos_types on that share server. If qos_type option is being"},{"line_number":77,"context_line":"  provided in share create request, the QoS policy of that qos_type will be"},{"line_number":78,"context_line":"  applied on share."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df012969_5b2d0bbe","line":75,"updated":"2025-10-13 08:42:31.000000000","message":"Have we verified if QoS with same name will be allowed to be created across multiple SVMs? I think ONTAP restricts the creation of same named QoS policies once created. So we will need to have a naming strategy that allows this?","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c7ae749e3bbb515dd95f4a0e295c8011724399eb","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":74,"context_line":"  created has information of qos_types associated with its share_type. Backend"},{"line_number":75,"context_line":"  driver will create share server and also create all possible adaptive QoS"},{"line_number":76,"context_line":"  policies from qos_types on that share server. If qos_type option is being"},{"line_number":77,"context_line":"  provided in share create request, the QoS policy of that qos_type will be"},{"line_number":78,"context_line":"  applied on share."}],"source_content_type":"text/x-rst","patch_set":2,"id":"d9337134_5e74163f","line":75,"in_reply_to":"721129e4_80d622f3","updated":"2025-11-21 07:21:35.000000000","message":"The one with policy will be preferred \u003e\u003e I dont think not having a QoS policy should decide whether to use an SVM or not.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":74,"context_line":"  created has information of qos_types associated with its share_type. Backend"},{"line_number":75,"context_line":"  driver will create share server and also create all possible adaptive QoS"},{"line_number":76,"context_line":"  policies from qos_types on that share server. If qos_type option is being"},{"line_number":77,"context_line":"  provided in share create request, the QoS policy of that qos_type will be"},{"line_number":78,"context_line":"  applied on share."}],"source_content_type":"text/x-rst","patch_set":2,"id":"146448e9_1f01819b","line":75,"in_reply_to":"d9337134_5e74163f","updated":"2025-11-21 13:57:10.000000000","message":"removed this reference and mentioned generic decision that driver can take based on provided data.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5cbb73661fa5b97a07816df92c1e78b2cb70a718","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":74,"context_line":"  created has information of qos_types associated with its share_type. Backend"},{"line_number":75,"context_line":"  driver will create share server and also create all possible adaptive QoS"},{"line_number":76,"context_line":"  policies from qos_types on that share server. If qos_type option is being"},{"line_number":77,"context_line":"  provided in share create request, the QoS policy of that qos_type will be"},{"line_number":78,"context_line":"  applied on share."}],"source_content_type":"text/x-rst","patch_set":2,"id":"721129e4_80d622f3","line":75,"in_reply_to":"db30a4de_565d5d5f","updated":"2025-11-12 16:29:25.000000000","message":"yes, ONTAP does not allow to create QoS of same name across SVMs within cluster. May be QoS with name \"standard\" passed to backend driver and then backend driver will create adaptive QoS as \"standard_\u003cvserver-name\u003e\". \n\nWhen manila ask for compatiable share server, netapp driver after checking all existing compatibility parameters, additionally will check if \"standard_\u003cvserver-name\u003e\" policy exist on that vserver ? The one with policy will be preferred and none exist then vserver decided on other params will be returned to manila core. \n\n@anoop.shukla@netapp.com @ces.eduardo98@gmail.com \nwdyt ?","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":74,"context_line":"  created has information of qos_types associated with its share_type. Backend"},{"line_number":75,"context_line":"  driver will create share server and also create all possible adaptive QoS"},{"line_number":76,"context_line":"  policies from qos_types on that share server. If qos_type option is being"},{"line_number":77,"context_line":"  provided in share create request, the QoS policy of that qos_type will be"},{"line_number":78,"context_line":"  applied on share."}],"source_content_type":"text/x-rst","patch_set":2,"id":"db30a4de_565d5d5f","line":75,"in_reply_to":"df012969_5b2d0bbe","updated":"2025-11-10 19:22:51.000000000","message":"++","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":81,"context_line":"Alternatives"},{"line_number":82,"context_line":"------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"1. Continue using extra_specs: leads to duplication and inconsistency."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."}],"source_content_type":"text/x-rst","patch_set":2,"id":"2af41e65_7ed184f3","line":84,"updated":"2025-10-13 08:42:31.000000000","message":"What is the issue of duplication and inconsistency and why can we not use extra_specs. We can introduce another extra_spec like QoS - adaptive_qos which can solve this problem. We can take name value pairs as part of adaptive_qos set of parameters and pass during share creation. If the QoS (adaptive/non-adaptive) does not exist, we can force create the QoS policy on the SVM configured (or new SVM for DHSS\u003dtrue).","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Alternatives"},{"line_number":82,"context_line":"------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"1. Continue using extra_specs: leads to duplication and inconsistency."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."}],"source_content_type":"text/x-rst","patch_set":2,"id":"e0500856_f4797f0b","line":84,"in_reply_to":"25ac5c5d_a07db8ee","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ff7881a59d8271a419a8bb7dc9f42cbd0edcf58","unresolved":true,"context_lines":[{"line_number":81,"context_line":"Alternatives"},{"line_number":82,"context_line":"------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"1. Continue using extra_specs: leads to duplication and inconsistency."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."}],"source_content_type":"text/x-rst","patch_set":2,"id":"25ac5c5d_a07db8ee","line":84,"in_reply_to":"2af41e65_7ed184f3","updated":"2025-11-06 11:37:37.000000000","message":"for extra_specs adding these many things is bad customer experience, I had mentioned during PTG. Lets see what other say","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c49ab90c4b8e45080184e0aa5c799ade76dac704","unresolved":true,"context_lines":[{"line_number":84,"context_line":"1. Continue using extra_specs: leads to duplication and inconsistency."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"34f2e3b2_7861a8cb","line":87,"updated":"2025-10-13 08:42:31.000000000","message":"This is also not clear to me. Manila extra spec reporting would provide you the qos extra spec that was used to create the share. Why can we not rely on that?","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5ff7881a59d8271a419a8bb7dc9f42cbd0edcf58","unresolved":false,"context_lines":[{"line_number":84,"context_line":"1. Continue using extra_specs: leads to duplication and inconsistency."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"92ae694b_ca5b7175","line":87,"in_reply_to":"34f2e3b2_7861a8cb","updated":"2025-11-06 11:37:37.000000000","message":"Discussed in call with Netapp.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"4b3034477164643b96ef92da7198265577ddb985","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"},{"line_number":91,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b564dc51_97310fae","line":88,"updated":"2025-11-10 19:22:51.000000000","message":"We\u0027ve also asked something similar in the PTG: have you considered having the QoS type not linked to the share type, but instead it would be linked to shares/share servers?","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"},{"line_number":91,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5d506163_d57e4b86","line":88,"in_reply_to":"36fb51c1_7d75cfdd","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5cbb73661fa5b97a07816df92c1e78b2cb70a718","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"2. Driver-only enforcement: lacks visibility at API and DB layers,"},{"line_number":87,"context_line":"   inconsistent across backends."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"},{"line_number":91,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"36fb51c1_7d75cfdd","line":88,"in_reply_to":"b564dc51_97310fae","updated":"2025-11-12 16:29:25.000000000","message":"I think we can change the spec as below.\n1. No need to associate share type with QoS type. QoS type will be independent entity. Admin can create/delete/update/list while non-admin can only list it.\n2. While creating share, end user pass qos_type (either name or UUID). After validation of qos_type, it will be passed to backend driver. If SVM does not have qos_type( and so adaptive qos_policy), driver will create it on SVM and apply to volume. Else (i.e. SVM have qos_type), driver will apply to volume.\n\nThis design looks bit easier assuming admin have control of creating qos_type and he/she wont create many qos_type unnecessarily. Both association/dis-association with share-type or share or share-server will not be needed.\nAs per NetApp, if qos_type is create on SVM and applied to volume1, if qos_type is updated and applied during volume2, it will be automatically be applied on volume1 as well.","commit_id":"8317eb75415383904a05ef92244895284852fe27"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/qos-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposes adding new object represeting quality of service(QoS)"},{"line_number":14,"context_line":"types. The QoS types will be associated with share type."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"22abc59b_1d228390","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":53},"updated":"2025-11-21 00:15:43.000000000","message":"representing","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/qos-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposes adding new object represeting quality of service(QoS)"},{"line_number":14,"context_line":"types. The QoS types will be associated with share type."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"d46fef5f_dc17b1ad","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":53},"in_reply_to":"22abc59b_1d228390","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"}],"source_content_type":"text/x-rst","patch_set":3,"id":"77e6d975_7f8c344c","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":45},"updated":"2025-11-21 00:15:43.000000000","message":"parameters","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b7334b7c_ed371573","line":21,"range":{"start_line":21,"start_character":60,"end_line":21,"end_character":69},"updated":"2025-11-21 00:15:43.000000000","message":"same","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa7e8791_69042658","line":21,"range":{"start_line":21,"start_character":35,"end_line":21,"end_character":45},"in_reply_to":"77e6d975_7f8c344c","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8ce6941d_2fb9e173","line":21,"range":{"start_line":21,"start_character":60,"end_line":21,"end_character":69},"in_reply_to":"b7334b7c_ed371573","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"90227b3f19f8144ce2bd78451d2bce9c83062727","unresolved":true,"context_lines":[{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"},{"line_number":25,"context_line":"single fixed QoS policy for share server. However backend driver also supports"},{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple adaptive QoS policies on share"},{"line_number":27,"context_line":"server and then share can choose either of QoS policy."}],"source_content_type":"text/x-rst","patch_set":3,"id":"40a51ddc_b6b3dc85","line":24,"updated":"2025-11-20 18:15:21.000000000","message":"I assume this feature is applicable only when driver_handles_share_servers (dhss) is set to True. In this configuration, the driver is responsible for managing resources such as network connectivity and storage policies within the OpenStack context. If so, please add that condition.\n\nWhen dhss is set to False, the expectation is that policy creation and management occur outside of the OpenStack environment. In this mode, the user or administrator must configure policies directly on the backend system. Existing drivers typically provide mechanisms to specify such policies through share extra_specs.\n\nNetapp driver example(dhss\u003dfalse): Refer \u0027netapp:adaptive_qos_policy_group\u0027 extraspec\nhttps://netapp-openstack-dev.github.io/openstack-docs/draft/manila/deployment_choice/section_creating_service_catalog.html\n\nIf this is applicable for dhss\u003dfalse case, this will result as conflict and brings backward compatibility issues.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":21,"context_line":"operator to define certain quality paramaters on share. The paramters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"},{"line_number":25,"context_line":"single fixed QoS policy for share server. However backend driver also supports"},{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple adaptive QoS policies on share"},{"line_number":27,"context_line":"server and then share can choose either of QoS policy."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7be11748_a96a0585","line":24,"in_reply_to":"40a51ddc_b6b3dc85","updated":"2025-11-21 13:57:10.000000000","message":"Yes, lets keep this valid for dhss\u003dtrue only.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"},{"line_number":25,"context_line":"single fixed QoS policy for share server. However backend driver also supports"},{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple adaptive QoS policies on share"},{"line_number":27,"context_line":"server and then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"}],"source_content_type":"text/x-rst","patch_set":3,"id":"aa36cf58_da8dbf94","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":20},"updated":"2025-11-21 00:15:43.000000000","message":"Agree with Kumar\u0027s comment above regarding differentiating DHSS\u003dFalse and DHSS\u003dTrue; and how this affects either driver mode and also how/if drivers should support both methods when we implement this: QoS types and existing qos specific share type extra specs.\n\n\nIn extension to that, why are we singling out a specific driver here? I understand that\u0027s what you use, but, since you\u0027re designing the manila API and core changes, you\u0027ll need to design generically enough to capture all share drivers. We have two classes of drivers: DHSS\u003dTrue and DHSS\u003dFalse - i guess if you could rewrite this specification with that classification in mind, it will identify what needs to be done without focussing on a specific vendor driver.\n\nFinally, what is \"adaptive QoS\". Please define this, From my reading, I think the problem isn\u0027t with adaptive QoS - it is with an overwhelming amount of QoS knobs that are possible.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c7ae749e3bbb515dd95f4a0e295c8011724399eb","unresolved":true,"context_lines":[{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"},{"line_number":25,"context_line":"single fixed QoS policy for share server. However backend driver also supports"},{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple adaptive QoS policies on share"},{"line_number":27,"context_line":"server and then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d33ca474_1e3b39ac","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":20},"in_reply_to":"aa36cf58_da8dbf94","updated":"2025-11-21 07:21:35.000000000","message":"Agreed that the problem is to pre-define what QoS policies or tiers of performance storage is supposed to configure while configuring the share server. IMO, for DHSS\u003dfalse you can still use the extraspec way to provision shares.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. For NetApp ONTAP driver, this works well for defining"},{"line_number":25,"context_line":"single fixed QoS policy for share server. However backend driver also supports"},{"line_number":26,"context_line":"adaptive QoS feature. Admin can define multiple adaptive QoS policies on share"},{"line_number":27,"context_line":"server and then share can choose either of QoS policy."},{"line_number":28,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":29,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8703b018_a0f8f978","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":20},"in_reply_to":"d33ca474_1e3b39ac","updated":"2025-11-21 13:57:10.000000000","message":"kept specific to dhss\u003dtrue, removed reference of netapp and adaptive Qos from problem definition to keep it generic","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Operators want to define reusable QoS profiles (e.g. \"Gold-QoS\","},{"line_number":37,"context_line":"   \"Silver-QoS\") and convert them on adaptive QoS policies."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"2. Tenants need visibility into the QoS characteristics of a share type before"},{"line_number":40,"context_line":"   provisioning a share."}],"source_content_type":"text/x-rst","patch_set":3,"id":"34aae4ce_1fb69b88","line":37,"range":{"start_line":37,"start_character":21,"end_line":37,"end_character":59},"updated":"2025-11-21 00:15:43.000000000","message":"This statement doesn\u0027t make sense to someone that\u0027s not familiar with \"adaptive\" qos","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Operators want to define reusable QoS profiles (e.g. \"Gold-QoS\","},{"line_number":37,"context_line":"   \"Silver-QoS\") and convert them on adaptive QoS policies."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"2. Tenants need visibility into the QoS characteristics of a share type before"},{"line_number":40,"context_line":"   provisioning a share."}],"source_content_type":"text/x-rst","patch_set":3,"id":"8ba28914_5fcc7a21","line":37,"range":{"start_line":37,"start_character":21,"end_line":37,"end_character":59},"in_reply_to":"34aae4ce_1fb69b88","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Operators want to define reusable QoS profiles (e.g. \"Gold-QoS\","},{"line_number":37,"context_line":"   \"Silver-QoS\") and convert them on adaptive QoS policies."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"2. Tenants need visibility into the QoS characteristics of a share type before"},{"line_number":40,"context_line":"   provisioning a share."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. Drivers can implement enforcement of QoS policies by consuming QoS"},{"line_number":43,"context_line":"   key/value pairs used to define QoS type."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3c9a2062_af3e74c5","line":40,"range":{"start_line":39,"start_character":3,"end_line":40,"end_character":24},"updated":"2025-11-21 00:15:43.000000000","message":"In alternatives, explain that this is achieved today through share type descriptions that an administrator puts in","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":36,"context_line":"1. Operators want to define reusable QoS profiles (e.g. \"Gold-QoS\","},{"line_number":37,"context_line":"   \"Silver-QoS\") and convert them on adaptive QoS policies."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"2. Tenants need visibility into the QoS characteristics of a share type before"},{"line_number":40,"context_line":"   provisioning a share."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"3. Drivers can implement enforcement of QoS policies by consuming QoS"},{"line_number":43,"context_line":"   key/value pairs used to define QoS type."}],"source_content_type":"text/x-rst","patch_set":3,"id":"af764a2f_3114c2db","line":40,"range":{"start_line":39,"start_character":3,"end_line":40,"end_character":24},"in_reply_to":"3c9a2062_af3e74c5","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":55,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":58,"context_line":"   allowed to admin. All non-admin users can only list them."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* qos_type APIs"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"efa699f2_3ac9ca2d","line":58,"range":{"start_line":58,"start_character":19,"end_line":58,"end_character":20},"updated":"2025-11-21 00:15:43.000000000","message":"\"by the virtue of default RBAC policies.\"","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":58,"context_line":"   allowed to admin. All non-admin users can only list them."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* qos_type APIs"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"e6057452_10410754","line":58,"range":{"start_line":58,"start_character":19,"end_line":58,"end_character":20},"in_reply_to":"efa699f2_3ac9ca2d","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":64,"context_line":"* Modify share create API"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":67,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":68,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":69,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":70,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":71,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":3,"id":"45866a6a_f3485bb8","line":70,"range":{"start_line":67,"start_character":67,"end_line":70,"end_character":26},"updated":"2025-11-21 00:15:43.000000000","message":"Should this raise an error? Wouldn\u0027t this mean that the user doesn\u0027t _want_ qos?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* Modify share create API"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":67,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":68,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":69,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":70,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":71,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":3,"id":"85770864_ca586d8e","line":70,"range":{"start_line":67,"start_character":67,"end_line":70,"end_character":26},"in_reply_to":"45866a6a_f3485bb8","updated":"2025-11-21 13:57:10.000000000","message":"If user does not want qos, he/she can use different share-type. If share-type has qos defined and user is using share-type the qos must be from list defined in share-type extra-spec called \u0027qos_types\u0027. So yes, in this scenario there should be error.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"90227b3f19f8144ce2bd78451d2bce9c83062727","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"453ec374_54a25d6c","line":77,"updated":"2025-11-20 18:15:21.000000000","message":"NetApp ONTAP storage supports two types of QoS(Fixed/Adaptive). Would be same for other driver platforms as well as it is generic storage SLA concept.\n\nIs this qos-type feature is exclusive for adaptive QoS policy only?\n\n\nIf it supports both can we add a property to specify the policy_type: fixed/adaptive? Reason is the properties for both types will be different in ONTAP and might be same for other storage vendors also, this also helps in validation and fail fast checks.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ce5ec4ac_0496568f","line":77,"in_reply_to":"453ec374_54a25d6c","updated":"2025-11-21 13:57:10.000000000","message":"We need this for adaptive QoS only. But we can make it for fixed as well.\nin this case qos_type will define name and description only. the qos_type_specs will define policy_type as fixed/adaptive and remaining qos_type_specs of that qos_type must have necessary fields to justify that policy. I will target adaptive in implementation, the backend driver can then be enhanced to support fixed as well","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"720648b781ac299c198178b4a5478917b23a7b0d","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"53f19166_e26b73fb","line":77,"in_reply_to":"7651dfee_0686b75f","updated":"2025-11-21 16:28:04.000000000","message":"yes, correct, if policy_type is mentioned as \"fixed\", we need to replace expected_iops/peak_iops and other specs with parameters needed for fixed policy.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"ff02d9a1681adc7cb7f591c93aec2a98a370ecb1","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7651dfee_0686b75f","line":77,"in_reply_to":"ce5ec4ac_0496568f","updated":"2025-11-21 15:40:33.000000000","message":"@kiranpawarpict2010@gmail.com Just to be on same page, you are suggesting that driver can enforce policy_type as below:\n\n{\n        \"qos_type\": {\n            \"name\": \"Gold-QoS\",\n            \"description\": \"High-performance storage QoS\",\n            \"specs\": {\n                \"policy_type\": \"adaptive\", //other value: \"fixed\"\n                \"expected_iops\": \"500\",\n                \"peak_iops\": \"5000\",\n                \"peak_iops_allocation\": \"used-space\",\n            }\n        }\n    }\n\nThis works for NetApp driver.\nLet me know if my understanding is not correct. Otherwise, please mark this as Resolved.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":73,"context_line":"* Changes in backend driver"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9b0b3b25_7687fea8","line":78,"range":{"start_line":76,"start_character":43,"end_line":78,"end_character":36},"updated":"2025-11-21 00:15:43.000000000","message":"This workflow is something you imagine back end drivers doing based NetApp ONTAP. However, not all back end drivers may choose this behavior. I see several pitfalls:\n\n1) if a driver needs to create qos types during share server provisioning, what happens when it sees a _new_ qos type? Can it re-use an existing share server and create a new qos policy on the back end? or, do we expect the qos types to be static once created, and hence drivers need to disqualify existing share servers and provision a new one alongsid creating a new qos policy?\n\n2) you are allowing manipulation of qos types; how does it affect existing shares or existing share servers? Are these like extra spec modifications, where, we don\u0027t manipulate any existing shares? In this case, specifically, we copy tenant visible capability specs onto the share model to show exactly what capabilities existed when the share was provisioned.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":73,"context_line":"* Changes in backend driver"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  During creation of share server, the share on which share server is being"},{"line_number":76,"context_line":"  created has information of ``qos_type``. Backend driver will create share"},{"line_number":77,"context_line":"  server and also create adaptive QoS policy from ``qos_type`` on that share"},{"line_number":78,"context_line":"  server if its not already created. The adaptive QoS policy is then applied"},{"line_number":79,"context_line":"  on share."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"0d7788b1_43958b78","line":78,"range":{"start_line":76,"start_character":43,"end_line":78,"end_character":36},"in_reply_to":"9b0b3b25_7687fea8","updated":"2025-11-21 13:57:10.000000000","message":"yes, netapp allows to modify share-server qos policy even though shares are provisioned on it. Each driver can have their own implementation. the modification of qos_type will not replicate on existing shares provisioned on share-server with that qos-type unless new share is created on same share server. So if old is created with expected_iops\u003d100, and then admin modifiy this value to 200. The shares on share-server will keep using 100. When new share provisioned on same share-server, the policy will be updated. the modification then takes place on old as well as new shares, that is how netapp driver supports. \nI have updated the backend information as driver will get this information and then they will apply on resources.\n\n1/2. I had them static earlier but since backend allow modification, I removed static and let admin update specs. But the updated specs will only reflect when the share-server on which earlier policy created is picked for share-creation. Once the policy is applied on that share-server, it will be applicable for old as well as new shares.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d20b1dea_3e522cce","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"updated":"2025-11-21 00:15:43.000000000","message":"too short","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d3a0885f77b8c9e428c1b311002c89afe598f492","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"49ce1db1_96d06937","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"177e5b60_31c3550d","updated":"2025-11-21 22:46:03.000000000","message":"Unique naming shouldn\u0027t be a concern too, because the current design has QoS names as unique for a Manila deployment. So, unless a QoS type is created and then deleted, another QoS type cannot take its name. \n\nWith DHSS\u003dTrue, a back end storage system MUST NOT be shared with another provisioner (i.e., another OpenStack Manila service, or similar provisioner). Doing so is dangerous because the driver assumes a ton of control and requires the exclusivity. So, if QoS types are unique per Manila, they\u0027ll automatically be unique in a storage system too.. \n\nThe problem of uniqueness may be hard to solve if say:\n\n1) Admin creates a QoS Type called \"GoldQoS\", and it is then used to create shares\n2) \"GoldQoS\" is now created on the back end as a policy (if you use the same name) \n3) Admin deletes the shares, and subsequently the QoS type from Manila\n4) Backend still retains the QoS type \"GoldQoS\" because per the current design, Manila won\u0027t invoke the back end to delete a QoS type\n5) Admin comes back and re-creates a QoS type called \"GoldQoS\" with different specs. \n\nSo, that\u0027s going to be problematic\n\nA couple ways you can solve this:\n\na) On share deletion, if the backend detects that a QoS type is unused, it can delete it. This means that, if Manila uses it again, the backend will end up re-creating it.\n\nor\n\nb) Simply don\u0027t rely on the name Manila picks for QoS Types - always translate it, and store the translation _somewhere_ as suggested in my earlier comment. \n\nI\u0027d recommend doing (a) despite this problem, because you want to protect the back end too from gratuitous QoS type creations - i.e; someone will have to clean up unused QoS types from the back end out of band of Manila.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eff64698_9ab6d163","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"49ce1db1_96d06937","updated":"2025-11-24 13:22:54.000000000","message":"The QoS type/policy will be created on Share server and applied to share. If we delete the share server, policy will automatically be deleted. In the approach of deleting of share, Manila can check if its last share to be deleted, then delete the share and delete policy on share server. This matches with workflow where we will create policy on existing (or new) share server during share create.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"720648b781ac299c198178b4a5478917b23a7b0d","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"55c47455_f9d8254b","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"55c18999_89dd1c21","updated":"2025-11-21 16:28:04.000000000","message":"127-47 \u003d 80, so we can have qos_type at max 80 chars. So 48 is fine with me. \n@gouthampravi@gmail.com wdyt ?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"177e5b60_31c3550d","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"55c47455_f9d8254b","updated":"2025-11-21 21:43:57.000000000","message":"If ONTAP has such limitations, the driver can work around it with several approaches:\n\nThe driver has access to a private-storage database object that can be used to arbitrarily store any key\u003dvalue pairs of data, so it can be used to handle any translations necessary - or, you have a different approach - hash the name predictably to a character limit that you need in the driver. \n\nSVM naming was handled similarly by doing some wrangling of the share server\u0027s name field directly in the driver.\n\nAlternatively, if you don\u0027t want to use any of these approaches, the driver can create whatever unique name it needs and we could create a \"provider_name\" field in the qos types model, akin to \"provider_location\" in snapshots.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4dd7bd430acd255d723db51da3f31a2c9edcb82d","unresolved":false,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"186f9ef0_496d40fb","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"b350448f_414c9025","updated":"2025-11-26 12:37:45.000000000","message":"update - ** can be kept at 255.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f7c4c989_18c096dc","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"d20b1dea_3e522cce","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b350448f_414c9025","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"eff64698_9ab6d163","updated":"2025-11-26 10:50:51.000000000","message":"the unique name will be derived by backend driver, for API purpose qos_type name can be kept at 64. Since this is admin only, we hope admin would take decision to choose name fit within limit that we can use qos_type_name_XXXX where XXXX is value derived by backend driver.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"ff02d9a1681adc7cb7f591c93aec2a98a370ecb1","unresolved":true,"context_lines":[{"line_number":108,"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":109,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"55c18999_89dd1c21","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":40},"in_reply_to":"f7c4c989_18c096dc","updated":"2025-11-21 15:40:33.000000000","message":"Backends will have some char limits. 255 is too large. \n\nMax characters allowed by ONTAP for QoS policy name are 127. \nMax characters allowed by ONTAP for SVM name are 47.\n\nAs we agreed on possibility of creating multiple QoS policies with unique name in a ONTAP cluster(for multiple-SVMs). \nwe thought of using \"\u003cqos_type_name\u003e_\u003cvserver_name\u003e\" this will be tricky to manage now.\n\n@gouthampravi@gmail.com IMO, the description can help in providing more details of policy. Can we set the limit to 48 chars at max?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":115,"context_line":"  | created_at            | datetime      | YES  |     | NULL    |       |"},{"line_number":116,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"31a93df1_7e28e0e5","line":113,"range":{"start_line":113,"start_character":28,"end_line":113,"end_character":39},"updated":"2025-11-21 00:15:43.000000000","message":"too short","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":110,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":111,"context_line":"  | name                  | string(36)    |  No  |     | NULL    |       |"},{"line_number":112,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":113,"context_line":"  | description           | string(36)    | YES  |     | NULL    |       |"},{"line_number":114,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":115,"context_line":"  | created_at            | datetime      | YES  |     | NULL    |       |"},{"line_number":116,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c1801631_81fff52c","line":113,"range":{"start_line":113,"start_character":28,"end_line":113,"end_character":39},"in_reply_to":"31a93df1_7e28e0e5","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":129,"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":130,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":131,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":132,"context_line":"  | qos_type_id           | string(36)    | YES  |     | NULL    |       |"},{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"99f46108_179c16db","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":47},"updated":"2025-11-21 00:15:43.000000000","message":"?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":129,"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":130,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":131,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":132,"context_line":"  | qos_type_id           | string(36)    | YES  |     | NULL    |       |"},{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"63785306_4a71e3cd","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":47},"in_reply_to":"99f46108_179c16db","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":131,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":132,"context_line":"  | qos_type_id           | string(36)    | YES  |     | NULL    |       |"},{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":136,"context_line":"  | value                 | string(255)   | YES  |     | NULL    |       |"},{"line_number":137,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"06a7ba42_0dc97ed8","line":134,"range":{"start_line":134,"start_character":44,"end_line":134,"end_character":47},"updated":"2025-11-21 00:15:43.000000000","message":"NO","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":131,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":132,"context_line":"  | qos_type_id           | string(36)    | YES  |     | NULL    |       |"},{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":136,"context_line":"  | value                 | string(255)   | YES  |     | NULL    |       |"},{"line_number":137,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8d94ab13_8388d0e7","line":134,"range":{"start_line":134,"start_character":44,"end_line":134,"end_character":47},"in_reply_to":"06a7ba42_0dc97ed8","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":136,"context_line":"  | value                 | string(255)   | YES  |     | NULL    |       |"},{"line_number":137,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":138,"context_line":"  | created_at            | datetime      | YES  |     | NULL    |       |"},{"line_number":139,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a837af9_1023ea5e","line":136,"range":{"start_line":136,"start_character":44,"end_line":136,"end_character":47},"updated":"2025-11-21 00:15:43.000000000","message":"NO","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":133,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":134,"context_line":"  | key                   | string(255)   | YES  |     | NULL    |       |"},{"line_number":135,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":136,"context_line":"  | value                 | string(255)   | YES  |     | NULL    |       |"},{"line_number":137,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":138,"context_line":"  | created_at            | datetime      | YES  |     | NULL    |       |"},{"line_number":139,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"16d33c4c_2a1ae600","line":136,"range":{"start_line":136,"start_character":44,"end_line":136,"end_character":47},"in_reply_to":"5a837af9_1023ea5e","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":162,"context_line":"    openstack share qos type set \u003cqos_type_id\u003e [--description \u003cdesc\u003e]"},{"line_number":163,"context_line":"                                 [--spec \u003ckey\u003dvalue\u003e]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    openstack share qos type delete \u003cqos_type_id\u003e"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Add new parameters to commands in openstackclient(OSC):"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ca6716ed_b8329c3f","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":49},"updated":"2025-11-21 00:15:43.000000000","message":"What happens if you delete a QoS type that\u0027s:\n- Referenced by share types\n- In use by existing shares","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    openstack share qos type set \u003cqos_type_id\u003e [--description \u003cdesc\u003e]"},{"line_number":163,"context_line":"                                 [--spec \u003ckey\u003dvalue\u003e]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    openstack share qos type delete \u003cqos_type_id\u003e"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Add new parameters to commands in openstackclient(OSC):"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b5a20f46_cf8b4af6","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":49},"in_reply_to":"ca6716ed_b8329c3f","updated":"2025-11-21 13:57:10.000000000","message":"the reference from share-type is to have more control on which qos-type user can choose with particular share-type. However this API will definitely fail if in use by existing shares.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":".. code-block:: bash"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    openstack share create [--qos_type \u003cqos_type_id\u003e]"},{"line_number":173,"context_line":"                           \u003cshare_protocol\u003e \u003csize\u003e"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"* qos_type: UUID of QoS type associated with share type of a given share"}],"source_content_type":"text/x-rst","patch_set":3,"id":"34011a92_d9ddcb02","line":172,"range":{"start_line":172,"start_character":30,"end_line":172,"end_character":38},"updated":"2025-11-21 00:15:43.000000000","message":"qos-type","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":".. code-block:: bash"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    openstack share create [--qos_type \u003cqos_type_id\u003e]"},{"line_number":173,"context_line":"                           \u003cshare_protocol\u003e \u003csize\u003e"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"* qos_type: UUID of QoS type associated with share type of a given share"}],"source_content_type":"text/x-rst","patch_set":3,"id":"322d3b10_ead3fb4e","line":172,"range":{"start_line":172,"start_character":30,"end_line":172,"end_character":38},"in_reply_to":"34011a92_d9ddcb02","updated":"2025-11-21 13:57:10.000000000","message":"Done","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"** Create QoS Type**::"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"     POST /v2/qos-types"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The create request should not be processed if its non-admin user and"},{"line_number":186,"context_line":"the API will respond with ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f5bcb3c0_7c7fee9f","line":183,"range":{"start_line":183,"start_character":14,"end_line":183,"end_character":23},"updated":"2025-11-21 00:15:43.000000000","message":"pagination, filtering?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"** Create QoS Type**::"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"     POST /v2/qos-types"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The create request should not be processed if its non-admin user and"},{"line_number":186,"context_line":"the API will respond with ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3910dc43_dd8816b7","line":183,"range":{"start_line":183,"start_character":14,"end_line":183,"end_character":23},"in_reply_to":"8c185ddf_8bbdefe3","updated":"2025-11-26 10:50:51.000000000","message":"As discussed all resources should have pagination and so it should be added for index/detail API of qos_type as well.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"** Create QoS Type**::"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"     POST /v2/qos-types"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The create request should not be processed if its non-admin user and"},{"line_number":186,"context_line":"the API will respond with ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8c185ddf_8bbdefe3","line":183,"range":{"start_line":183,"start_character":14,"end_line":183,"end_character":23},"in_reply_to":"d73ae38a_7b07dfe5","updated":"2025-11-21 21:43:57.000000000","message":"When you have resource, you can\u0027t control how many resources will exist unless that resource is controlled through Quotas as well, and even if you have quotas, unless Manila enforces an unreasonable quota, it should be safe to assume there\u0027ll be a situation where you\u0027ll need to paginate your API. \n\nIt\u0027s super easy to add pagination support - there\u0027s common code that you can use in the API controllers and the database API layer, and we should do this for all \"index\" and \"detail\" APIs.. \n\nThe fact that pagination isn\u0027t supported for Share types is an opportunity to go improve that API. It\u0027s not a pattern to follow.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"** Create QoS Type**::"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"     POST /v2/qos-types"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The create request should not be processed if its non-admin user and"},{"line_number":186,"context_line":"the API will respond with ``403 Forbidden``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d73ae38a_7b07dfe5","line":183,"range":{"start_line":183,"start_character":14,"end_line":183,"end_character":23},"in_reply_to":"f5bcb3c0_7c7fee9f","updated":"2025-11-21 13:57:10.000000000","message":"Not needed, its resource where we dont have thousand of entries like share and share-server or replicas. I checked other resource like share-type where there no pagination used in list API.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":216,"context_line":"            \"updated_at\": null"},{"line_number":217,"context_line":"        }"},{"line_number":218,"context_line":"    }"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"be9c006e_66a80305","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":30},"updated":"2025-11-21 00:15:43.000000000","message":"Shouldn\u0027t this be the same as created_at?","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":216,"context_line":"            \"updated_at\": null"},{"line_number":217,"context_line":"        }"},{"line_number":218,"context_line":"    }"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"6b9ab962_7046a9ae","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":30},"in_reply_to":"be9c006e_66a80305","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":236,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":237,"context_line":"            },"},{"line_number":238,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":239,"context_line":"            \"updated_at\": null"},{"line_number":240,"context_line":"        }"},{"line_number":241,"context_line":"    }"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"70bec023_d1387274","line":239,"range":{"start_line":239,"start_character":26,"end_line":239,"end_character":30},"updated":"2025-11-21 00:15:43.000000000","message":"same","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":236,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":237,"context_line":"            },"},{"line_number":238,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":239,"context_line":"            \"updated_at\": null"},{"line_number":240,"context_line":"        }"},{"line_number":241,"context_line":"    }"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"c98866b2_13ff4614","line":239,"range":{"start_line":239,"start_character":26,"end_line":239,"end_character":30},"in_reply_to":"70bec023_d1387274","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                     \"peak_iops_allocation\": \"used-space\","},{"line_number":261,"context_line":"                },"},{"line_number":262,"context_line":"                \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":263,"context_line":"                \"updated_at\": null"},{"line_number":264,"context_line":"            }"},{"line_number":265,"context_line":"        ]"},{"line_number":266,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a39ffb11_5bb9ba17","line":263,"range":{"start_line":263,"start_character":30,"end_line":263,"end_character":34},"updated":"2025-11-21 00:15:43.000000000","message":"same","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                     \"peak_iops_allocation\": \"used-space\","},{"line_number":261,"context_line":"                },"},{"line_number":262,"context_line":"                \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":263,"context_line":"                \"updated_at\": null"},{"line_number":264,"context_line":"            }"},{"line_number":265,"context_line":"        ]"},{"line_number":266,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c7e62f86_7da4fd53","line":263,"range":{"start_line":263,"start_character":30,"end_line":263,"end_character":34},"in_reply_to":"a39ffb11_5bb9ba17","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":298,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":299,"context_line":"            },"},{"line_number":300,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":301,"context_line":"            \"updated_at\": null"},{"line_number":302,"context_line":"        }"},{"line_number":303,"context_line":"    }"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"e5a740b6_48c89df2","line":301,"range":{"start_line":301,"start_character":11,"end_line":301,"end_character":30},"updated":"2025-11-21 00:15:43.000000000","message":"updated_at still shows null after an update","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                \"peak_iops_allocation\": \"used-space\","},{"line_number":299,"context_line":"            },"},{"line_number":300,"context_line":"            \"created_at\": \"2025-09-04T10:00:00Z\","},{"line_number":301,"context_line":"            \"updated_at\": null"},{"line_number":302,"context_line":"        }"},{"line_number":303,"context_line":"    }"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"4cd17c6e_eb4cec45","line":301,"range":{"start_line":301,"start_character":11,"end_line":301,"end_character":30},"in_reply_to":"e5a740b6_48c89df2","updated":"2025-11-21 13:57:10.000000000","message":"Acknowledged","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"139b25c39e132d65e69beb0961bcc06ba3facbe5","unresolved":true,"context_lines":[{"line_number":319,"context_line":"Driver impact"},{"line_number":320,"context_line":"-------------"},{"line_number":321,"context_line":"The backend driver needs to implement:"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"* In context of NetApp ONTAP, the driver needs create adaptive qos policies"},{"line_number":324,"context_line":"  on share server from provide qos type name e.g. if qos type name is \"GOLD\","},{"line_number":325,"context_line":"  and selected share server by backend driver has name \"VSERVER1\", the"},{"line_number":326,"context_line":"  adaptive QoS policy named \"GOLD_VSERVER1\" can be created on that share"},{"line_number":327,"context_line":"  server since policy name is unique across cluster. Also once created, the"},{"line_number":328,"context_line":"  corresponding adaptive qos policy will be applied on share."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"70912e5a_039eb12f","line":328,"range":{"start_line":322,"start_character":0,"end_line":328,"end_character":61},"updated":"2025-11-21 00:15:43.000000000","message":"this is a backend specific detail that\u0027s inappropriate here; you can discuss it as an example in case there are limitations that you\u0027re building in accommodations for.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1dd73052a41e0110f9a818d6ef2a51295a531e05","unresolved":false,"context_lines":[{"line_number":319,"context_line":"Driver impact"},{"line_number":320,"context_line":"-------------"},{"line_number":321,"context_line":"The backend driver needs to implement:"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"* In context of NetApp ONTAP, the driver needs create adaptive qos policies"},{"line_number":324,"context_line":"  on share server from provide qos type name e.g. if qos type name is \"GOLD\","},{"line_number":325,"context_line":"  and selected share server by backend driver has name \"VSERVER1\", the"},{"line_number":326,"context_line":"  adaptive QoS policy named \"GOLD_VSERVER1\" can be created on that share"},{"line_number":327,"context_line":"  server since policy name is unique across cluster. Also once created, the"},{"line_number":328,"context_line":"  corresponding adaptive qos policy will be applied on share."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1e9e7095_1b5f268c","line":328,"range":{"start_line":322,"start_character":0,"end_line":328,"end_character":61},"in_reply_to":"70912e5a_039eb12f","updated":"2025-11-21 13:57:10.000000000","message":"removed.","commit_id":"c2bc6f25cf1cadac85760a2f70ee835f5c5ee02e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":21,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. Backend drivers supports DHSS\u003dTrue and DHSS\u003dFalse. The way"},{"line_number":25,"context_line":"of defining QoS by using share-type extra-specs works for DHSS\u003dFalse as the"},{"line_number":26,"context_line":"policy and resource management occur outside of the Openstack environment."},{"line_number":27,"context_line":"However for DHSS\u003dTrue, where resources and policies defined during run-time,"},{"line_number":28,"context_line":"share-type extra-specs is not the efficient way to define QoS on Manila"},{"line_number":29,"context_line":"resources due to reasons mentioned earlier."},{"line_number":30,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":31,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"},{"line_number":32,"context_line":"represents a QoS policy and so multiple policies can be defined on Manila"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fb1f8d3b_20ef02c2","line":29,"range":{"start_line":24,"start_character":20,"end_line":29,"end_character":43},"updated":"2025-11-21 21:43:57.000000000","message":"It\u0027s possible that you have a DHSS\u003dFalse driver that\u0027ll support QoS types too, why are we limiting that from the get go? Can you explain why we\u0027d consider this only for DHSS\u003dTrue?\n\nWhat if, in case of DHSS\u003dFalse, admin pre-creates the qos-types on the back end - how does an end user use them? I think the mechanism you\u0027re creating is usable by both driver modes. I don\u0027t see how you\u0027re associating with DHSS\u003dTrue only concepts like share networks, subnets, security services or share servers.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":21,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. Backend drivers supports DHSS\u003dTrue and DHSS\u003dFalse. The way"},{"line_number":25,"context_line":"of defining QoS by using share-type extra-specs works for DHSS\u003dFalse as the"},{"line_number":26,"context_line":"policy and resource management occur outside of the Openstack environment."},{"line_number":27,"context_line":"However for DHSS\u003dTrue, where resources and policies defined during run-time,"},{"line_number":28,"context_line":"share-type extra-specs is not the efficient way to define QoS on Manila"},{"line_number":29,"context_line":"resources due to reasons mentioned earlier."},{"line_number":30,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":31,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"},{"line_number":32,"context_line":"represents a QoS policy and so multiple policies can be defined on Manila"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f4e49ab1_c967a7f5","line":29,"range":{"start_line":24,"start_character":20,"end_line":29,"end_character":43},"in_reply_to":"f752bc7e_7b096027","updated":"2025-11-26 10:50:51.000000000","message":"It is decided to add new driver capability qos_type_control. The dhss\u003dtrue driver of ONTAP will report this as True and use qos_type while dhss\u003dfalse driver will report capability as False and use existing way of defining adaptive_qos_policy name in share_type extra-specs.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":21,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":22,"context_line":"are passed in share-type extra-specs. Operators must overload extra-specs to"},{"line_number":23,"context_line":"describe QoS, which creates duplication, lack of reuse, and poor visibility"},{"line_number":24,"context_line":"across share types. Backend drivers supports DHSS\u003dTrue and DHSS\u003dFalse. The way"},{"line_number":25,"context_line":"of defining QoS by using share-type extra-specs works for DHSS\u003dFalse as the"},{"line_number":26,"context_line":"policy and resource management occur outside of the Openstack environment."},{"line_number":27,"context_line":"However for DHSS\u003dTrue, where resources and policies defined during run-time,"},{"line_number":28,"context_line":"share-type extra-specs is not the efficient way to define QoS on Manila"},{"line_number":29,"context_line":"resources due to reasons mentioned earlier."},{"line_number":30,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":31,"context_line":"qos_types and optionally mention them in share type extra-specs. The qos_type"},{"line_number":32,"context_line":"represents a QoS policy and so multiple policies can be defined on Manila"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f752bc7e_7b096027","line":29,"range":{"start_line":24,"start_character":20,"end_line":29,"end_character":43},"in_reply_to":"fb1f8d3b_20ef02c2","updated":"2025-11-24 13:22:54.000000000","message":"Driver with dhss\u003dfalse can use qos type. But the primary use case is adaptive QoS policy and dhss\u003dfalse we create server, policy outside openstack control.\n\n\u003e in case of DHSS\u003dFalse, admin pre-creates the qos-types on the back end - how does an end user use them? \nThis support exist today, if share is creating from share-type and adaptive_qos_policy name exist in extra-spec, this will be applied on share since its predefined.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":56,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. A comma separated list of qos_type names can be specified in share type"},{"line_number":59,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":62,"context_line":"   allowed to admin by the virtue of default RBAC policies. All non-admin"}],"source_content_type":"text/x-rst","patch_set":4,"id":"13260fde_1357c0d8","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":34},"updated":"2025-11-21 21:43:57.000000000","message":"Looking at the share types model, the extra-specs are a maximum of 255 characters long. Elsewhere you\u0027ve mentioned that this field is a CSV of QoS type IDs.. this can be problematic because of a number of reasons\n\n1) You can have a maximum of 7 QoS types associated with a share type\n2) When accepting a CSV as input, there\u0027s some string wrangling and a good deal of validation to do as well - i.e., you need to validate that all UUIDs in the CSV are valid - which could be an ugly lookup. \n3) Deleting QoS types will require you to manipulate any number of share types that they can be associated with for which, you\u0027ll need an efficient way to query share types using extra-specs. \n4) Manipulating CSVs in memory is error prone too; imagine concurrent QoS type deletions\n\n\nSo, maybe we should have a junction table after all to associate and disassociate QoS types.. BUT, we can make it so that there\u0027s NO NEED for association.. i.e., a cloud admin can ignore the association altogether if it doesn\u0027t make sense for their cloud - association enforces co-usability and control.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":56,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. A comma separated list of qos_type names can be specified in share type"},{"line_number":59,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":62,"context_line":"   allowed to admin by the virtue of default RBAC policies. All non-admin"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6b9a35a0_6c5aa372","line":59,"range":{"start_line":59,"start_character":23,"end_line":59,"end_character":36},"updated":"2025-11-21 21:43:57.000000000","message":"This will be a tenant visible standard extra-spec that will not aid in scheduling, correct? Please add this clarification.\n\nIn the past, when we\u0027ve introduced stuff like this (e.g.: mount_point_prefix), we\u0027ve just made it a scoped extra-spec using \"provisioning:\" as the prefix. \n\n[1] https://docs.openstack.org/manila/latest/admin/capabilities_and_extra_specs.html#share-type-common-capability-extra-specs-that-are-visible-to-end-users","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. A comma separated list of qos_type names can be specified in share type"},{"line_number":59,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":62,"context_line":"   allowed to admin by the virtue of default RBAC policies. All non-admin"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ab8ab8a5_ab3d2e8a","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":34},"in_reply_to":"13260fde_1357c0d8","updated":"2025-11-26 10:50:51.000000000","message":"share-type extra-specs will be property default_qos_type and so it wont be list. Marking resolved.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"2. A comma separated list of qos_type names can be specified in share type"},{"line_number":59,"context_line":"   extra-spec named as ``qos_types``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"3. qos_type lifecycle management (create, update, delete) will be strictly"},{"line_number":62,"context_line":"   allowed to admin by the virtue of default RBAC policies. All non-admin"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7fe84c03_7915bda1","line":59,"range":{"start_line":59,"start_character":23,"end_line":59,"end_character":36},"in_reply_to":"6b9a35a0_6c5aa372","updated":"2025-11-26 10:50:51.000000000","message":"yes. the new extra-spec will be \u0027default_qos_type\u0027 similar to replication_type and this would be tenant visible.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":73,"context_line":"* Modify share create API"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":76,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5d473129_835c0fb9","line":79,"range":{"start_line":76,"start_character":67,"end_line":79,"end_character":25},"updated":"2025-11-21 21:43:57.000000000","message":"Continuing the comment on the previous PS.. you mentioned that users can select a share type without QoS types. \n\nIf i recall from a past interaction, you had the concern that we\u0027d have an explosion of share types in the cloud, similar to the concern that this spec specifically tries to address for QoS.\n\nWouldn\u0027t it make sense to allow None as an option? It\u0027d simply mean that, when a user doesn\u0027t specify QoS type, the QoS specs in share type extra-specs would be considered if present, or, if not, we\u0027d just not apply QoS?\n\nI don\u0027t get the reason to force the failure in this manner, while you also have the concern that users need a way to reuse share types.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ef57e774dd582926e96ea40967ae59970310e3f0","unresolved":true,"context_lines":[{"line_number":73,"context_line":"* Modify share create API"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":76,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e024d9a0_cf8c4cac","line":79,"range":{"start_line":76,"start_character":67,"end_line":79,"end_character":25},"in_reply_to":"41ed2a00_c4e3065c","updated":"2025-11-25 09:34:17.000000000","message":"The association I added was in patchset 1, but after PTG discussion this is removed assuming we will have qos_types (i.e. list of qos_type names) and no need to association/disassocation. The logic would be to let user create share with or without qos_type. If qos_type is specified in share create request, the share-type extra-specs qos_types must have specified name in the list else raise error.\n\nBut with recent thoughts and the use case is to have 1 qos_type for share_type, we can simply control as I mentioned above.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6cf34daa45b89dcb0bd26fbca056140e61a2923d","unresolved":true,"context_lines":[{"line_number":73,"context_line":"* Modify share create API"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":76,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":4,"id":"41ed2a00_c4e3065c","line":79,"range":{"start_line":76,"start_character":67,"end_line":79,"end_character":25},"in_reply_to":"467e076b_e72eb2be","updated":"2025-11-24 18:59:23.000000000","message":"I am unable to get the value of associating these types if the user can override an association","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":73,"context_line":"* Modify share create API"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":76,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":4,"id":"467e076b_e72eb2be","line":79,"range":{"start_line":76,"start_character":67,"end_line":79,"end_character":25},"in_reply_to":"5d473129_835c0fb9","updated":"2025-11-24 13:22:54.000000000","message":"We have use case of one qos_type with share_type. but for extension I predefined with multiple qos_types with share_type. If its getting complicated, I rather keep this simple. Instead of qos_types, we will have qos_type as extra-spec of share_type. \n1. If value is None\n  a. if share create without value, share will be created without qos\n  b. if share create with value, share will be created with qos value.\n2. If value is not None\n  a. if share create without value, share will be create with value of share-type extra-spec\n  b. if share create with value, the command line value will overwrite share-type exta-spec value","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"* Modify share create API"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  In order to allow users selecting the desired QoS policy, manila share"},{"line_number":76,"context_line":"  create API will accept an optional parameter named ``qos_type``. If share"},{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"}],"source_content_type":"text/x-rst","patch_set":4,"id":"313e896f_a749f93b","line":79,"range":{"start_line":76,"start_character":67,"end_line":79,"end_character":25},"in_reply_to":"e024d9a0_cf8c4cac","updated":"2025-11-26 10:50:51.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5cb0c237_a4222388","line":80,"range":{"start_line":80,"start_character":15,"end_line":80,"end_character":52},"updated":"2025-11-21 21:43:57.000000000","message":"Clarify this further please:\n\n```suggestion\n  extra-specs, the API will impose no restrictions, and honor the QoS type provided by the user. If administrators want to restrict the use of QoS types, they have to ensure that QoS types are added as an extra-spec to existing share types.\n```","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  type extra-spec ``qos_types`` is defined and user provided option"},{"line_number":78,"context_line":"  ``qos_type`` is not present within the list defined in extra-spec, Manila"},{"line_number":79,"context_line":"  API will raise an error. If ``qos_types`` is not defined in share type"},{"line_number":80,"context_line":"  extra-specs, API will proceed with share creation."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Changes in backend driver"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"27f1cc4c_f6474a82","line":80,"range":{"start_line":80,"start_character":15,"end_line":80,"end_character":52},"in_reply_to":"5cb0c237_a4222388","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":116,"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":117,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":118,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":119,"context_line":"  | name                  | string(255    |  No  |     | NULL    |       |"},{"line_number":120,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":121,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":122,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"09a3a243_a86683c4","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":74},"updated":"2025-11-21 21:43:57.000000000","message":"```suggestion\n  | name                  | string(255)   |  No  |     | NULL    |       |\n```","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":116,"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":117,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":118,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":119,"context_line":"  | name                  | string(255    |  No  |     | NULL    |       |"},{"line_number":120,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":121,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":122,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bbd55fd4_5d92a4a9","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":74},"in_reply_to":"09a3a243_a86683c4","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":141,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":142,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":143,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":144,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":145,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":146,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":147,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"85660076_9164a2dc","line":144,"updated":"2025-11-21 21:43:57.000000000","message":"why did you drop the timestamp fields? these are mandatory in Manila\u0027s DB models","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":142,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":143,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":144,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":145,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":146,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":147,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8e3d286f_97df0913","line":144,"in_reply_to":"7b353141_3ee1ff55","updated":"2025-12-11 08:48:48.000000000","message":"In other specs these fields are not mentioned but we know that they are created/used in manila code. So to keep consistency with other specs I removed from both tables.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":141,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":142,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":143,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":144,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":145,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":146,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":147,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"eb0ba412_3e7ce264","line":144,"in_reply_to":"85660076_9164a2dc","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":141,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":142,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":143,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":144,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":145,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":146,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":147,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7b353141_3ee1ff55","line":144,"in_reply_to":"eb0ba412_3e7ce264","updated":"2025-12-11 00:00:32.000000000","message":"?\n\nI was hoping you\u0027d restore these timestamp fields. However, I see you\u0027ve dropped them from the qos_types table too. For brevity?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":202,"context_line":"    }"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Response(202)::"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    {"},{"line_number":208,"context_line":"        \"qos_type\": {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d8fd0190_3dc51b61","line":205,"range":{"start_line":205,"start_character":9,"end_line":205,"end_character":12},"updated":"2025-11-21 21:43:57.000000000","message":"Why? What is left to do? Doesn\u0027t this API just create the database entries and return? 202 is for async operations, 201 Created is a more appropriate response, and if you\u0027d like to be consistent with the share types API, https://docs.openstack.org/api-ref/shared-file-system/#Success","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    }"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Response(202)::"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    {"},{"line_number":208,"context_line":"        \"qos_type\": {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f17ba3cc_ced45643","line":205,"range":{"start_line":205,"start_character":9,"end_line":205,"end_character":12},"in_reply_to":"d8fd0190_3dc51b61","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"ff02d9a1681adc7cb7f591c93aec2a98a370ecb1","unresolved":true,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    {"},{"line_number":278,"context_line":"        \"qos_type\": {"},{"line_number":279,"context_line":"            \"description\": \"High-performance storage QoS - Update\","},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"365d1dbc_999a2a50","line":279,"updated":"2025-11-21 15:40:33.000000000","message":"I assume the name of the policy is non-editable.\nThat is the identifier for driver(NetApp) by combining the vserver name to check/update the policy.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"720648b781ac299c198178b4a5478917b23a7b0d","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    {"},{"line_number":278,"context_line":"        \"qos_type\": {"},{"line_number":279,"context_line":"            \"description\": \"High-performance storage QoS - Update\","},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"2fa850cf_b2a46e55","line":279,"in_reply_to":"365d1dbc_999a2a50","updated":"2025-11-21 16:28:04.000000000","message":"yes policy name can not be updated. I will add check in manila implementation for the same.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":411,"context_line":"The backend driver needs to implement:"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"404edc3c_44a6146f","line":415,"range":{"start_line":414,"start_character":58,"end_line":415,"end_character":72},"updated":"2025-11-21 21:43:57.000000000","message":"There doesn\u0027t seem to be any way to tell if the driver supports this or not. When you add a new optional feature, typically, we\u0027ve had a driver capability associated with it. How can the end user or administrator know that the qos_type supplied in teh request is actually honored?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":411,"context_line":"The backend driver needs to implement:"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5047a62c_f65d912a","line":415,"range":{"start_line":414,"start_character":58,"end_line":415,"end_character":72},"in_reply_to":"404edc3c_44a6146f","updated":"2025-11-24 13:22:54.000000000","message":"What is your suggestion here, add new capability qos_type_support. If its True then pass qos_type info to backend else ignore and keep in db only. Seems like we are unnecessarily making it complicated, the qos_type support available or not available is not going to affect manila-core and so reporting does not make value as per me. The driver if not support qos_type during share_create simply ignore this param","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"6cf34daa45b89dcb0bd26fbca056140e61a2923d","unresolved":true,"context_lines":[{"line_number":411,"context_line":"The backend driver needs to implement:"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"88c51fcb_5c0d456c","line":415,"range":{"start_line":414,"start_character":58,"end_line":415,"end_character":72},"in_reply_to":"5047a62c_f65d912a","updated":"2025-11-24 18:59:23.000000000","message":"What does ignoring the parameter do to the end user, or an administrator? \nThe logic around reporting capabilities and matching them to extra-specs allows for the scheduler to fail an invalid request. What happens, in a deployment that combines drivers that support QoS types and those that don\u0027t?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ef57e774dd582926e96ea40967ae59970310e3f0","unresolved":true,"context_lines":[{"line_number":411,"context_line":"The backend driver needs to implement:"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9456f991_20340b16","line":415,"range":{"start_line":414,"start_character":58,"end_line":415,"end_character":72},"in_reply_to":"88c51fcb_5c0d456c","updated":"2025-11-25 09:34:17.000000000","message":"yes, this can be concern. But we dont have deployment mix of driver where some support qos and some dont. If that is case, we need to have capability qos_support and according use it. Should this be ok ?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":411,"context_line":"The backend driver needs to implement:"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c263580b_4d5595fd","line":415,"range":{"start_line":414,"start_character":58,"end_line":415,"end_character":72},"in_reply_to":"9456f991_20340b16","updated":"2025-11-26 10:50:51.000000000","message":"new capability qos_type_support will be introduced.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"},{"line_number":419,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6f038e5f_486223a2","line":416,"updated":"2025-11-21 21:43:57.000000000","message":"You\u0027ve to clarify what happens when a QoS type is manipulated or deleted. Per our discussion elsewhere, there is NO change conveyed to the drivers unless a new share creation request arrives; and there\u0027s no expectation to manipulate existing resources (shares, share servers)","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"},{"line_number":419,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"56f8af82_cbbb7f27","line":416,"in_reply_to":"62bc9888_cc2f3c4e","updated":"2025-11-26 10:50:51.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":413,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":414,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":415,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"Security impact"},{"line_number":419,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"62bc9888_cc2f3c4e","line":416,"in_reply_to":"6f038e5f_486223a2","updated":"2025-11-24 13:22:54.000000000","message":"added some info.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":418,"context_line":"Security impact"},{"line_number":419,"context_line":"---------------"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"None"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0e3c4639_5cc068e1","line":421,"range":{"start_line":421,"start_character":0,"end_line":421,"end_character":4},"updated":"2025-11-21 21:43:57.000000000","message":"This is where you can identify all the RBAC policies; right now, you\u0027ve mentioned these inline. \n\nI think best practice should be:\n\nIf something is possible, you should assume it will be done. \nSo, by virtue of default RBAC rules that you\u0027ll introduce, you\u0027ll lock down creation and manipulation of QoS types and specs to admin users; however, a cloud could customize this. Having the interactions noted here will allow us to think through the consequences of such actions","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":418,"context_line":"Security impact"},{"line_number":419,"context_line":"---------------"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"None"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a8987c3c_19a55175","line":421,"range":{"start_line":421,"start_character":0,"end_line":421,"end_character":4},"in_reply_to":"0e3c4639_5cc068e1","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":424,"context_line":"Notifications impact"},{"line_number":425,"context_line":"--------------------"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"None"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1aad2401_a2e77f97","line":427,"range":{"start_line":427,"start_character":0,"end_line":427,"end_character":4},"updated":"2025-11-21 21:43:57.000000000","message":"Wouldn\u0027t we want to send the QoS type info through notifications too?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":true,"context_lines":[{"line_number":424,"context_line":"Notifications impact"},{"line_number":425,"context_line":"--------------------"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"None"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c35a32b6_5108d748","line":427,"range":{"start_line":427,"start_character":0,"end_line":427,"end_character":4},"in_reply_to":"1aad2401_a2e77f97","updated":"2025-11-24 13:22:54.000000000","message":"I am not sure, if there is use-case/need, will add it.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":424,"context_line":"Notifications impact"},{"line_number":425,"context_line":"--------------------"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"None"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3dede289_0504a5e3","line":427,"range":{"start_line":427,"start_character":0,"end_line":427,"end_character":4},"in_reply_to":"c35a32b6_5108d748","updated":"2025-11-26 10:50:51.000000000","message":"notifications similar to share_type will be added.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":436,"context_line":"Performance Impact"},{"line_number":437,"context_line":"------------------"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"* Minimal overhead when listing QoSTypes."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b9422cbc_ed795720","line":439,"range":{"start_line":439,"start_character":0,"end_line":439,"end_character":41},"updated":"2025-11-21 21:43:57.000000000","message":"how?\n\nI think there\u0027s a considerable impact on share types APIs per your current design if we allow associating QoS types as an extra spec","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"9156324abe54a8a86b3548e3f48a724899e224b2","unresolved":false,"context_lines":[{"line_number":436,"context_line":"Performance Impact"},{"line_number":437,"context_line":"------------------"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"* Minimal overhead when listing QoSTypes."},{"line_number":440,"context_line":""},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2c5e894c_9dbad382","line":439,"range":{"start_line":439,"start_character":0,"end_line":439,"end_character":41},"in_reply_to":"b9422cbc_ed795720","updated":"2025-11-26 10:50:51.000000000","message":"Since share-type extra-spec have only one qos_type for implementation, no associate/disassociate will be needed.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":442,"context_line":"Other deployer impact"},{"line_number":443,"context_line":"---------------------"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"None."},{"line_number":446,"context_line":""},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a1083a9e_24a0682e","line":445,"range":{"start_line":445,"start_character":0,"end_line":445,"end_character":5},"updated":"2025-11-21 21:43:57.000000000","message":"How can one begin using this feature in a cloud that upgrades to a release that supports this feature?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":442,"context_line":"Other deployer impact"},{"line_number":443,"context_line":"---------------------"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"None."},{"line_number":446,"context_line":""},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"91b7a73c_f16c458b","line":445,"range":{"start_line":445,"start_character":0,"end_line":445,"end_character":5},"in_reply_to":"a1083a9e_24a0682e","updated":"2025-11-24 13:22:54.000000000","message":"Done","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9434c20698a24266d71874944464f3469b281b69","unresolved":true,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"Developer impact"},{"line_number":449,"context_line":"----------------"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"144e59d6_f7330354","line":450,"updated":"2025-11-21 21:43:57.000000000","message":"Anything here?","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3b550d4a27fb7339f8d855288d3f8186ad7b50c0","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"Developer impact"},{"line_number":449,"context_line":"----------------"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6e370ab6_c3f2cd95","line":450,"in_reply_to":"144e59d6_f7330354","updated":"2025-11-24 13:22:54.000000000","message":"mentioned as None.","commit_id":"17b0d789252bf6181e195b7b7142ebf5503a75cc"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a67616fd_6467a02b","line":23,"range":{"start_line":23,"start_character":56,"end_line":23,"end_character":67},"updated":"2025-12-11 00:00:32.000000000","message":"typo","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"}],"source_content_type":"text/x-rst","patch_set":7,"id":"837c2c59_a3df197a","line":23,"range":{"start_line":23,"start_character":56,"end_line":23,"end_character":67},"in_reply_to":"a67616fd_6467a02b","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":21,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"},{"line_number":27,"context_line":"extra-specs works for deployments where policy and resource management occur"}],"source_content_type":"text/x-rst","patch_set":7,"id":"8c7375d3_3be2e87e","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":13},"updated":"2025-12-11 00:00:32.000000000","message":"\"define\"?","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Manila backend drivers support Quality Of Service (QoS) feature which allows"},{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"},{"line_number":27,"context_line":"extra-specs works for deployments where policy and resource management occur"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ff09597_2bae7d18","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":13},"in_reply_to":"8c7375d3_3be2e87e","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"},{"line_number":27,"context_line":"extra-specs works for deployments where policy and resource management occur"},{"line_number":28,"context_line":"outside of the Openstack environment. However for Manila integrated management,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"00a977ee_3c2184c3","line":25,"range":{"start_line":25,"start_character":63,"end_line":25,"end_character":71},"updated":"2025-12-11 00:00:32.000000000","message":"support","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"operator to define certain quality parameters on share. The parameters of QoS"},{"line_number":23,"context_line":"are passed in share-type extra-specs as driver-specific parameteres. Operators"},{"line_number":24,"context_line":"must overload extra-specs to describe QoS, which creates duplication, lack of"},{"line_number":25,"context_line":"reuse, and poor visibility across share types. Backend drivers supports"},{"line_number":26,"context_line":"DHSS\u003dTrue and DHSS\u003dFalse. The way of defining QoS by using share-type"},{"line_number":27,"context_line":"extra-specs works for deployments where policy and resource management occur"},{"line_number":28,"context_line":"outside of the Openstack environment. However for Manila integrated management,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"340f8a05_099264b2","line":25,"range":{"start_line":25,"start_character":63,"end_line":25,"end_character":71},"in_reply_to":"00a977ee_3c2184c3","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c20b2cf1fe16b0d7df4dae1395c17c7df95b1790","unresolved":true,"context_lines":[{"line_number":54,"context_line":"Introduce a new top-level object: qos_type."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"1. qos_type contains an id, name, description, and a set of qos_specs"},{"line_number":57,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. A qos_type name can be specified in share type extra-spec named as"},{"line_number":60,"context_line":"   ``default_qos_type``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"b6438bf1_742f4195","line":57,"updated":"2025-12-04 12:32:28.000000000","message":"The name must be unique across an SVM? or this enforcement is at all storage backend level?","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4a6002e419bcd62bb4b4e08660d5a127ac1ec44f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Introduce a new top-level object: qos_type."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"1. qos_type contains an id, name, description, and a set of qos_specs"},{"line_number":57,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. A qos_type name can be specified in share type extra-spec named as"},{"line_number":60,"context_line":"   ``default_qos_type``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfed0527_ae8726e9","line":57,"in_reply_to":"b6438bf1_742f4195","updated":"2025-12-04 13:35:43.000000000","message":"yes, qos_type name must be unique as this name will be used under \u0027default_qos_type\u0027 extra_spec and also to derive unique name for policy across cluster. SVM is netapp term, we keep it unique across qos_type object only. Since this is admin controlled, it is fine.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Introduce a new top-level object: qos_type."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"1. qos_type contains an id, name, description, and a set of qos_specs"},{"line_number":57,"context_line":"   (key/value pairs). The name must be unique."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"2. A qos_type name can be specified in share type extra-spec named as"},{"line_number":60,"context_line":"   ``default_qos_type``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"c51ca2b4_2031cc3a","line":57,"in_reply_to":"dfed0527_ae8726e9","updated":"2025-12-11 00:00:32.000000000","message":"Not just that, since you\u0027re modeling qos types along the lines of share types, \"name\" is a unique field. So within a Manila deployment, qos types will be unique","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":78,"context_line":"  ``default_qos_type``. When share is created from such share-type, the"},{"line_number":79,"context_line":"  qos_type and its specs are picked and passed to backend driver. The"},{"line_number":80,"context_line":"  scheduler must validate that backend driver reporting capability"},{"line_number":81,"context_line":"  ``qos_type_support`` will be filterd."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Changes in backend driver"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"c5e72aa8_4f03dd62","line":81,"range":{"start_line":81,"start_character":31,"end_line":81,"end_character":38},"updated":"2025-12-11 00:00:32.000000000","message":"typo","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  ``default_qos_type``. When share is created from such share-type, the"},{"line_number":79,"context_line":"  qos_type and its specs are picked and passed to backend driver. The"},{"line_number":80,"context_line":"  scheduler must validate that backend driver reporting capability"},{"line_number":81,"context_line":"  ``qos_type_support`` will be filterd."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Changes in backend driver"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"b725b0c6_c9da5edb","line":81,"range":{"start_line":81,"start_character":31,"end_line":81,"end_character":38},"in_reply_to":"c5e72aa8_4f03dd62","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":115,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":116,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":117,"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":118,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":119,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":120,"context_line":"  | name                  | string(255)   |  No  |     | NULL    |       |"},{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"8578f981_0e309927","line":118,"range":{"start_line":118,"start_character":50,"end_line":118,"end_character":55},"updated":"2025-12-11 00:00:32.000000000","message":"PRI","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":115,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":116,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":117,"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":118,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":119,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":120,"context_line":"  | name                  | string(255)   |  No  |     | NULL    |       |"},{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ede59dd5_4c8a2582","line":118,"range":{"start_line":118,"start_character":50,"end_line":118,"end_character":55},"in_reply_to":"8578f981_0e309927","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":117,"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":118,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":119,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":120,"context_line":"  | name                  | string(255)   |  No  |     | NULL    |       |"},{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":122,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":123,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"79c84ca3_fe8b092f","line":120,"range":{"start_line":120,"start_character":50,"end_line":120,"end_character":55},"updated":"2025-12-11 00:00:32.000000000","message":"UNIQUE","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":117,"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":118,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":119,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":120,"context_line":"  | name                  | string(255)   |  No  |     | NULL    |       |"},{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":122,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":123,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ab8c908_9a2a5292","line":120,"range":{"start_line":120,"start_character":50,"end_line":120,"end_character":55},"in_reply_to":"79c84ca3_fe8b092f","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":122,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":123,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":124,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":125,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8f1587f7_a3bc639e","line":124,"range":{"start_line":124,"start_character":28,"end_line":124,"end_character":38},"updated":"2025-12-11 00:00:32.000000000","message":"By default, Manila\u0027s database models support a \"soft delete\" approach with oslo.db\u0027s soft delete mixin: https://opendev.org/openstack/oslo.db/src/commit/fc79b296fbaad07177ebb5a8a18896abe8976176/oslo_db/sqlalchemy/models.py#L133-L141\n\nWith this, \"deleted\" is meant to match the same data type as the \"id\" field. \nSince this table is like the share types table, please match it - otherwise we\u0027d have to invent some inconsistent handling logic just to accommodate this.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":122,"context_line":"  | description           | string(255)   | YES  |     | NULL    |       |"},{"line_number":123,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":124,"context_line":"  | deleted               | tinyint(1)    | YES  |     | NULL    |       |"},{"line_number":125,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"6a79ef54_43e244aa","line":124,"range":{"start_line":124,"start_character":28,"end_line":124,"end_character":38},"in_reply_to":"8f1587f7_a3bc639e","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":130,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":131,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":132,"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":133,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0eb2affb_f630af9c","line":133,"range":{"start_line":133,"start_character":28,"end_line":133,"end_character":38},"updated":"2025-12-11 00:00:32.000000000","message":"If this is modeled along the lines of share type extra specs, having a UUID id is probably heavy-lifting: https://github.com/openstack/manila/blob/13086be27244ec9318c3b3641e7055364b73265e/manila/db/sqlalchemy/models.py#L530\n\nqueries are usually done with qos_type_id or the key, and seldom with the ID anyway..","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":130,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":131,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":132,"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":133,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dee66061_01fedbed","line":133,"range":{"start_line":133,"start_character":50,"end_line":133,"end_character":55},"updated":"2025-12-11 00:00:32.000000000","message":"PRI","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":131,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":132,"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":133,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"563b4b88_3389b41d","line":133,"range":{"start_line":133,"start_character":28,"end_line":133,"end_character":38},"in_reply_to":"0eb2affb_f630af9c","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":131,"context_line":"  | Field                 | Type          | Null | Key | Default | Extra |"},{"line_number":132,"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":133,"context_line":"  | id                    | string(36)    |  No  |     |         |       |"},{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1d49ed5f_869e6a39","line":133,"range":{"start_line":133,"start_character":50,"end_line":133,"end_character":55},"in_reply_to":"dee66061_01fedbed","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c20b2cf1fe16b0d7df4dae1395c17c7df95b1790","unresolved":true,"context_lines":[{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":137,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":138,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":139,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":140,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1e229602_ab582cd3","line":137,"updated":"2025-12-04 12:32:28.000000000","message":"For someone to create a key that works for multiple backends would be hard. For eg, if a key for expected_iops does not match driver implementation, it may lead to errors? Should we not define the generic attributes like peak_iops, expected_iops, peak_throughput and throughput_floor as pre defined attributes. For extra specs,we can use key/value pairs that can be interpreted by the driver while creating the QoS. For instance, NetApp driver can map the default values to its QoS, extra spec passed in key/value pair can be policy_type: adaptive which indicates the driver to create an adaptive QoS and not traditional QoS. The driver which does not support the extra specs, can ignore those fields. Just a food for thought.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4a6002e419bcd62bb4b4e08660d5a127ac1ec44f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":135,"context_line":"  | qos_type_id           | string(36)    |  No  |     | NULL    |       |"},{"line_number":136,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":137,"context_line":"  | key                   | string(255)   |  No  |     | NULL    |       |"},{"line_number":138,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"},{"line_number":139,"context_line":"  | value                 | string(1023)  |  No  |     | NULL    |       |"},{"line_number":140,"context_line":"  +-----------------------+---------------+------+-----+---------+-------+"}],"source_content_type":"text/x-rst","patch_set":7,"id":"26304282_a2da04e2","line":137,"in_reply_to":"1e229602_ab582cd3","updated":"2025-12-04 13:35:43.000000000","message":"This is not end user facing API its admin only. The qos_type is generic and each driver can have their spec. The admin using netapp must decide to feed mandatory params at least and then optionally add remaining params as spec to define policy. For adpative qos, you can specify policy_type \u003d adaptive else policy_type \u003d fixed and make sure remaining specs in that qos_type specs are correctly define that type of policy. Since this is admin controlled, it is fine. Share type extra spec just specifiy default_qos_type with it. if present share created from that share type will have QoS else no QoS.","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":311,"context_line":"the API will respond with ``403 Forbidden``. Also if qos_type is in"},{"line_number":312,"context_line":"use by shares, the API will respond with ``400 BadRequest``"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Response(202)::"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    None"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"16affb5c_15adc7a8","line":314,"range":{"start_line":314,"start_character":9,"end_line":314,"end_character":12},"updated":"2025-12-11 00:00:32.000000000","message":"201 Created for create operations and 204 No Content for delete operations, 202 implies pending/async processing","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":311,"context_line":"the API will respond with ``403 Forbidden``. Also if qos_type is in"},{"line_number":312,"context_line":"use by shares, the API will respond with ``400 BadRequest``"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Response(202)::"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    None"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"929c28ae_3b7ea6e1","line":314,"range":{"start_line":314,"start_character":9,"end_line":314,"end_character":12},"in_reply_to":"16affb5c_15adc7a8","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":414,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":415,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":416,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":417,"context_line":"* The QoS type information can be modified once they are created and attached"},{"line_number":418,"context_line":"  to any share. With modified QoS type, unless new share created on same share"},{"line_number":419,"context_line":"  server, the drivers wont get this modified QoS type information. For some"},{"line_number":420,"context_line":"  drivers apply those modification and it will be affecting existing as well"},{"line_number":421,"context_line":"  as new resources. For other drivers, it might affect only new resources."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a5c9bc5f_8b0bf643","line":421,"range":{"start_line":417,"start_character":2,"end_line":421,"end_character":74},"updated":"2025-12-11 00:00:32.000000000","message":"```suggestion\n* Modifying QoS type specifications after shares are created results\n  in indeterminate behavior and must be avoided. Modifications are not\n  enforced on the storage back end. This means that some drivers can choose\n  to apply the modifications only for new shares and leave the existing shares\n  as is, and some others may alter the behavior for existing shares as well\n  as for new shares. However, this modification is triggered only when a new\n  share is created.\n```","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":414,"context_line":"* The storage backed driver will receive qos_type along-with its specs"},{"line_number":415,"context_line":"  during creation of resources like share or share-server. The driver then"},{"line_number":416,"context_line":"  decide how to use those to create and apply QoS policies on resources."},{"line_number":417,"context_line":"* The QoS type information can be modified once they are created and attached"},{"line_number":418,"context_line":"  to any share. With modified QoS type, unless new share created on same share"},{"line_number":419,"context_line":"  server, the drivers wont get this modified QoS type information. For some"},{"line_number":420,"context_line":"  drivers apply those modification and it will be affecting existing as well"},{"line_number":421,"context_line":"  as new resources. For other drivers, it might affect only new resources."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"92fa3c3b_6ed8a94b","line":421,"range":{"start_line":417,"start_character":2,"end_line":421,"end_character":74},"in_reply_to":"a5c9bc5f_8b0bf643","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":425,"context_line":"---------------"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"The create/update/delete operations for QoS types and specs are available only"},{"line_number":428,"context_line":"for admin users. All users can only list and use QoS type and its specs."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0bed00a3_8909a4ce","line":428,"range":{"start_line":428,"start_character":15,"end_line":428,"end_character":16},"updated":"2025-12-11 00:00:32.000000000","message":"by the virtue of default RBAC","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":425,"context_line":"---------------"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"The create/update/delete operations for QoS types and specs are available only"},{"line_number":428,"context_line":"for admin users. All users can only list and use QoS type and its specs."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"96ad7faf_1dd84bbb","line":428,"range":{"start_line":428,"start_character":15,"end_line":428,"end_character":16},"in_reply_to":"0bed00a3_8909a4ce","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d7fb8e098fc0e92a16a6d4d02b6b5ca16bbd59f1","unresolved":true,"context_lines":[{"line_number":450,"context_line":"Other deployer impact"},{"line_number":451,"context_line":"---------------------"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"When cloud is upgraded to release that supports this feature and controller"},{"line_number":454,"context_line":"wants to enable this feature, he needs to follow below steps."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"1. Create one or more qos_types"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f6974e40_3f7bf019","line":453,"range":{"start_line":453,"start_character":65,"end_line":453,"end_character":75},"updated":"2025-12-11 00:00:32.000000000","message":"administrator?","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"dff8d64377a495111fb295e2ef3e60677be314e0","unresolved":false,"context_lines":[{"line_number":450,"context_line":"Other deployer impact"},{"line_number":451,"context_line":"---------------------"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"When cloud is upgraded to release that supports this feature and controller"},{"line_number":454,"context_line":"wants to enable this feature, he needs to follow below steps."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"1. Create one or more qos_types"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e0c3c7e2_3ba6dc03","line":453,"range":{"start_line":453,"start_character":65,"end_line":453,"end_character":75},"in_reply_to":"f6974e40_3f7bf019","updated":"2025-12-11 08:48:48.000000000","message":"Done","commit_id":"af84b9f232b24c097f94f40ddc0298dc0235cc04"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9732cead2618e6b2191fe5b7b7c5733fb3e1f102","unresolved":true,"context_lines":[{"line_number":30,"context_line":"is not the efficient way to define QoS on Manila resources due to reasons"},{"line_number":31,"context_line":"mentioned earlier."},{"line_number":32,"context_line":"This specification proposes an approach that enables Manila to create multiple"},{"line_number":33,"context_line":"qos_types and optionally mention one of them in share type extra-spec. The qos_type"},{"line_number":34,"context_line":"represents a QoS policy which will be applied on resource e.g. share."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"76ac1e9e_649d66a5","line":33,"range":{"start_line":33,"start_character":75,"end_line":33,"end_character":83},"updated":"2025-12-11 13:53:09.000000000","message":"nit: please wrap the line at 79 characters","commit_id":"9c49b28d615bc0dd0be563bee5ff4641a9d51dae"}]}
