)]}'
{"/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":"cbeddd1b1fd6ce34b1c62a563ebf03a33ab35864","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f0e33ab1_365a2ea2","updated":"2026-02-19 15:55:15.000000000","message":"I would recommend to use QoS type feature that is currently being implemented in Gazpacho instead of using extra specs. Eventually the QoS type should become our goto implementation of QoS policies implementation on Manila. \n\nPlease refer to:\n\nhttps://review.opendev.org/q/topic:%22bp/qos-types%22","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"33a66577_aa92d9b8","updated":"2026-02-18 20:31:59.000000000","message":"Thank you for the patch. Please see the comments.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"df727bb522f70609f3434da9623343e781589d37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6e70350d_71eb156f","in_reply_to":"931b23bf_59a2c27b","updated":"2026-05-04 09:51:01.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"1f2538ff89ce52c730e0db3ebbfa4366b9ab277d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f6910328_1dcce530","in_reply_to":"f0e33ab1_365a2ea2","updated":"2026-02-23 07:00:30.000000000","message":"Hey Anoop, thanks for the recommendation.\nWanted to know if we can move ahead with QoS as share_type extra specs for now and use QoS type feature as an enhancement in next cycle?","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8e830beebe2663cfd58f6119d0c530de400822cc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"931b23bf_59a2c27b","in_reply_to":"f6910328_1dcce530","updated":"2026-02-26 15:16:41.000000000","message":"I think we can do that. I would like to hear from @gouthampravi@gmail.com and Carlos since going forward we would definitely want to have a single way of implementing QoS. May be it can be prioritized in a future release. But this creates a problem where some customers may already be using share_type extra spec vs some will adopt QoS_type.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"d06370b8c42abaddfdeca8f64ee838395f069b7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5997f1bd_0e74359e","updated":"2026-03-03 05:26:20.000000000","message":"Please get a buy in from Goutham and Carlos on using extra specs to manage the QoS to start with. Hopefully the driver will also adapt the QoS type spec in future.\n\nAlso please address the merge conflicts.","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8e830beebe2663cfd58f6119d0c530de400822cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c5238f36_2394c0a1","updated":"2026-02-26 15:16:41.000000000","message":"Please look at the comments. Thanks","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"b946683dcd1f90172c2b2628538f8d9bb4a0181f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7cc057b9_8929cc18","updated":"2026-03-16 05:59:15.000000000","message":"recheck","commit_id":"2fe9bd042b62d4ee37b60dbaac3c4b649ea98b8a"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ebe83bc02ea479d14d9ee57d5bf31d5d92a40678","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e5aec2a6_73cc9c6a","updated":"2026-03-24 09:10:56.000000000","message":"Added a latest patchset which is using Qos_types and qos type specs. Please review it.","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"790b3b39f0f189c42b62b60b7e7acbd5c6e3d068","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"16afc6c0_27aeed58","updated":"2026-04-17 07:55:11.000000000","message":"Please look at the comments.","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"df727bb522f70609f3434da9623343e781589d37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4af6bbe4_d450c382","in_reply_to":"e5aec2a6_73cc9c6a","updated":"2026-05-04 09:51:01.000000000","message":"Done","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c483f57040d57747b6bddc868f7a704dc3949803","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"22f462cd_5248d1cf","updated":"2026-05-04 18:16:14.000000000","message":"LGTM","commit_id":"a485a4bbf134dbda0b470f9357c625349c3c52a0"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"47f568f34d89ac63bfb55f7d65bba21252fceb99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f9e4e68e_f854b2e1","updated":"2026-08-12 12:11:47.000000000","message":"LGTM. Upgrading to +2 as I think the code changes look fine.","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f58bb4191aefdb7fd0a44cd81e8bfae5ddce1d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"20f49b75_5e251836","updated":"2026-08-17 15:31:41.000000000","message":"Looks good for the most part. I have a couple of minor suggestions inline. Please take a look","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"8801c73128c868a6da1f1dab0cd56253f8404cad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e9ae88e6_b01f06d9","updated":"2026-08-06 05:52:19.000000000","message":"run-DellEMC PowerScale CI","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"de0128456fddc7391469afc720c738a1a984b3d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f929b3e9_cc2decd1","updated":"2026-08-18 12:06:44.000000000","message":"Couple of comments. Please look at them.","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e17dbf527fa2e7f814367e695ef9def73d162868","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c8d4acf9_7b5ad109","updated":"2026-08-24 05:53:34.000000000","message":"@siddharth.kumar1@dell.com - the Dell CI logs are not accessible.","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a454923dc3b4646d770e7731b4b2673a82122b35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c81ed845_7c14a10e","updated":"2026-08-19 11:06:42.000000000","message":"Please review it team.","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7d6767d2b0740a28d497286a6f2c038a463ced90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9d222efd_7792052f","updated":"2026-08-19 12:41:22.000000000","message":"Thanks for addressing the comments. LGTM","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"37b16bfb72f5a1940f1813b0b69b8d0deba5f3e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"7547feff_bba1a599","updated":"2026-08-26 16:57:23.000000000","message":"Please address the merge conflicts.","commit_id":"60f67c08e9a43d2f80d3ad9c29cd381677807771"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"334dead0253978e3344758b78983d8f63c7f3c28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"7221b46c_585702d0","updated":"2026-08-24 11:46:47.000000000","message":"run-DellEMC PowerScale CI","commit_id":"60f67c08e9a43d2f80d3ad9c29cd381677807771"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"5fd174cf3f8cd0cce2bbbd355b6ac00070ecdf61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9d758130_a424f2ff","updated":"2026-08-24 13:10:24.000000000","message":"run-DellEMC PowerScale CI","commit_id":"60f67c08e9a43d2f80d3ad9c29cd381677807771"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"e4f9a0796f381d4212c39cbb917bc94146e0cf6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"2b8aa598_601d13a0","updated":"2026-08-27 12:35:06.000000000","message":"@siddharth.kumar1@dell.com hey, do you have any updates on the state of the Dell CI? Are you planning to join today\u0027s upstream weekly meeting? https://wiki.openstack.org/wiki/Manila/Meetings#Next_meeting","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"3c8c8a652ada0e8e278d26c1e4a89197b127bb75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0cbc38aa_8a27dd84","updated":"2026-08-28 11:36:08.000000000","message":"Please resolve merge conflicts","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"31c76a849892984562b25e09215a00853c403e4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c8efd1c2_250d972f","updated":"2026-08-27 15:58:04.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"3535c707728e057442a608e3f01053018f75bc43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"f2c87876_c01d98ff","in_reply_to":"2b8aa598_601d13a0","updated":"2026-08-27 12:50:39.000000000","message":"Hey Carlos, we\u0027re still working through some internal items related to the Dell CI. Its really unfortunate we got this issue during feature freeze time. \n\nIs there still a way we can merge these changes? We can\u0027t make the repo public yet, but this patch and along with other patches have a history of successfull Dell CI and have been tested locally too, but unfortunately not on the latest patchset!","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"039920d923eddcdf731fab707793fa2607aadc35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6a8b3671_07e1c17b","in_reply_to":"4a0b4648_1036e0d0","updated":"2026-08-28 12:40:21.000000000","message":"Hey, Siddharth. I missed your ping here yesterday. Given these changes have been proposed for a while and they had feedback, I am happy to grant a feature freeze exception, but these changes have to land by next Thursday. I hope that is enough time to figure out CI stuff. I can now see the repository, but whenever I try fetching the logs from the build, I get a 404 message saying the folder does not exist.","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"b078870b8bef0f1ef42615fd58e8428f619a7add","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"4a0b4648_1036e0d0","in_reply_to":"f2c87876_c01d98ff","updated":"2026-08-27 15:32:44.000000000","message":"I just realised the meeting link is internally blocked. \nhttps://app.element.io/#/welcome","commit_id":"4fa607fb911d1bf1a1421b85d1b1754265246880"}],"manila/share/drivers/dell_emc/plugins/powerscale/powerscale.py":[{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":62,"context_line":"               default\u003d\"every 1 weeks on sunday at 12:00 AM\","},{"line_number":63,"context_line":"               help\u003d\u0027Specifies the schedule \u0027"},{"line_number":64,"context_line":"                    \u0027for triggering Dedupe job in PowerScale\u0027),"},{"line_number":65,"context_line":"    cfg.BoolOpt(\u0027qos_enabled\u0027,"},{"line_number":66,"context_line":"                default\u003dTrue,"},{"line_number":67,"context_line":"                help\u003d\u0027Enable Manila QoS via OneFS SmartQoS protocol ops.\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027qos_dataset_name\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d93683ab_bc18e711","line":65,"updated":"2026-02-18 20:31:59.000000000","message":"This should be defined as part of the share type. QoS must be applied based on the share type configuration and should not be implemented as a global setting.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               default\u003d\"every 1 weeks on sunday at 12:00 AM\","},{"line_number":63,"context_line":"               help\u003d\u0027Specifies the schedule \u0027"},{"line_number":64,"context_line":"                    \u0027for triggering Dedupe job in PowerScale\u0027),"},{"line_number":65,"context_line":"    cfg.BoolOpt(\u0027qos_enabled\u0027,"},{"line_number":66,"context_line":"                default\u003dTrue,"},{"line_number":67,"context_line":"                help\u003d\u0027Enable Manila QoS via OneFS SmartQoS protocol ops.\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027qos_dataset_name\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"4a691ccb_4373c2a4","line":65,"in_reply_to":"d93683ab_bc18e711","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    cfg.BoolOpt(\u0027qos_enabled\u0027,"},{"line_number":66,"context_line":"                default\u003dTrue,"},{"line_number":67,"context_line":"                help\u003d\u0027Enable Manila QoS via OneFS SmartQoS protocol ops.\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027qos_dataset_name\u0027,"},{"line_number":69,"context_line":"               default\u003d\u0027openstack_manila_qos\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027SmartQoS dataset name (path+protocol metrics).\u0027)"},{"line_number":71,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"797dcacc_f8a90478","line":68,"updated":"2026-02-18 20:31:59.000000000","message":"This should also be configured through the share type.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    cfg.BoolOpt(\u0027qos_enabled\u0027,"},{"line_number":66,"context_line":"                default\u003dTrue,"},{"line_number":67,"context_line":"                help\u003d\u0027Enable Manila QoS via OneFS SmartQoS protocol ops.\u0027),"},{"line_number":68,"context_line":"    cfg.StrOpt(\u0027qos_dataset_name\u0027,"},{"line_number":69,"context_line":"               default\u003d\u0027openstack_manila_qos\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027SmartQoS dataset name (path+protocol metrics).\u0027)"},{"line_number":71,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"464a4bdd_58055b09","line":68,"in_reply_to":"797dcacc_f8a90478","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":155,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # QoS: ensure workload limits if specified in extra specs"},{"line_number":158,"context_line":"        qos_req, limit \u003d self._qos_requested_and_limit(share)"},{"line_number":159,"context_line":"        if qos_req:"},{"line_number":160,"context_line":"            dataset_id \u003d self._qos_dataset_id or self._qos_ensure_dataset()"},{"line_number":161,"context_line":"            if not dataset_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c273ce3_bdc4eba3","line":158,"updated":"2026-02-18 20:31:59.000000000","message":"Please verify if QoS is enabled before proceeding.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # QoS: ensure workload limits if specified in extra specs"},{"line_number":158,"context_line":"        qos_req, limit \u003d self._qos_requested_and_limit(share)"},{"line_number":159,"context_line":"        if qos_req:"},{"line_number":160,"context_line":"            dataset_id \u003d self._qos_dataset_id or self._qos_ensure_dataset()"},{"line_number":161,"context_line":"            if not dataset_id:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7c8166e7_069152c2","line":158,"in_reply_to":"9c273ce3_bdc4eba3","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":492,"context_line":"        size_gb \u003d size_bytes // units.Gi"},{"line_number":493,"context_line":"        self._process_dedupe(share, backend_quota_path, False)"},{"line_number":494,"context_line":"        # QoS manage policy: presence + exact limit equality; no mutation."},{"line_number":495,"context_line":"        qos_req, qos_limit \u003d self._qos_requested_and_limit(share)"},{"line_number":496,"context_line":"        protos \u003d self._qos_protocols_for_share(share)"},{"line_number":497,"context_line":"        if qos_req:"},{"line_number":498,"context_line":"            status \u003d self._qos_backend_enabled_for_path("}],"source_content_type":"text/x-python","patch_set":2,"id":"cd05c67d_c21a64bc","line":495,"updated":"2026-02-18 20:31:59.000000000","message":"Please verify if QoS is enabled before proceeding.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":492,"context_line":"        size_gb \u003d size_bytes // units.Gi"},{"line_number":493,"context_line":"        self._process_dedupe(share, backend_quota_path, False)"},{"line_number":494,"context_line":"        # QoS manage policy: presence + exact limit equality; no mutation."},{"line_number":495,"context_line":"        qos_req, qos_limit \u003d self._qos_requested_and_limit(share)"},{"line_number":496,"context_line":"        protos \u003d self._qos_protocols_for_share(share)"},{"line_number":497,"context_line":"        if qos_req:"},{"line_number":498,"context_line":"            status \u003d self._qos_backend_enabled_for_path("}],"source_content_type":"text/x-python","patch_set":2,"id":"880315e8_2ec780c6","line":495,"in_reply_to":"cd05c67d_c21a64bc","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":1106,"context_line":"        paths \u003d dedupe_settings[\"settings\"][\"paths\"]"},{"line_number":1107,"context_line":"        return paths"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":"    def _qos_read_config(self, config):"},{"line_number":1110,"context_line":"        \"\"\"Read QoS config options and reset cached dataset id.\"\"\""},{"line_number":1111,"context_line":"        enabled \u003d config.safe_get(\u0027qos_enabled\u0027)"},{"line_number":1112,"context_line":"        self.qos_enabled \u003d True if enabled is None else bool(enabled)"}],"source_content_type":"text/x-python","patch_set":2,"id":"01c5f452_2d5c9a66","line":1109,"updated":"2026-02-18 20:31:59.000000000","message":"This function does not seem necessary if you going to get values from extra-specs.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"        paths \u003d dedupe_settings[\"settings\"][\"paths\"]"},{"line_number":1107,"context_line":"        return paths"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":"    def _qos_read_config(self, config):"},{"line_number":1110,"context_line":"        \"\"\"Read QoS config options and reset cached dataset id.\"\"\""},{"line_number":1111,"context_line":"        enabled \u003d config.safe_get(\u0027qos_enabled\u0027)"},{"line_number":1112,"context_line":"        self.qos_enabled \u003d True if enabled is None else bool(enabled)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bd376792_15988dc4","line":1109,"in_reply_to":"01c5f452_2d5c9a66","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":1119,"context_line":"        \"\"\"Return list of protocols supported by share.\"\"\""},{"line_number":1120,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1121,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":1122,"context_line":"            return [\u0027nfs3\u0027, \u0027nfs4\u0027]"},{"line_number":1123,"context_line":"        if proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":1124,"context_line":"            return [\u0027smb1\u0027, \u0027smb2\u0027]"},{"line_number":1125,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":2,"id":"68b426b4_7baf75bb","line":1122,"updated":"2026-02-18 20:31:59.000000000","message":"What if the user wants QoS to be applied to only one NFS version?","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":1119,"context_line":"        \"\"\"Return list of protocols supported by share.\"\"\""},{"line_number":1120,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1121,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":1122,"context_line":"            return [\u0027nfs3\u0027, \u0027nfs4\u0027]"},{"line_number":1123,"context_line":"        if proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":1124,"context_line":"            return [\u0027smb1\u0027, \u0027smb2\u0027]"},{"line_number":1125,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f475e40_bb90c4bb","line":1122,"in_reply_to":"68b426b4_7baf75bb","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":1120,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1121,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":1122,"context_line":"            return [\u0027nfs3\u0027, \u0027nfs4\u0027]"},{"line_number":1123,"context_line":"        if proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":1124,"context_line":"            return [\u0027smb1\u0027, \u0027smb2\u0027]"},{"line_number":1125,"context_line":"        return []"},{"line_number":1126,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5be561_d91f8bfa","line":1123,"updated":"2026-02-18 20:31:59.000000000","message":"This should be changed to elif.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":1120,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1121,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"},{"line_number":1122,"context_line":"            return [\u0027nfs3\u0027, \u0027nfs4\u0027]"},{"line_number":1123,"context_line":"        if proto \u003d\u003d \u0027CIFS\u0027:"},{"line_number":1124,"context_line":"            return [\u0027smb1\u0027, \u0027smb2\u0027]"},{"line_number":1125,"context_line":"        return []"},{"line_number":1126,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2707d992_ac660e13","line":1123,"in_reply_to":"ba5be561_d91f8bfa","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":1202,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":1203,"context_line":"        return True, limit"},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"    def _qos_ensure_dataset(self):"},{"line_number":1206,"context_line":"        \"\"\"Ensure a dataset exists with metrics [\u0027path\u0027, \u0027protocol\u0027].\"\"\""},{"line_number":1207,"context_line":"        if not self.qos_enabled:"},{"line_number":1208,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"4cd8e075_991fb5bc","line":1205,"updated":"2026-02-18 20:31:59.000000000","message":"This should not be required. You can document it as a prerequisite of the dataset in the documentation page.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":1202,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":1203,"context_line":"        return True, limit"},{"line_number":1204,"context_line":""},{"line_number":1205,"context_line":"    def _qos_ensure_dataset(self):"},{"line_number":1206,"context_line":"        \"\"\"Ensure a dataset exists with metrics [\u0027path\u0027, \u0027protocol\u0027].\"\"\""},{"line_number":1207,"context_line":"        if not self.qos_enabled:"},{"line_number":1208,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fdca72e_fd43b51a","line":1205,"in_reply_to":"4cd8e075_991fb5bc","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"    def _qos_backend_enabled_for_path("},{"line_number":1249,"context_line":"            self, path_val, protos, expected_limit\u003dNone):"},{"line_number":1250,"context_line":"        def _iter_workloads():"},{"line_number":1251,"context_line":"            try:"},{"line_number":1252,"context_line":"                dresp \u003d self._powerscale_api.list_datasets()"},{"line_number":1253,"context_line":"                datasets \u003d dresp.json().get(\u0027datasets\u0027, [])"}],"source_content_type":"text/x-python","patch_set":2,"id":"16526e35_169ce294","line":1250,"updated":"2026-02-18 20:31:59.000000000","message":"This check should be performed only for the configured dataset, not for all datasets. If the user is managing a share with a QoS-enabled share type, they should provide a share that belongs to a valid dataset.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"    def _qos_backend_enabled_for_path("},{"line_number":1249,"context_line":"            self, path_val, protos, expected_limit\u003dNone):"},{"line_number":1250,"context_line":"        def _iter_workloads():"},{"line_number":1251,"context_line":"            try:"},{"line_number":1252,"context_line":"                dresp \u003d self._powerscale_api.list_datasets()"},{"line_number":1253,"context_line":"                datasets \u003d dresp.json().get(\u0027datasets\u0027, [])"}],"source_content_type":"text/x-python","patch_set":2,"id":"0871e7e4_1b649b43","line":1250,"in_reply_to":"16526e35_169ce294","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8e830beebe2663cfd58f6119d0c530de400822cc","unresolved":true,"context_lines":[{"line_number":1118,"context_line":"        paths \u003d dedupe_settings[\"settings\"][\"paths\"]"},{"line_number":1119,"context_line":"        return paths"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"    def _qos_protocols_for_share(self, share):"},{"line_number":1122,"context_line":"        \"\"\"Return list of protocols to apply QoS for this share.\"\"\""},{"line_number":1123,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1124,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"a63853ec_b2fdfaa5","line":1121,"updated":"2026-02-26 15:16:41.000000000","message":"Any particular reason we need to evaluate the protocols to apply qos for share?","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"d06370b8c42abaddfdeca8f64ee838395f069b7f","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"        paths \u003d dedupe_settings[\"settings\"][\"paths\"]"},{"line_number":1119,"context_line":"        return paths"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"    def _qos_protocols_for_share(self, share):"},{"line_number":1122,"context_line":"        \"\"\"Return list of protocols to apply QoS for this share.\"\"\""},{"line_number":1123,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1124,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1c12b89b_56d9c1b4","line":1121,"in_reply_to":"0d07c940_108f8cc3","updated":"2026-03-03 05:26:20.000000000","message":"Acknowledged","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"392f7e06caff0aceb39f0d3b11648509a633169b","unresolved":true,"context_lines":[{"line_number":1118,"context_line":"        paths \u003d dedupe_settings[\"settings\"][\"paths\"]"},{"line_number":1119,"context_line":"        return paths"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"    def _qos_protocols_for_share(self, share):"},{"line_number":1122,"context_line":"        \"\"\"Return list of protocols to apply QoS for this share.\"\"\""},{"line_number":1123,"context_line":"        proto \u003d (share.get(\u0027share_proto\u0027) or \u0027\u0027).upper()"},{"line_number":1124,"context_line":"        if proto \u003d\u003d \u0027NFS\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0d07c940_108f8cc3","line":1121,"in_reply_to":"a63853ec_b2fdfaa5","updated":"2026-03-02 12:03:29.000000000","message":"So, what happens in QoS within PowerScale is that, instead of enforcing QoS on the specific protocol [NFS/CIFS], it does on protocol versions, and expects protocol version as input, so we have added a protocol version extra spec as well for the respective protocols [CIFS/NFS]. If the user isnt adding that extra spec, and passes directly the protocol in user command, it will enforce QoS in both the available versions supported by PowerScale QoS.","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"790b3b39f0f189c42b62b60b7e7acbd5c6e3d068","unresolved":true,"context_lines":[{"line_number":595,"context_line":"        LOG.debug(\u0027Reading configuration parameters for Manila\u0027"},{"line_number":596,"context_line":"                  \u0027 Dell PowerScale Driver.\u0027)"},{"line_number":597,"context_line":"        config \u003d emc_share_driver.configuration"},{"line_number":598,"context_line":"        self._qos_dataset_id \u003d None"},{"line_number":599,"context_line":"        self._server \u003d config.safe_get(\"emc_nas_server\")"},{"line_number":600,"context_line":"        self._port \u003d config.safe_get(\"emc_nas_server_port\")"},{"line_number":601,"context_line":"        self._username \u003d config.safe_get(\"emc_nas_login\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"941397dd_5c41e966","line":598,"updated":"2026-04-17 07:55:11.000000000","message":"Why do we need to cache the qos_dataset_id?","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"aa4399b145c000cd723f6b93707ace12c39fea51","unresolved":false,"context_lines":[{"line_number":595,"context_line":"        LOG.debug(\u0027Reading configuration parameters for Manila\u0027"},{"line_number":596,"context_line":"                  \u0027 Dell PowerScale Driver.\u0027)"},{"line_number":597,"context_line":"        config \u003d emc_share_driver.configuration"},{"line_number":598,"context_line":"        self._qos_dataset_id \u003d None"},{"line_number":599,"context_line":"        self._server \u003d config.safe_get(\"emc_nas_server\")"},{"line_number":600,"context_line":"        self._port \u003d config.safe_get(\"emc_nas_server_port\")"},{"line_number":601,"context_line":"        self._username \u003d config.safe_get(\"emc_nas_login\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"253ed951_1021e62c","line":598,"in_reply_to":"941397dd_5c41e966","updated":"2026-05-04 09:51:12.000000000","message":"Done","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f58bb4191aefdb7fd0a44cd81e8bfae5ddce1d1","unresolved":true,"context_lines":[{"line_number":1258,"context_line":"        LOG.error(\u0027QoS dataset %s not found on OneFS.\u0027, ds_name)"},{"line_number":1259,"context_line":"        return None"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"    def _qos_backend_enabled_for_path(self, dataset_id, path_val, protos,"},{"line_number":1262,"context_line":"                                      expected_limit\u003dNone):"},{"line_number":1263,"context_line":"        try:"},{"line_number":1264,"context_line":"            wresp \u003d self._powerscale_api.list_workloads(dataset_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ce572c5a_47da6360","line":1261,"range":{"start_line":1261,"start_character":8,"end_line":1261,"end_character":37},"updated":"2026-08-17 15:31:41.000000000","message":"I know we haven\u0027t been enforcing typed returns, but it\u0027s confusing when a method can return either a string or a boolean. Maybe we should reconsider this method and make it either return a boolean or a string and let the callers decide what to do with it.","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"95559fe6adc3b2624d7c3ab77adb642beef08b53","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"        LOG.error(\u0027QoS dataset %s not found on OneFS.\u0027, ds_name)"},{"line_number":1259,"context_line":"        return None"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"    def _qos_backend_enabled_for_path(self, dataset_id, path_val, protos,"},{"line_number":1262,"context_line":"                                      expected_limit\u003dNone):"},{"line_number":1263,"context_line":"        try:"},{"line_number":1264,"context_line":"            wresp \u003d self._powerscale_api.list_workloads(dataset_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"243d0d97_921f6aab","line":1261,"range":{"start_line":1261,"start_character":8,"end_line":1261,"end_character":37},"in_reply_to":"ce572c5a_47da6360","updated":"2026-08-18 08:39:18.000000000","message":"Done","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"de0128456fddc7391469afc720c738a1a984b3d0","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # QoS: ensure workload limits if specified in qos type specs"},{"line_number":153,"context_line":"        qos_req, limit \u003d self._qos_requested_and_limit(share)"},{"line_number":154,"context_line":"        if qos_req:"},{"line_number":155,"context_line":"            dataset_id \u003d self._qos_ensure_dataset(share)"},{"line_number":156,"context_line":"            if not dataset_id:"}],"source_content_type":"text/x-python","patch_set":9,"id":"279240d0_45f452c0","line":153,"updated":"2026-08-18 12:06:44.000000000","message":"Dont we need the capability to apply qos for the shares created from snapshots?","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"bfd41ee9f067935f459960ed9baa511bb9947cff","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # QoS: ensure workload limits if specified in qos type specs"},{"line_number":153,"context_line":"        qos_req, limit \u003d self._qos_requested_and_limit(share)"},{"line_number":154,"context_line":"        if qos_req:"},{"line_number":155,"context_line":"            dataset_id \u003d self._qos_ensure_dataset(share)"},{"line_number":156,"context_line":"            if not dataset_id:"}],"source_content_type":"text/x-python","patch_set":9,"id":"58c5dbe3_73fadab0","line":153,"in_reply_to":"0fb3df42_3b0404e6","updated":"2026-08-18 16:54:21.000000000","message":"Acknowledged","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"58fd6dcecd47be9f1ccb4acf7b1a2ba92c4f4c95","unresolved":true,"context_lines":[{"line_number":150,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # QoS: ensure workload limits if specified in qos type specs"},{"line_number":153,"context_line":"        qos_req, limit \u003d self._qos_requested_and_limit(share)"},{"line_number":154,"context_line":"        if qos_req:"},{"line_number":155,"context_line":"            dataset_id \u003d self._qos_ensure_dataset(share)"},{"line_number":156,"context_line":"            if not dataset_id:"}],"source_content_type":"text/x-python","patch_set":9,"id":"0fb3df42_3b0404e6","line":153,"in_reply_to":"279240d0_45f452c0","updated":"2026-08-18 12:44:51.000000000","message":"create_share_from_snapshot (line 173) calls self.create_share(context, share, share_server), which already contains the QoS logic at lines 152-164. QoS is already applied to shares created from snapshots.","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"de0128456fddc7391469afc720c738a1a984b3d0","unresolved":true,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Retrieve stats info from share.\"\"\""},{"line_number":649,"context_line":"        stats_dict[\u0027driver_version\u0027] \u003d VERSION"},{"line_number":650,"context_line":"        stats_dict[\u0027storage_protocol\u0027] \u003d \u0027NFS_CIFS\u0027"},{"line_number":651,"context_line":"        stats_dict[\u0027qos_type_support\u0027] \u003d True"},{"line_number":652,"context_line":"        # PowerScale does not support pools."},{"line_number":653,"context_line":"        # To align with manila scheduler \u0027pool-aware\u0027 strategic,"},{"line_number":654,"context_line":"        # report with one pool structure."}],"source_content_type":"text/x-python","patch_set":9,"id":"b4a2c287_0d859020","line":651,"updated":"2026-08-18 12:06:44.000000000","message":"does qos_type_support depend on version of platform?","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"bfd41ee9f067935f459960ed9baa511bb9947cff","unresolved":true,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Retrieve stats info from share.\"\"\""},{"line_number":649,"context_line":"        stats_dict[\u0027driver_version\u0027] \u003d VERSION"},{"line_number":650,"context_line":"        stats_dict[\u0027storage_protocol\u0027] \u003d \u0027NFS_CIFS\u0027"},{"line_number":651,"context_line":"        stats_dict[\u0027qos_type_support\u0027] \u003d True"},{"line_number":652,"context_line":"        # PowerScale does not support pools."},{"line_number":653,"context_line":"        # To align with manila scheduler \u0027pool-aware\u0027 strategic,"},{"line_number":654,"context_line":"        # report with one pool structure."}],"source_content_type":"text/x-python","patch_set":9,"id":"b8365b63_6878a225","line":651,"in_reply_to":"a572261d_07d617b4","updated":"2026-08-18 16:54:21.000000000","message":"Okay. May be adding a one liner to the release notes would be helpful in that case.","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"58fd6dcecd47be9f1ccb4acf7b1a2ba92c4f4c95","unresolved":true,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Retrieve stats info from share.\"\"\""},{"line_number":649,"context_line":"        stats_dict[\u0027driver_version\u0027] \u003d VERSION"},{"line_number":650,"context_line":"        stats_dict[\u0027storage_protocol\u0027] \u003d \u0027NFS_CIFS\u0027"},{"line_number":651,"context_line":"        stats_dict[\u0027qos_type_support\u0027] \u003d True"},{"line_number":652,"context_line":"        # PowerScale does not support pools."},{"line_number":653,"context_line":"        # To align with manila scheduler \u0027pool-aware\u0027 strategic,"},{"line_number":654,"context_line":"        # report with one pool structure."}],"source_content_type":"text/x-python","patch_set":9,"id":"a572261d_07d617b4","line":651,"in_reply_to":"b4a2c287_0d859020","updated":"2026-08-18 12:44:51.000000000","message":"Yes, QoS support does depend on the platform version.\nHowever, the documentation already specifies OneFS 9.5 or higher as a requirement for QoS support. The driver assumes the backend meets the documented minimum requirements","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"2b3639252eb2546c509931e48a7190b6f4398494","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Retrieve stats info from share.\"\"\""},{"line_number":649,"context_line":"        stats_dict[\u0027driver_version\u0027] \u003d VERSION"},{"line_number":650,"context_line":"        stats_dict[\u0027storage_protocol\u0027] \u003d \u0027NFS_CIFS\u0027"},{"line_number":651,"context_line":"        stats_dict[\u0027qos_type_support\u0027] \u003d True"},{"line_number":652,"context_line":"        # PowerScale does not support pools."},{"line_number":653,"context_line":"        # To align with manila scheduler \u0027pool-aware\u0027 strategic,"},{"line_number":654,"context_line":"        # report with one pool structure."}],"source_content_type":"text/x-python","patch_set":9,"id":"ee69a9b1_43b22406","line":651,"in_reply_to":"b8365b63_6878a225","updated":"2026-08-19 05:23:25.000000000","message":"Done","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b966cd67f6dbd4be37d620a05c476d41a432d163","unresolved":true,"context_lines":[{"line_number":306,"context_line":"    def delete_share(self, context, share, share_server):"},{"line_number":307,"context_line":"        \"\"\"Is called to remove share.\"\"\""},{"line_number":308,"context_line":"        LOG.debug(f\u0027Deleting {share[\"share_proto\"]} share.\u0027)"},{"line_number":309,"context_line":"        # QoS: remove workloads for this path (best-effort)"},{"line_number":310,"context_line":"        dataset_id \u003d self._qos_ensure_dataset(share)"},{"line_number":311,"context_line":"        export_path \u003d self._get_container_path(share, check_path\u003dTrue)"},{"line_number":312,"context_line":"        protos \u003d self._qos_protocols_for_share(share)"}],"source_content_type":"text/x-python","patch_set":11,"id":"951d6761_99a155ff","line":309,"updated":"2026-08-24 05:59:52.000000000","message":"This cleanup is commented \"best-effort\", but it isn\u0027t: `list_workloads`, raises `ShareBackendException` on any non-200 response. Only the per-workload `delete_workload` call is wrapped in try/except. Because this runs before the actual `_delete_nfs_share`/`_delete_cifs_share`, a transient QoS/PAPI hiccup would abort `delete_share` entirely and strand the share on the backend. Maybe wrap the whole QoS cleanup so a failure logs a warning and lets the deletion proceed.","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ce45323886e0fb31727a322c99d37472ac6fdb38","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    def delete_share(self, context, share, share_server):"},{"line_number":307,"context_line":"        \"\"\"Is called to remove share.\"\"\""},{"line_number":308,"context_line":"        LOG.debug(f\u0027Deleting {share[\"share_proto\"]} share.\u0027)"},{"line_number":309,"context_line":"        # QoS: remove workloads for this path (best-effort)"},{"line_number":310,"context_line":"        dataset_id \u003d self._qos_ensure_dataset(share)"},{"line_number":311,"context_line":"        export_path \u003d self._get_container_path(share, check_path\u003dTrue)"},{"line_number":312,"context_line":"        protos \u003d self._qos_protocols_for_share(share)"}],"source_content_type":"text/x-python","patch_set":11,"id":"4ad06fe4_190ce353","line":309,"in_reply_to":"951d6761_99a155ff","updated":"2026-08-24 10:56:09.000000000","message":"Wrapped QoS cleanup in try/except Exception with warning log","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b966cd67f6dbd4be37d620a05c476d41a432d163","unresolved":true,"context_lines":[{"line_number":1195,"context_line":"                except Exception:"},{"line_number":1196,"context_line":"                    LOG.warning(\u0027QoS: failed to delete workload %s\u0027, wid)"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"    def _qos_get_specs(self, share):"},{"line_number":1199,"context_line":"        \"\"\"Return qos type specs for this share via qos_types module.\"\"\""},{"line_number":1200,"context_line":"        return qos_types.get_specs_from_share(share)"},{"line_number":1201,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f39153a_7c872bcd","line":1198,"updated":"2026-08-24 05:59:52.000000000","message":"`_qos_get_specs` -\u003e `qos_types.get_specs_from_share` issues a `qos_type_get` DB query on every call, fetch the specs once at the top of each operation and passing them down to avoid the redundant DB round-trips.","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ce45323886e0fb31727a322c99d37472ac6fdb38","unresolved":false,"context_lines":[{"line_number":1195,"context_line":"                except Exception:"},{"line_number":1196,"context_line":"                    LOG.warning(\u0027QoS: failed to delete workload %s\u0027, wid)"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"    def _qos_get_specs(self, share):"},{"line_number":1199,"context_line":"        \"\"\"Return qos type specs for this share via qos_types module.\"\"\""},{"line_number":1200,"context_line":"        return qos_types.get_specs_from_share(share)"},{"line_number":1201,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"26b92f5b_7f4421f4","line":1198,"in_reply_to":"9f39153a_7c872bcd","updated":"2026-08-24 10:56:09.000000000","message":"Added specs\u003dNone parameter to _qos_requested_and_limit, _qos_ensure_dataset, _qos_protocols_for_share","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b966cd67f6dbd4be37d620a05c476d41a432d163","unresolved":true,"context_lines":[{"line_number":1272,"context_line":"            return \u0027disabled\u0027 if expected_limit is None else \u0027absent\u0027"},{"line_number":1273,"context_line":""},{"line_number":1274,"context_line":"        for w in workloads:"},{"line_number":1275,"context_line":"            mv \u003d w.get(\u0027metric_values\u0027, {}) or w.get(\u0027metricValues\u0027, {})"},{"line_number":1276,"context_line":"            if mv.get(\u0027path\u0027) !\u003d path_val:"},{"line_number":1277,"context_line":"                continue"},{"line_number":1278,"context_line":"            proto \u003d mv.get(\u0027protocol\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"0a13f8e7_7862c756","line":1275,"updated":"2026-08-24 05:59:52.000000000","message":"does OneFS returns camelCase, or snake_case? `metric_values`/`metricValues`, `protocol_ops`/`protocolOps`","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ce45323886e0fb31727a322c99d37472ac6fdb38","unresolved":false,"context_lines":[{"line_number":1272,"context_line":"            return \u0027disabled\u0027 if expected_limit is None else \u0027absent\u0027"},{"line_number":1273,"context_line":""},{"line_number":1274,"context_line":"        for w in workloads:"},{"line_number":1275,"context_line":"            mv \u003d w.get(\u0027metric_values\u0027, {}) or w.get(\u0027metricValues\u0027, {})"},{"line_number":1276,"context_line":"            if mv.get(\u0027path\u0027) !\u003d path_val:"},{"line_number":1277,"context_line":"                continue"},{"line_number":1278,"context_line":"            proto \u003d mv.get(\u0027protocol\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"17420ba2_f01f7899","line":1275,"in_reply_to":"0a13f8e7_7862c756","updated":"2026-08-24 10:56:09.000000000","message":"Done","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"}],"manila/share/drivers/dell_emc/plugins/powerscale/powerscale_api.py":[{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":599,"context_line":"        else:"},{"line_number":600,"context_line":"            r.raise_for_status()"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def perf_settings(self):"},{"line_number":603,"context_line":"        \"\"\"Return performance settings (includes protocol_ops flag).\"\"\""},{"line_number":604,"context_line":"        url \u003d \u0027{0}/platform/19/performance/settings\u0027.format(self.host_url)"},{"line_number":605,"context_line":"        resp \u003d self.send_get_request(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"592c7c21_56e13a2a","line":602,"updated":"2026-02-18 20:31:59.000000000","message":"This is not required. This is a one-time operation that can be documented as a prerequisite. The user should configure the dataset with the metric values specified in the documentation.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":599,"context_line":"        else:"},{"line_number":600,"context_line":"            r.raise_for_status()"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def perf_settings(self):"},{"line_number":603,"context_line":"        \"\"\"Return performance settings (includes protocol_ops flag).\"\"\""},{"line_number":604,"context_line":"        url \u003d \u0027{0}/platform/19/performance/settings\u0027.format(self.host_url)"},{"line_number":605,"context_line":"        resp \u003d self.send_get_request(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"0049dc01_34c99e83","line":602,"in_reply_to":"592c7c21_56e13a2a","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":614,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":615,"context_line":"        return resp"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def list_datasets(self):"},{"line_number":618,"context_line":"        \"\"\"List SmartQoS performance datasets.\"\"\""},{"line_number":619,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":620,"context_line":"        resp \u003d self.send_get_request(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"15aa04e6_f595348b","line":617,"updated":"2026-02-18 20:31:59.000000000","message":"Same like above L#602.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":615,"context_line":"        return resp"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def list_datasets(self):"},{"line_number":618,"context_line":"        \"\"\"List SmartQoS performance datasets.\"\"\""},{"line_number":619,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":620,"context_line":"        resp \u003d self.send_get_request(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2283dcba_7583bafd","line":617,"in_reply_to":"15aa04e6_f595348b","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7ac095f30e7db6f479b92ac1e596669cf00ba003","unresolved":true,"context_lines":[{"line_number":628,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":629,"context_line":"        return resp"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def create_dataset(self, name, metrics):"},{"line_number":632,"context_line":"        \"\"\"Create dataset with specified metrics.\"\"\""},{"line_number":633,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":634,"context_line":"        payload \u003d {\u0027name\u0027: name, \u0027metrics\u0027: metrics}"}],"source_content_type":"text/x-python","patch_set":2,"id":"946e4bb4_01207e4d","line":631,"updated":"2026-02-18 20:31:59.000000000","message":"Same like above L#602.","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"a27fa6b5bea6bfaeab71aa84f3e48e4dd2610c73","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":629,"context_line":"        return resp"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"    def create_dataset(self, name, metrics):"},{"line_number":632,"context_line":"        \"\"\"Create dataset with specified metrics.\"\"\""},{"line_number":633,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":634,"context_line":"        payload \u003d {\u0027name\u0027: name, \u0027metrics\u0027: metrics}"}],"source_content_type":"text/x-python","patch_set":2,"id":"c72907f9_4212d13e","line":631,"in_reply_to":"946e4bb4_01207e4d","updated":"2026-02-23 12:49:37.000000000","message":"Done","commit_id":"91eb003fbba180a33bb3779fc09d8088ef25783b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8e830beebe2663cfd58f6119d0c530de400822cc","unresolved":true,"context_lines":[{"line_number":657,"context_line":"        )"},{"line_number":658,"context_line":"        payload \u003d {\u0027limits\u0027: {\u0027protocol_ops\u0027: int(protocol_ops)}}"},{"line_number":659,"context_line":"        resp \u003d self.send_put_request(url, data\u003dpayload)"},{"line_number":660,"context_line":"        if resp.status_code not in (200, 204):"},{"line_number":661,"context_line":"            msg \u003d ("},{"line_number":662,"context_line":"                \u0027PUT workload limit failed. status\u003d{0} body\u003d{1}\u0027.format("},{"line_number":663,"context_line":"                    resp.status_code, getattr(resp, \u0027text\u0027, \u0027\u0027)"},{"line_number":664,"context_line":"                )"},{"line_number":665,"context_line":"            )"},{"line_number":666,"context_line":"            LOG.error(msg)"},{"line_number":667,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":668,"context_line":"        return resp"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    def delete_workload(self, dataset_id, workload_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"c4bf32a9_29765b1d","line":667,"range":{"start_line":660,"start_character":4,"end_line":667,"end_character":58},"updated":"2026-02-26 15:16:41.000000000","message":"IMO, we should have the error code handling done in a common util which can throw a generic error and the actual error should be thrown from the method calling the REST API methods","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"d06370b8c42abaddfdeca8f64ee838395f069b7f","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        )"},{"line_number":658,"context_line":"        payload \u003d {\u0027limits\u0027: {\u0027protocol_ops\u0027: int(protocol_ops)}}"},{"line_number":659,"context_line":"        resp \u003d self.send_put_request(url, data\u003dpayload)"},{"line_number":660,"context_line":"        if resp.status_code not in (200, 204):"},{"line_number":661,"context_line":"            msg \u003d ("},{"line_number":662,"context_line":"                \u0027PUT workload limit failed. status\u003d{0} body\u003d{1}\u0027.format("},{"line_number":663,"context_line":"                    resp.status_code, getattr(resp, \u0027text\u0027, \u0027\u0027)"},{"line_number":664,"context_line":"                )"},{"line_number":665,"context_line":"            )"},{"line_number":666,"context_line":"            LOG.error(msg)"},{"line_number":667,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":668,"context_line":"        return resp"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    def delete_workload(self, dataset_id, workload_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a639d0d_c7d92a89","line":667,"range":{"start_line":660,"start_character":4,"end_line":667,"end_character":58},"in_reply_to":"c4bf32a9_29765b1d","updated":"2026-03-03 05:26:20.000000000","message":"May be you can handle this in a follow up PATCH. But IMO it is important as the handling with each method adds more code manageability challenges.","commit_id":"b8ba6fa5fad7b8698afae7202dce903ac997b58e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"790b3b39f0f189c42b62b60b7e7acbd5c6e3d068","unresolved":true,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def list_datasets(self):"},{"line_number":603,"context_line":"        \"\"\"List SmartQoS performance datasets.\"\"\""},{"line_number":604,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":605,"context_line":"        resp \u003d self.send_get_request(url)"},{"line_number":606,"context_line":"        if resp.status_code !\u003d 200:"},{"line_number":607,"context_line":"            msg \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"1a25cfea_0ab4c912","line":604,"updated":"2026-04-17 07:55:11.000000000","message":"This may be a tech debt item, but the versions of APIs should come from a constant. Managing versions in hard coded URI paths is difficult. ideally the version should be maintained per feature may be? And based on feature enablement we can figure out which version should be appended. This is just a suggestion. Would like to understand the thought process here.","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"aa4399b145c000cd723f6b93707ace12c39fea51","unresolved":false,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def list_datasets(self):"},{"line_number":603,"context_line":"        \"\"\"List SmartQoS performance datasets.\"\"\""},{"line_number":604,"context_line":"        url \u003d \u0027{0}/platform/19/performance/datasets\u0027.format(self.host_url)"},{"line_number":605,"context_line":"        resp \u003d self.send_get_request(url)"},{"line_number":606,"context_line":"        if resp.status_code !\u003d 200:"},{"line_number":607,"context_line":"            msg \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"29560979_cb7ceffd","line":604,"in_reply_to":"1a25cfea_0ab4c912","updated":"2026-05-04 09:51:12.000000000","message":"Done","commit_id":"c338abc26b9e49ae13d6b6a17e0084fd5924ba00"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b966cd67f6dbd4be37d620a05c476d41a432d163","unresolved":true,"context_lines":[{"line_number":535,"context_line":"            login \u003d self.create_session(self.username, self.password)"},{"line_number":536,"context_line":"            # Resend the request once login is successful"},{"line_number":537,"context_line":"            if login:"},{"line_number":538,"context_line":"                cookies \u003d {\u0027isisessid\u0027: self.session_token}"},{"line_number":539,"context_line":"                self._log_request(method, url, data, params)"},{"line_number":540,"context_line":"                r \u003d self.session.request("},{"line_number":541,"context_line":"                    method, url, cookies\u003dcookies, headers\u003dheaders, data\u003ddata,"}],"source_content_type":"text/x-python","patch_set":11,"id":"2fda0d26_d742c961","line":538,"updated":"2026-08-24 05:59:52.000000000","message":"this is a bug fix unrelated to QoS? Could it go in its own patch with a Closes-Bug tag? That keeps it independently reviewable and backportable rather than riding on a feature blueprint.","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ce45323886e0fb31727a322c99d37472ac6fdb38","unresolved":false,"context_lines":[{"line_number":535,"context_line":"            login \u003d self.create_session(self.username, self.password)"},{"line_number":536,"context_line":"            # Resend the request once login is successful"},{"line_number":537,"context_line":"            if login:"},{"line_number":538,"context_line":"                cookies \u003d {\u0027isisessid\u0027: self.session_token}"},{"line_number":539,"context_line":"                self._log_request(method, url, data, params)"},{"line_number":540,"context_line":"                r \u003d self.session.request("},{"line_number":541,"context_line":"                    method, url, cookies\u003dcookies, headers\u003dheaders, data\u003ddata,"}],"source_content_type":"text/x-python","patch_set":11,"id":"f142d984_1e5d11e0","line":538,"in_reply_to":"2fda0d26_d742c961","updated":"2026-08-24 10:56:09.000000000","message":"Removed the bug fix line cookies \u003d {\u0027isisessid\u0027: self.session_token} from this patch and Kept existing re-auth logic (matches master)","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b966cd67f6dbd4be37d620a05c476d41a432d163","unresolved":true,"context_lines":[{"line_number":612,"context_line":"        resp \u003d self.send_get_request(url)"},{"line_number":613,"context_line":"        if resp.status_code !\u003d 200:"},{"line_number":614,"context_line":"            msg \u003d ("},{"line_number":615,"context_line":"                \u0027GET performance datasets failed. status\u003d{0} body\u003d{1}\u0027.format("},{"line_number":616,"context_line":"                    resp.status_code, getattr(resp, \u0027text\u0027, \u0027\u0027)"},{"line_number":617,"context_line":"                )"},{"line_number":618,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":11,"id":"525af871_0b72d2d8","line":615,"updated":"2026-08-24 05:59:52.000000000","message":"Please wrap these for i18n consistency with `_()`","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"ce45323886e0fb31727a322c99d37472ac6fdb38","unresolved":false,"context_lines":[{"line_number":612,"context_line":"        resp \u003d self.send_get_request(url)"},{"line_number":613,"context_line":"        if resp.status_code !\u003d 200:"},{"line_number":614,"context_line":"            msg \u003d ("},{"line_number":615,"context_line":"                \u0027GET performance datasets failed. status\u003d{0} body\u003d{1}\u0027.format("},{"line_number":616,"context_line":"                    resp.status_code, getattr(resp, \u0027text\u0027, \u0027\u0027)"},{"line_number":617,"context_line":"                )"},{"line_number":618,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":11,"id":"3c8ec5f5_0db10c37","line":615,"in_reply_to":"525af871_0b72d2d8","updated":"2026-08-24 10:56:09.000000000","message":"Wrapped 5 error messages in list_datasets, list_workloads, create_workload, update_workload_limit, delete_workload with _()","commit_id":"1969c0b620bb26518a0476c2183b34344f85511b"}],"manila/tests/share/drivers/dell_emc/plugins/powerscale/test_powerscale_api.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f58bb4191aefdb7fd0a44cd81e8bfae5ddce1d1","unresolved":true,"context_lines":[{"line_number":1452,"context_line":"        )"},{"line_number":1453,"context_line":"        mock_response.raise_for_status.assert_called_once()"},{"line_number":1454,"context_line":""},{"line_number":1455,"context_line":"    def test_delete_workload_success_204(self):"},{"line_number":1456,"context_line":"        resp \u003d mock.Mock()"},{"line_number":1457,"context_line":"        resp.status_code \u003d 204"},{"line_number":1458,"context_line":"        self.powerscale_api.send_delete_request \u003d mock.MagicMock("},{"line_number":1459,"context_line":"            return_value\u003dresp"},{"line_number":1460,"context_line":"        )"},{"line_number":1461,"context_line":"        result \u003d self.powerscale_api.delete_workload(1, 100)"},{"line_number":1462,"context_line":"        self.assertEqual(resp, result)"},{"line_number":1463,"context_line":""},{"line_number":1464,"context_line":"    def test_list_datasets_success(self):"},{"line_number":1465,"context_line":"        resp \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"afa7a619_ad126b66","line":1462,"range":{"start_line":1455,"start_character":4,"end_line":1462,"end_character":38},"updated":"2026-08-17 15:31:41.000000000","message":"this test is identical to test_delete_workload_success - we should either drop one of them or repurpose the other.","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"95559fe6adc3b2624d7c3ab77adb642beef08b53","unresolved":false,"context_lines":[{"line_number":1452,"context_line":"        )"},{"line_number":1453,"context_line":"        mock_response.raise_for_status.assert_called_once()"},{"line_number":1454,"context_line":""},{"line_number":1455,"context_line":"    def test_delete_workload_success_204(self):"},{"line_number":1456,"context_line":"        resp \u003d mock.Mock()"},{"line_number":1457,"context_line":"        resp.status_code \u003d 204"},{"line_number":1458,"context_line":"        self.powerscale_api.send_delete_request \u003d mock.MagicMock("},{"line_number":1459,"context_line":"            return_value\u003dresp"},{"line_number":1460,"context_line":"        )"},{"line_number":1461,"context_line":"        result \u003d self.powerscale_api.delete_workload(1, 100)"},{"line_number":1462,"context_line":"        self.assertEqual(resp, result)"},{"line_number":1463,"context_line":""},{"line_number":1464,"context_line":"    def test_list_datasets_success(self):"},{"line_number":1465,"context_line":"        resp \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":8,"id":"34f61a01_68e5a7ed","line":1462,"range":{"start_line":1455,"start_character":4,"end_line":1462,"end_character":38},"in_reply_to":"afa7a619_ad126b66","updated":"2026-08-18 08:39:18.000000000","message":"Done","commit_id":"bf33723318bd50ee6cab5a2945c15eae35ab74ec"}],"releasenotes/notes/bp-dell-powerscale-qos-support-77fe744e7e4d216d.yaml":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"bfd41ee9f067935f459960ed9baa511bb9947cff","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for QoS metrics for Dell PowerScale manila driver."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"21958d70_5b4678ef","line":4,"updated":"2026-08-18 16:54:21.000000000","message":"Release notes can be more detailed about releases supported and operation support IMO. A one liner release note is probably not helping operators who go through the release documentation.","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"2b3639252eb2546c509931e48a7190b6f4398494","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for QoS metrics for Dell PowerScale manila driver."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"d9726fb3_fd2dcffc","line":4,"in_reply_to":"21958d70_5b4678ef","updated":"2026-08-19 05:23:25.000000000","message":"Done","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"baa09f046492d3d988b0f8ecf94ca54d55f811d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for QoS metrics for Dell PowerScale manila driver."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"b8661468_15ef79c5","line":4,"in_reply_to":"d9726fb3_fd2dcffc","updated":"2026-08-19 06:12:45.000000000","message":"A detailed instruction on how to use this feature is however added in the PowerScale documentation page.\nhttps://review.opendev.org/c/openstack/manila/+/976101/10/doc/source/configuration/shared-file-systems/drivers/dell-emc-powerscale-driver.rst","commit_id":"9e683f34e1314c4eb7f7d4476b8c5f67bc9e40e3"}]}
