)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"21115f16428ec1162ed053d529f386651c8d5cd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e223c2ad_74b3848c","updated":"2025-04-16 23:21:11.000000000","message":"Hey Kiran, have a couple of comments inline, please take a look.\nIn the bug, there is a statement: It is setting the snapshot policy to what is defined in share type extra specs (currently usually none). But with the current implementation, what if there is something set in the share type extra spec now?","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fed5f7f995090246883efb6404ca74de3a4339f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6ad09cd8_b7b2d95f","in_reply_to":"29d5d376_2ee38963","updated":"2025-04-25 00:09:11.000000000","message":"not just share creation, no. \n\n\"Manage\", \"Migration\" are also opportunities for the share driver to enforce extra-specifications. So what you\u0027re implementing could be against what the cloud administrator expects.\n\n\nWhat do you mean by \"currently usually none\" in the statement Carlos calls out above?\n\nWhat is none? \n\nif there\u0027s no \"snapshot_policy\" extra-spec currently the driver doesn\u0027t set anything - effectively, it won\u0027t modify what\u0027s there:\n\nhttps://github.com/openstack/manila/blob/5fadf50c80dddd6c1cb167fd1d10debd5092fe0e/manila/share/drivers/netapp/dataontap/client/client_cmode.py#L2772-L2775","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"91ab07a09adc66cf485c9dfb80ec91055a4c776a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d8c75cf7_0faa85c3","in_reply_to":"57708047_7df06d8b","updated":"2025-06-22 08:02:01.000000000","message":"Done","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"ce3af8fb06e05b7ad0fa725356c73be88e861602","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df88d655_085f046e","in_reply_to":"6ad09cd8_b7b2d95f","updated":"2025-04-25 09:48:22.000000000","message":"Let me jump in:\n\"currently usually none\" refers to our setting: `netapp:snapshot_policy : none` in the extra specs. We explicitly set to have no snapshot policy, otherwise we would get some default policy by NetApp ONTAP, that would configure some unwanted snapshot schedules.\n\nI agree, as cloud admin I may want to use manage/migration to make sure that the share is following the setting in extra spec. And we want that, too. Just with the addition on top that the exception list should be respected.\nAfter all as cloud_admin I\u0027m in control of the exception list, too.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b86ea840d6041460197de12b80c4b18872e0d3c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"57708047_7df06d8b","in_reply_to":"8eddb6d4_20ae66e6","updated":"2025-05-29 09:59:26.000000000","message":"@gouthampravi@gmail.com wdyt ?","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"08370de6b2d9869d12e34fcb14a3255d708126f3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8eddb6d4_20ae66e6","in_reply_to":"df88d655_085f046e","updated":"2025-05-28 20:50:52.000000000","message":"Got it, thanks for sharing your thoughts. I\u0027d be okay with this change merging then","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"974230073d8581998177592e2527da27abeb1902","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"29d5d376_2ee38963","in_reply_to":"e223c2ad_74b3848c","updated":"2025-04-17 11:38:40.000000000","message":"if share-type extra-spec set some policy, that will be applied during share create. This can be later changed via metadata as well. But when share is migrated(or managed), we need to fetch that applied policy and reapply instead of setting from extra-spec (because if this is none, we lost it. If not none, this means that value is already set during share-create).","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"e2040ebeb651a109543181e1c154c3fe3d8da079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d1f06673_0b29ecd7","updated":"2025-06-22 07:47:03.000000000","message":"Changes are looks good for me, agree on Maurice comments. Kiran, I added one query, could you please answer this.","commit_id":"9bdc11e400809d70d02f7b791be4dd2c9247cf45"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"6f5ec3d6ba76066b4b4f3be720141ae33dbb9e68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3e7a787c_c769f719","updated":"2025-05-30 07:44:29.000000000","message":"recheck","commit_id":"9bdc11e400809d70d02f7b791be4dd2c9247cf45"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b6ca8802dba25c2a65cbae7cda6b5e65b19d0e23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0a3e69e6_cc5730c1","updated":"2025-07-10 20:03:14.000000000","message":"Thanks for working on this change, please take a look at the comments inline","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6ba1c9b837ee69a10063c4eec5b39948047e773e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"995a7b72_dfc3ce10","updated":"2025-08-01 12:29:25.000000000","message":"LGTM ..!","commit_id":"a7b2b1abd54d2be3963b0597d03bc099d7bb95b6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7703b33b6764bbcf1b8547d8ed5dd16cd97aaffb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7a281f32_2c3df5ef","updated":"2025-07-15 19:17:49.000000000","message":"LGTM, thanks Kiran","commit_id":"a7b2b1abd54d2be3963b0597d03bc099d7bb95b6"}],"manila/share/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b6ca8802dba25c2a65cbae7cda6b5e65b19d0e23","unresolved":true,"context_lines":[{"line_number":870,"context_line":"            \u0027fields\u0027: \u0027snapshot_directory_access_enabled,snapshot_policy.name\u0027"},{"line_number":871,"context_line":"        }"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        res \u003d self.send_request("},{"line_number":874,"context_line":"            f\u0027/storage/volumes/{vol_uuid}\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        snap_attributes \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"89d75ca8_f0ce66df","line":873,"range":{"start_line":873,"start_character":8,"end_line":873,"end_character":11},"updated":"2025-07-10 20:03:14.000000000","message":"nit: response\nshould be small enough, not abbreviating keeps it more readable","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"a3e85abdd61f81e90bd84b5edf1ee4c021903ab4","unresolved":false,"context_lines":[{"line_number":870,"context_line":"            \u0027fields\u0027: \u0027snapshot_directory_access_enabled,snapshot_policy.name\u0027"},{"line_number":871,"context_line":"        }"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        res \u003d self.send_request("},{"line_number":874,"context_line":"            f\u0027/storage/volumes/{vol_uuid}\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        snap_attributes \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"e89c225b_c791a3a4","line":873,"range":{"start_line":873,"start_character":8,"end_line":873,"end_character":11},"in_reply_to":"89d75ca8_f0ce66df","updated":"2025-07-11 10:04:20.000000000","message":"Done","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"e2040ebeb651a109543181e1c154c3fe3d8da079","unresolved":true,"context_lines":[{"line_number":2185,"context_line":"        if qos_policy_group_name:"},{"line_number":2186,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1725e4cd_3a8f104e","line":2188,"range":{"start_line":2188,"start_character":45,"end_line":2188,"end_character":75},"updated":"2025-06-22 07:47:03.000000000","message":"Where is the definition of get_volume_snapshot_attributes method..? I am not seeing this method in client_cmode","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"91ab07a09adc66cf485c9dfb80ec91055a4c776a","unresolved":false,"context_lines":[{"line_number":2185,"context_line":"        if qos_policy_group_name:"},{"line_number":2186,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ad9b0eae_73c928df","line":2188,"range":{"start_line":2188,"start_character":45,"end_line":2188,"end_character":75},"in_reply_to":"1725e4cd_3a8f104e","updated":"2025-06-22 08:02:01.000000000","message":"It was added to get approval on logic. Since Carlos and you agreed on it, I will update in following patchset.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"36fa91255f8ae228cd7cabd25456adb7b8168e6b","unresolved":true,"context_lines":[{"line_number":2185,"context_line":"        if qos_policy_group_name:"},{"line_number":2186,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a919f57_e123cc7e","line":2188,"range":{"start_line":2188,"start_character":45,"end_line":2188,"end_character":75},"in_reply_to":"6016ff79_2b163a17","updated":"2025-07-10 07:03:38.000000000","message":"Can you share the patch here.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ee843232a613a163ffafda5a064afc32e743ac96","unresolved":false,"context_lines":[{"line_number":2185,"context_line":"        if qos_policy_group_name:"},{"line_number":2186,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"e13bf931_fca89d54","line":2188,"range":{"start_line":2188,"start_character":45,"end_line":2188,"end_character":75},"in_reply_to":"9a919f57_e123cc7e","updated":"2025-07-10 08:11:06.000000000","message":"patched means updated in new patchset. check diff of patchset 2 and 3, There is implementation of get_volume_snapshot_attributes method.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"38ffe2946d99f9442726ae1894d6b50f4008e37d","unresolved":false,"context_lines":[{"line_number":2185,"context_line":"        if qos_policy_group_name:"},{"line_number":2186,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"6016ff79_2b163a17","line":2188,"range":{"start_line":2188,"start_character":45,"end_line":2188,"end_character":75},"in_reply_to":"ad9b0eae_73c928df","updated":"2025-06-23 12:18:40.000000000","message":"patched","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"21115f16428ec1162ed053d529f386651c8d5cd0","unresolved":true,"context_lines":[{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2192,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":2193,"context_line":"        ):"},{"line_number":2194,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":2195,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":2196,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":2197,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":2198,"context_line":"            else:"},{"line_number":2199,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":2200,"context_line":""},{"line_number":2201,"context_line":"        # Modify volume to match extra specs."},{"line_number":2202,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e750de62_e428151a","line":2199,"range":{"start_line":2190,"start_character":8,"end_line":2199,"end_character":59},"updated":"2025-04-16 23:21:11.000000000","message":"```suggestion\n        if (snapshot_attributes[\u0027snapshot-policy\u0027].lower() in\n                self.configuration.netapp_snapmirror_policy_exceptions):\n            provisioning_options[\u0027snapshot_policy\u0027] \u003d (\n                snapshot_attributes[\u0027snapshot-policy\u0027])\n            provisioning_options[\u0027hide_snapdir\u0027] \u003d (\n                snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027\n            )\n```","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b7cb883c794a9d6d31c59d7e49cde662c4227267","unresolved":true,"context_lines":[{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2192,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":2193,"context_line":"        ):"},{"line_number":2194,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":2195,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":2196,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":2197,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":2198,"context_line":"            else:"},{"line_number":2199,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":2200,"context_line":""},{"line_number":2201,"context_line":"        # Modify volume to match extra specs."},{"line_number":2202,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fe54573_b0cb82ec","line":2199,"range":{"start_line":2190,"start_character":8,"end_line":2199,"end_character":59},"in_reply_to":"78414b70_9403c24c","updated":"2025-04-17 16:06:49.000000000","message":"sorry about the impact on external factors, but would be nice to have it updated on this change.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7e0b8ad37f545a34cdabd51227ae91ea2bed5ea5","unresolved":false,"context_lines":[{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2192,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":2193,"context_line":"        ):"},{"line_number":2194,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":2195,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":2196,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":2197,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":2198,"context_line":"            else:"},{"line_number":2199,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":2200,"context_line":""},{"line_number":2201,"context_line":"        # Modify volume to match extra specs."},{"line_number":2202,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"63e30c93_c9cffb29","line":2199,"range":{"start_line":2190,"start_character":8,"end_line":2199,"end_character":59},"in_reply_to":"9fe54573_b0cb82ec","updated":"2025-04-24 12:14:15.000000000","message":"Done","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"974230073d8581998177592e2527da27abeb1902","unresolved":true,"context_lines":[{"line_number":2187,"context_line":""},{"line_number":2188,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2189,"context_line":"            share_name)"},{"line_number":2190,"context_line":"        if ("},{"line_number":2191,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2192,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":2193,"context_line":"        ):"},{"line_number":2194,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":2195,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":2196,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":2197,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":2198,"context_line":"            else:"},{"line_number":2199,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":2200,"context_line":""},{"line_number":2201,"context_line":"        # Modify volume to match extra specs."},{"line_number":2202,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"78414b70_9403c24c","line":2199,"range":{"start_line":2190,"start_character":8,"end_line":2199,"end_character":59},"in_reply_to":"e750de62_e428151a","updated":"2025-04-17 11:38:40.000000000","message":"I can do that optimization, but code exist downstream and so better if we keep like that which helps future back-porting.\n\nwdyt ?","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"21115f16428ec1162ed053d529f386651c8d5cd0","unresolved":true,"context_lines":[{"line_number":3922,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":3923,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":3924,"context_line":"        ):"},{"line_number":3925,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":3926,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":3927,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":3928,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":3929,"context_line":"            else:"},{"line_number":3930,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":3931,"context_line":""},{"line_number":3932,"context_line":"        destination_aggregate \u003d share_utils.extract_host("},{"line_number":3933,"context_line":"            destination_share[\u0027host\u0027], level\u003d\u0027pool\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da360d9e_d4cd7b1e","line":3930,"range":{"start_line":3925,"start_character":12,"end_line":3930,"end_character":59},"updated":"2025-04-16 23:21:11.000000000","message":"same as above","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"974230073d8581998177592e2527da27abeb1902","unresolved":false,"context_lines":[{"line_number":3922,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":3923,"context_line":"            in self.configuration.netapp_snapmirror_policy_exceptions"},{"line_number":3924,"context_line":"        ):"},{"line_number":3925,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d \\"},{"line_number":3926,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027]"},{"line_number":3927,"context_line":"            if snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() \u003d\u003d \u0027true\u0027:"},{"line_number":3928,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d False"},{"line_number":3929,"context_line":"            else:"},{"line_number":3930,"context_line":"                provisioning_options[\u0027hide_snapdir\u0027] \u003d True"},{"line_number":3931,"context_line":""},{"line_number":3932,"context_line":"        destination_aggregate \u003d share_utils.extract_host("},{"line_number":3933,"context_line":"            destination_share[\u0027host\u0027], level\u003d\u0027pool\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5b1048ba_7da78bfe","line":3930,"range":{"start_line":3925,"start_character":12,"end_line":3930,"end_character":59},"in_reply_to":"da360d9e_d4cd7b1e","updated":"2025-04-17 11:38:40.000000000","message":"Acknowledged","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b6ca8802dba25c2a65cbae7cda6b5e65b19d0e23","unresolved":true,"context_lines":[{"line_number":2190,"context_line":"        if qos_policy_group_name:"},{"line_number":2191,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2192,"context_line":""},{"line_number":2193,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2194,"context_line":"            share_name)"},{"line_number":2195,"context_line":"        if ("},{"line_number":2196,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2197,"context_line":"            in self.configuration.netapp_volume_snapshot_policy_exceptions"},{"line_number":2198,"context_line":"        ):"},{"line_number":2199,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d ("},{"line_number":2200,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027])"},{"line_number":2201,"context_line":"            provisioning_options[\u0027hide_snapdir\u0027] \u003d ("},{"line_number":2202,"context_line":"                snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() !\u003d \u0027true\u0027"},{"line_number":2203,"context_line":"            )"},{"line_number":2204,"context_line":""},{"line_number":2205,"context_line":"        # Modify volume to match extra specs."},{"line_number":2206,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"4b39fcea_5b65c22f","line":2203,"range":{"start_line":2193,"start_character":8,"end_line":2203,"end_character":13},"updated":"2025-07-10 20:03:14.000000000","message":"please extract this into another method and call the method here and in the other place that this is implemented","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b6ca8802dba25c2a65cbae7cda6b5e65b19d0e23","unresolved":true,"context_lines":[{"line_number":2200,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027])"},{"line_number":2201,"context_line":"            provisioning_options[\u0027hide_snapdir\u0027] \u003d ("},{"line_number":2202,"context_line":"                snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() !\u003d \u0027true\u0027"},{"line_number":2203,"context_line":"            )"},{"line_number":2204,"context_line":""},{"line_number":2205,"context_line":"        # Modify volume to match extra specs."},{"line_number":2206,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"4bcd724e_fe36fff5","line":2203,"updated":"2025-07-10 20:03:14.000000000","message":"there\u0027s a log that had some outdated provisioning options [1], maybe we should log it again?\n[1] https://review.opendev.org/c/openstack/manila/+/946552/3/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#2181","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"a3e85abdd61f81e90bd84b5edf1ee4c021903ab4","unresolved":false,"context_lines":[{"line_number":2190,"context_line":"        if qos_policy_group_name:"},{"line_number":2191,"context_line":"            provisioning_options[\u0027qos_policy_group\u0027] \u003d qos_policy_group_name"},{"line_number":2192,"context_line":""},{"line_number":2193,"context_line":"        snapshot_attributes \u003d vserver_client.get_volume_snapshot_attributes("},{"line_number":2194,"context_line":"            share_name)"},{"line_number":2195,"context_line":"        if ("},{"line_number":2196,"context_line":"            snapshot_attributes[\u0027snapshot-policy\u0027].lower()"},{"line_number":2197,"context_line":"            in self.configuration.netapp_volume_snapshot_policy_exceptions"},{"line_number":2198,"context_line":"        ):"},{"line_number":2199,"context_line":"            provisioning_options[\u0027snapshot_policy\u0027] \u003d ("},{"line_number":2200,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027])"},{"line_number":2201,"context_line":"            provisioning_options[\u0027hide_snapdir\u0027] \u003d ("},{"line_number":2202,"context_line":"                snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() !\u003d \u0027true\u0027"},{"line_number":2203,"context_line":"            )"},{"line_number":2204,"context_line":""},{"line_number":2205,"context_line":"        # Modify volume to match extra specs."},{"line_number":2206,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"c8a55677_73d42d75","line":2203,"range":{"start_line":2193,"start_character":8,"end_line":2203,"end_character":13},"in_reply_to":"4b39fcea_5b65c22f","updated":"2025-07-11 10:04:20.000000000","message":"Done","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"a3e85abdd61f81e90bd84b5edf1ee4c021903ab4","unresolved":false,"context_lines":[{"line_number":2200,"context_line":"                snapshot_attributes[\u0027snapshot-policy\u0027])"},{"line_number":2201,"context_line":"            provisioning_options[\u0027hide_snapdir\u0027] \u003d ("},{"line_number":2202,"context_line":"                snapshot_attributes[\u0027snapdir-access-enabled\u0027].lower() !\u003d \u0027true\u0027"},{"line_number":2203,"context_line":"            )"},{"line_number":2204,"context_line":""},{"line_number":2205,"context_line":"        # Modify volume to match extra specs."},{"line_number":2206,"context_line":"        vserver_client.modify_volume(aggregate_name, share_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"be693f93_7289f6f2","line":2203,"in_reply_to":"4bcd724e_fe36fff5","updated":"2025-07-11 10:04:20.000000000","message":"moved log to down.","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"}],"manila/share/drivers/netapp/options.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"912a4b253a260244ee5812bf072d3083cd0d28e8","unresolved":true,"context_lines":[{"line_number":186,"context_line":"                    \"affect new shares, which will have their snapshot \""},{"line_number":187,"context_line":"                    \"directory always visible, unless toggled by the share \""},{"line_number":188,"context_line":"                    \"type extra spec \u0027netapp:hide_snapdir\u0027.\"),"},{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_snapmirror_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp SnapMirror policy names which will not be \u0027"},{"line_number":191,"context_line":"                     \u0027overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"d6e04c5c_62a41173","line":189,"range":{"start_line":189,"start_character":17,"end_line":189,"end_character":52},"updated":"2025-04-24 11:51:38.000000000","message":"This is volume snapshot policy, not snapmirror policy. This parameter name should be \"netapp_volume_snapshot_policy_exceptions\". Also change the description accordingly.","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7e0b8ad37f545a34cdabd51227ae91ea2bed5ea5","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                    \"affect new shares, which will have their snapshot \""},{"line_number":187,"context_line":"                    \"directory always visible, unless toggled by the share \""},{"line_number":188,"context_line":"                    \"type extra spec \u0027netapp:hide_snapdir\u0027.\"),"},{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_snapmirror_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp SnapMirror policy names which will not be \u0027"},{"line_number":191,"context_line":"                     \u0027overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"d0521cc4_f40b1748","line":189,"range":{"start_line":189,"start_character":17,"end_line":189,"end_character":52},"in_reply_to":"d6e04c5c_62a41173","updated":"2025-04-24 12:14:15.000000000","message":"Done","commit_id":"31f445ff347572851e735d8a8b9b704a80b958ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b6ca8802dba25c2a65cbae7cda6b5e65b19d0e23","unresolved":true,"context_lines":[{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_volume_snapshot_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp volume Snapshot policy names which will not \u0027"},{"line_number":191,"context_line":"                     \u0027be overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"},{"line_number":193,"context_line":"    cfg.StrOpt(\u0027netapp_snapmirror_policy_name_svm_template\u0027,"},{"line_number":194,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":195,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df5031f0_86bae867","line":192,"range":{"start_line":192,"start_character":26,"end_line":192,"end_character":37},"updated":"2025-07-10 20:03:14.000000000","message":"is this the current default already? cc @gawasthi2010@gmail.com","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6ba1c9b837ee69a10063c4eec5b39948047e773e","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_volume_snapshot_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp volume Snapshot policy names which will not \u0027"},{"line_number":191,"context_line":"                     \u0027be overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"},{"line_number":193,"context_line":"    cfg.StrOpt(\u0027netapp_snapmirror_policy_name_svm_template\u0027,"},{"line_number":194,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":195,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"74fe9f8e_4fb8b66f","line":192,"range":{"start_line":192,"start_character":26,"end_line":192,"end_character":37},"in_reply_to":"045b795e_09223b44","updated":"2025-08-01 12:29:25.000000000","message":"ok","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"88bb19874db2fc07e152e8b430216f00bfa5a768","unresolved":true,"context_lines":[{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_volume_snapshot_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp volume Snapshot policy names which will not \u0027"},{"line_number":191,"context_line":"                     \u0027be overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"},{"line_number":193,"context_line":"    cfg.StrOpt(\u0027netapp_snapmirror_policy_name_svm_template\u0027,"},{"line_number":194,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":195,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"f24b9046_a408cf13","line":192,"range":{"start_line":192,"start_character":26,"end_line":192,"end_character":37},"in_reply_to":"df5031f0_86bae867","updated":"2025-08-01 11:37:46.000000000","message":"ONTAP have below inbuild snapshot policy. Kiran, do we have any impact if customer don\u0027t have this policy in their environment.\n\ndefault            default-1weekly    none\n    pg-rpo-15-minutely pg-rpo-6-hourly    pg-rpo-hourly\n    pg-rpo-hourly-set2 pg-rpo-hourly-set3 pg-rpo-hourly-set4","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"e0bd2e52548cb4103aea7ca9884b125d809f689e","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    cfg.ListOpt(\u0027netapp_volume_snapshot_policy_exceptions\u0027,"},{"line_number":190,"context_line":"                help\u003d\u0027NetApp volume Snapshot policy names which will not \u0027"},{"line_number":191,"context_line":"                     \u0027be overriden by extra-specs.\u0027,"},{"line_number":192,"context_line":"                default\u003d[\u0027ec2_backups\u0027]),"},{"line_number":193,"context_line":"    cfg.StrOpt(\u0027netapp_snapmirror_policy_name_svm_template\u0027,"},{"line_number":194,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":195,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"045b795e_09223b44","line":192,"range":{"start_line":192,"start_character":26,"end_line":192,"end_character":37},"in_reply_to":"f24b9046_a408cf13","updated":"2025-08-01 11:46:39.000000000","message":"The default here is sample example ec2_backups and it can be None also. The logic is while applying snapshot policies on volume, check for exceptions and if exceptions exist in policies on volume, then consider exceptions. Since customer can keep default value as it is, the exceptions wont get applied and it will be No-op for them.","commit_id":"8fe9cb30516a8266caf35285862a1ba02fb2519f"}]}
