)]}'
{"/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"}],"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"}],"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"}]}
