)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b8e604e184d81bf58d1abd3fffd1805fa0058fd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2756c56b_10685427","updated":"2026-07-27 11:03:01.000000000","message":"Please address the comments.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"561e1ed08f95579ef4abd58139e817598dd7cb44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"09642d13_5790f6e3","updated":"2026-07-27 14:12:21.000000000","message":"Please take a look at comments from Kumar.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"2505d05520e0781206f750c29cf8549a7d5d4021","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"895a21c6_c7ad8281","updated":"2026-07-29 07:29:42.000000000","message":"Please address this comment","commit_id":"e10c214eed66984463c7d534e21d42f584d8ec1c"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a25f01acc2bd93d10fcca4bc0ddbd2e2f4cfd559","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cc932ab9_4a5b497e","updated":"2026-07-31 04:03:39.000000000","message":"LGTM","commit_id":"a7076a28a15036e530d6d66afe87fc01056418b5"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"19b08483b92b2640881eccfd6fd07adf5a3394bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8972f198_08641a57","updated":"2026-07-30 06:08:15.000000000","message":"LGTM.","commit_id":"a7076a28a15036e530d6d66afe87fc01056418b5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c922504012cb194fd924c9f686efbfa8803bc77e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"73227f0e_f498646c","updated":"2026-07-31 06:22:28.000000000","message":"small suggestion on config option name. otherwise ok","commit_id":"a7076a28a15036e530d6d66afe87fc01056418b5"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"95e32072afef31fbb7c8307823f7b64ca13dec8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4961d13e_060730ba","updated":"2026-08-11 03:51:29.000000000","message":"LGTM","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b4297516ab5a42cd905b3faf96c5b6535126c4f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f4a3c3f3_c8a11261","updated":"2026-08-05 09:37:59.000000000","message":"LGTM ..!","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"fdb771c7480ff460dd72e482231f002db58a8b33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"17526a5b_0dfe0995","updated":"2026-08-05 11:01:26.000000000","message":"can we make sure at-least CI result of manila-tempest-plugin-ontap-dhss are passing ? Otherwise +2","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"cc8d77236fa826105ad908a2bb7837adb68873ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"06452168_ce8ed828","updated":"2026-08-12 05:41:58.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"1626a112364633e2ed52fc9c8adf3899fa1c16ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2d96a4b8_98a720eb","updated":"2026-08-12 07:42:16.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"256c29e33d9cde1433c539df1d6ca122bd58342c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c73b7e40_c864b8c1","updated":"2026-08-13 13:57:41.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"b6d6d2d9f9a7a7efcbcdeaae0e26ce64baceb1ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"dec2e67c_2b92dc91","updated":"2026-08-13 12:19:57.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"1626a112364633e2ed52fc9c8adf3899fa1c16ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f448f3a4_900d90e7","updated":"2026-08-12 07:42:16.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"95c1e7137110b631ad8526918f892b57dd688483","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fa754d39_b147f9fd","updated":"2026-08-13 11:16:26.000000000","message":"run-netapp ci","commit_id":"d7425fb357d00ce9df7a86ce2356407dffc527d3"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"e6e0ad8f56f5a170060f1d1e1dafa2fe11a2c582","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9e827167_f7b7d52f","updated":"2026-08-21 15:28:40.000000000","message":"CI is all good.","commit_id":"5074121a5e130fcc87ea4b046fdffb201ed82e5d"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7654d9667356a01fd1b71e3ce4dd6a692ab260e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"45769c41_0918a476","updated":"2026-08-21 15:35:47.000000000","message":"LGTM. ++ as CI run is successful too.","commit_id":"5074121a5e130fcc87ea4b046fdffb201ed82e5d"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"0d6abd79963688ce51988cd2ac117a61299251ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"25786e23_bed29830","updated":"2026-08-21 09:54:24.000000000","message":"run-netapp ci","commit_id":"5074121a5e130fcc87ea4b046fdffb201ed82e5d"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"3e5e7a4e3c8de4fa1f3d92b8543311bf19025f69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f26057e6_acb01b9e","updated":"2026-08-20 04:37:10.000000000","message":"run-netapp ci","commit_id":"5074121a5e130fcc87ea4b046fdffb201ed82e5d"}],"manila/share/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b8e604e184d81bf58d1abd3fffd1805fa0058fd0","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.zapi_fallback_enabled \u003d kwargs.get(\u0027zapi_fallback_enabled\u0027,"},{"line_number":97,"context_line":"                                                False)"},{"line_number":98,"context_line":"        if self.zapi_fallback_enabled:"},{"line_number":99,"context_line":"            # NOTE(nahimsouza): ZAPI Client is needed to implement the"},{"line_number":100,"context_line":"            # fallback when a REST method is not supported."}],"source_content_type":"text/x-python","patch_set":2,"id":"8bb6ddb2_8498709b","line":97,"updated":"2026-07-27 11:03:01.000000000","message":"Default must be True.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"08f53dba8a5c52a09775f8d3aa0ba45179ba47f8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        self.zapi_fallback_enabled \u003d kwargs.get(\u0027zapi_fallback_enabled\u0027,"},{"line_number":97,"context_line":"                                                False)"},{"line_number":98,"context_line":"        if self.zapi_fallback_enabled:"},{"line_number":99,"context_line":"            # NOTE(nahimsouza): ZAPI Client is needed to implement the"},{"line_number":100,"context_line":"            # fallback when a REST method is not supported."}],"source_content_type":"text/x-python","patch_set":2,"id":"76cb7f6b_7de97ef9","line":97,"in_reply_to":"8bb6ddb2_8498709b","updated":"2026-07-29 04:07:03.000000000","message":"Done","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b8e604e184d81bf58d1abd3fffd1805fa0058fd0","unresolved":true,"context_lines":[{"line_number":1959,"context_line":"            vserver \u003d record.get(\u0027svm\u0027, {}).get(\u0027name\u0027)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"            client \u003d copy.deepcopy(self)"},{"line_number":1962,"context_line":"            client.connection.set_vserver(vserver)"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"            clones \u003d self.get_clones_of_parent_volume("},{"line_number":1965,"context_line":"                vserver, vol_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b767ad61_fc2e33ed","line":1962,"updated":"2026-07-27 11:03:01.000000000","message":"Why this change required?","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"423a233c5728357a271d08e764865549ce099147","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"            vserver \u003d record.get(\u0027svm\u0027, {}).get(\u0027name\u0027)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"            client \u003d copy.deepcopy(self)"},{"line_number":1962,"context_line":"            client.connection.set_vserver(vserver)"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"            clones \u003d self.get_clones_of_parent_volume("},{"line_number":1965,"context_line":"                vserver, vol_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"10637ca7_67f6d0d0","line":1962,"in_reply_to":"b767ad61_fc2e33ed","updated":"2026-07-29 03:24:18.000000000","message":"set_vserver is not a native REST method — calling client.set_vserver() would fall through __getattr__ to the ZAPI client, which only updates the ZAPI client\u0027s vserver, not the REST connection. With the new fallback toggle, if fallback is disabled it would also raise an exception. client.connection.set_vserver() directly sets the vserver on the REST connection, which is what we need here.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"2505d05520e0781206f750c29cf8549a7d5d4021","unresolved":true,"context_lines":[{"line_number":154,"context_line":"            zapi_fallback_enabled \u003d object.__getattribute__("},{"line_number":155,"context_line":"                self, \u0027zapi_fallback_enabled\u0027)"},{"line_number":156,"context_line":"        except AttributeError:"},{"line_number":157,"context_line":"            zapi_fallback_enabled \u003d False"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        if not zapi_fallback_enabled:"},{"line_number":160,"context_line":"            msg \u003d _("}],"source_content_type":"text/x-python","patch_set":3,"id":"4992564f_40a92fc6","line":157,"updated":"2026-07-29 07:29:42.000000000","message":"When we make fallback by default as true.\nThis should be changed right?","commit_id":"e10c214eed66984463c7d534e21d42f584d8ec1c"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"37e876d2aa845bd86a5482717b75ecd91186982c","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            zapi_fallback_enabled \u003d object.__getattribute__("},{"line_number":155,"context_line":"                self, \u0027zapi_fallback_enabled\u0027)"},{"line_number":156,"context_line":"        except AttributeError:"},{"line_number":157,"context_line":"            zapi_fallback_enabled \u003d False"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        if not zapi_fallback_enabled:"},{"line_number":160,"context_line":"            msg \u003d _("}],"source_content_type":"text/x-python","patch_set":3,"id":"d4b4ca6c_bd1d0853","line":157,"in_reply_to":"4992564f_40a92fc6","updated":"2026-07-29 11:58:44.000000000","message":"Done","commit_id":"e10c214eed66984463c7d534e21d42f584d8ec1c"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"2505d05520e0781206f750c29cf8549a7d5d4021","unresolved":true,"context_lines":[{"line_number":159,"context_line":"        if not zapi_fallback_enabled:"},{"line_number":160,"context_line":"            msg \u003d _("},{"line_number":161,"context_line":"                \u0027The %(name)s call is not supported for REST and the ZAPI \u0027"},{"line_number":162,"context_line":"                \u0027fallback is disabled. Set \"netapp_allow_zapi_fallback\" \u0027"},{"line_number":163,"context_line":"                \u0027to \"true\" to allow fallback.\u0027)"},{"line_number":164,"context_line":"            LOG.warning(msg, {\u0027name\u0027: name})"},{"line_number":165,"context_line":"            raise exception.NetAppException(msg % {\u0027name\u0027: name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5b9bdc78_4f095710","line":162,"updated":"2026-07-29 07:29:42.000000000","message":"When we make fallback by default as true.\nThis message should be changed right?","commit_id":"e10c214eed66984463c7d534e21d42f584d8ec1c"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"37e876d2aa845bd86a5482717b75ecd91186982c","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        if not zapi_fallback_enabled:"},{"line_number":160,"context_line":"            msg \u003d _("},{"line_number":161,"context_line":"                \u0027The %(name)s call is not supported for REST and the ZAPI \u0027"},{"line_number":162,"context_line":"                \u0027fallback is disabled. Set \"netapp_allow_zapi_fallback\" \u0027"},{"line_number":163,"context_line":"                \u0027to \"true\" to allow fallback.\u0027)"},{"line_number":164,"context_line":"            LOG.warning(msg, {\u0027name\u0027: name})"},{"line_number":165,"context_line":"            raise exception.NetAppException(msg % {\u0027name\u0027: name})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9c36cb95_e59a28ff","line":162,"in_reply_to":"5b9bdc78_4f095710","updated":"2026-07-29 11:58:44.000000000","message":"Done","commit_id":"e10c214eed66984463c7d534e21d42f584d8ec1c"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"bd9c805c7b6f7d313a3d759daebc1bdf9049eaa1","unresolved":true,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __getattr__(self, name):"},{"line_number":143,"context_line":"        \"\"\"If method is not implemented for REST, try to call the ZAPI.\"\"\""},{"line_number":144,"context_line":"        # Dunder method lookups are used by Python internals (copy, pickle,"},{"line_number":145,"context_line":"        # hasattr, etc.) and must raise AttributeError so they behave"},{"line_number":146,"context_line":"        # correctly (e.g. hasattr only suppresses AttributeError, not"},{"line_number":147,"context_line":"        # NetAppException)."}],"source_content_type":"text/x-python","patch_set":5,"id":"98deea89_e7e333b6","line":144,"updated":"2026-07-31 13:02:36.000000000","message":"Is this check required ?","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"05f5a37ccd0904bb954ec750480d04461eb92e2b","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __getattr__(self, name):"},{"line_number":143,"context_line":"        \"\"\"If method is not implemented for REST, try to call the ZAPI.\"\"\""},{"line_number":144,"context_line":"        # Dunder method lookups are used by Python internals (copy, pickle,"},{"line_number":145,"context_line":"        # hasattr, etc.) and must raise AttributeError so they behave"},{"line_number":146,"context_line":"        # correctly (e.g. hasattr only suppresses AttributeError, not"},{"line_number":147,"context_line":"        # NetAppException)."}],"source_content_type":"text/x-python","patch_set":5,"id":"f118ea65_1e09fd5e","line":144,"in_reply_to":"98deea89_e7e333b6","updated":"2026-08-05 09:28:54.000000000","message":"Yes, it is required. Python internals such as copy.deepcopy() (used later in this file) probe for dunder methods like __deepcopy__, __reduce__, and __setstate__ via attribute lookup. Without this guard, those probes would trigger __getattr__, which — when zapi_fallback_enabled\u003dFalse — raises a NetAppException instead of AttributeError. Python\u0027s hasattr() and the copy machinery only suppress AttributeError, so raising anything else breaks them. This guard ensures dunder lookups behave correctly.","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"bd9c805c7b6f7d313a3d759daebc1bdf9049eaa1","unresolved":true,"context_lines":[{"line_number":148,"context_line":"        if name.startswith(\u0027__\u0027) and name.endswith(\u0027__\u0027):"},{"line_number":149,"context_line":"            raise AttributeError(name)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        # Use object.__getattribute__ to avoid reentrant __getattr__ calls"},{"line_number":152,"context_line":"        # (e.g. during copy.copy / copy.deepcopy which checks __setstate__)."},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            zapi_fallback_enabled \u003d object.__getattribute__("}],"source_content_type":"text/x-python","patch_set":5,"id":"6b9207a7_d5a9e60b","line":151,"updated":"2026-07-31 13:02:36.000000000","message":"simplify the comment","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"05f5a37ccd0904bb954ec750480d04461eb92e2b","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if name.startswith(\u0027__\u0027) and name.endswith(\u0027__\u0027):"},{"line_number":149,"context_line":"            raise AttributeError(name)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        # Use object.__getattribute__ to avoid reentrant __getattr__ calls"},{"line_number":152,"context_line":"        # (e.g. during copy.copy / copy.deepcopy which checks __setstate__)."},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            zapi_fallback_enabled \u003d object.__getattribute__("}],"source_content_type":"text/x-python","patch_set":5,"id":"2d354169_012c9ac1","line":151,"in_reply_to":"6b9207a7_d5a9e60b","updated":"2026-08-05 09:28:54.000000000","message":"Done","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"bd9c805c7b6f7d313a3d759daebc1bdf9049eaa1","unresolved":true,"context_lines":[{"line_number":1959,"context_line":"            vserver \u003d record.get(\u0027svm\u0027, {}).get(\u0027name\u0027)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"            client \u003d copy.deepcopy(self)"},{"line_number":1962,"context_line":"            client.connection.set_vserver(vserver)"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"            clones \u003d self.get_clones_of_parent_volume("},{"line_number":1965,"context_line":"                vserver, vol_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7c0c0c9a_b43ec53d","line":1962,"updated":"2026-07-31 13:02:36.000000000","message":"What changed here ? Did we add connection object to client ?","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"05f5a37ccd0904bb954ec750480d04461eb92e2b","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"            vserver \u003d record.get(\u0027svm\u0027, {}).get(\u0027name\u0027)"},{"line_number":1960,"context_line":""},{"line_number":1961,"context_line":"            client \u003d copy.deepcopy(self)"},{"line_number":1962,"context_line":"            client.connection.set_vserver(vserver)"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"            clones \u003d self.get_clones_of_parent_volume("},{"line_number":1965,"context_line":"                vserver, vol_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"4c038236_a2f65f00","line":1962,"in_reply_to":"7c0c0c9a_b43ec53d","updated":"2026-08-05 09:28:54.000000000","message":"No new attribute was added — connection (the RestNaServer instance) already existed on the client. The change from client.set_vserver() to client.connection.set_vserver() was needed because set_vserver is not a native REST method. Calling client.set_vserver() falls through __getattr__, which with zapi_fallback_enabled\u003dFalse raises a NetAppException. Calling client.connection.set_vserver() directly sets the vserver on the REST connection without going through __getattr__. This was also discussed with Kumar in PS2 and he accepted it.","commit_id":"25219dda0b40ce7a0770d491beecb6c083c393c3"}],"manila/share/drivers/netapp/options.py":[{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b8e604e184d81bf58d1abd3fffd1805fa0058fd0","unresolved":true,"context_lines":[{"line_number":256,"context_line":"               help\u003d\u0027Sets maximum amount of time in seconds to wait for a \u0027"},{"line_number":257,"context_line":"                    \u0027synchronous ONTAP REST API operation to be completed.\u0027),"},{"line_number":258,"context_line":"    cfg.BoolOpt(\u0027netapp_allow_zapi_fallback\u0027,"},{"line_number":259,"context_line":"                default\u003dFalse,"},{"line_number":260,"context_line":"                help\u003d\u0027This option allows ONTAP REST client methods to \u0027"},{"line_number":261,"context_line":"                     \u0027fallback to ZAPI when a REST method is not \u0027"},{"line_number":262,"context_line":"                     \u0027implemented.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a20180b_60cf2777","line":259,"updated":"2026-07-27 11:03:01.000000000","message":"Default must be True.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"08f53dba8a5c52a09775f8d3aa0ba45179ba47f8","unresolved":false,"context_lines":[{"line_number":256,"context_line":"               help\u003d\u0027Sets maximum amount of time in seconds to wait for a \u0027"},{"line_number":257,"context_line":"                    \u0027synchronous ONTAP REST API operation to be completed.\u0027),"},{"line_number":258,"context_line":"    cfg.BoolOpt(\u0027netapp_allow_zapi_fallback\u0027,"},{"line_number":259,"context_line":"                default\u003dFalse,"},{"line_number":260,"context_line":"                help\u003d\u0027This option allows ONTAP REST client methods to \u0027"},{"line_number":261,"context_line":"                     \u0027fallback to ZAPI when a REST method is not \u0027"},{"line_number":262,"context_line":"                     \u0027implemented.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"23f419d2_3e3b201c","line":259,"in_reply_to":"3f6b7ed9_af7072ca","updated":"2026-07-29 04:07:03.000000000","message":"Done","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"561e1ed08f95579ef4abd58139e817598dd7cb44","unresolved":true,"context_lines":[{"line_number":256,"context_line":"               help\u003d\u0027Sets maximum amount of time in seconds to wait for a \u0027"},{"line_number":257,"context_line":"                    \u0027synchronous ONTAP REST API operation to be completed.\u0027),"},{"line_number":258,"context_line":"    cfg.BoolOpt(\u0027netapp_allow_zapi_fallback\u0027,"},{"line_number":259,"context_line":"                default\u003dFalse,"},{"line_number":260,"context_line":"                help\u003d\u0027This option allows ONTAP REST client methods to \u0027"},{"line_number":261,"context_line":"                     \u0027fallback to ZAPI when a REST method is not \u0027"},{"line_number":262,"context_line":"                     \u0027implemented.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f6b7ed9_af7072ca","line":259,"in_reply_to":"7a20180b_60cf2777","updated":"2026-07-27 14:12:21.000000000","message":"+1. The default behaviour for zapi fallback should be true.","commit_id":"a1f2ac65adc1b08f0a2d0b7e0c8176eb262a5437"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c922504012cb194fd924c9f686efbfa8803bc77e","unresolved":true,"context_lines":[{"line_number":255,"context_line":"               default\u003d60,  # Default to one minutes"},{"line_number":256,"context_line":"               help\u003d\u0027Sets maximum amount of time in seconds to wait for a \u0027"},{"line_number":257,"context_line":"                    \u0027synchronous ONTAP REST API operation to be completed.\u0027),"},{"line_number":258,"context_line":"    cfg.BoolOpt(\u0027netapp_allow_zapi_fallback\u0027,"},{"line_number":259,"context_line":"                default\u003dTrue,"},{"line_number":260,"context_line":"                help\u003d\u0027This option allows ONTAP REST client methods to \u0027"},{"line_number":261,"context_line":"                     \u0027fallback to ZAPI when a REST method is not \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5e2503ac_3a43eccb","line":258,"updated":"2026-07-31 06:22:28.000000000","message":"can you keep same name for config i.e. zapi_fallback_enabled for better consistency.","commit_id":"a7076a28a15036e530d6d66afe87fc01056418b5"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"60bc109813c24bb4a249913b3c2e3b8bd1070ffb","unresolved":false,"context_lines":[{"line_number":255,"context_line":"               default\u003d60,  # Default to one minutes"},{"line_number":256,"context_line":"               help\u003d\u0027Sets maximum amount of time in seconds to wait for a \u0027"},{"line_number":257,"context_line":"                    \u0027synchronous ONTAP REST API operation to be completed.\u0027),"},{"line_number":258,"context_line":"    cfg.BoolOpt(\u0027netapp_allow_zapi_fallback\u0027,"},{"line_number":259,"context_line":"                default\u003dTrue,"},{"line_number":260,"context_line":"                help\u003d\u0027This option allows ONTAP REST client methods to \u0027"},{"line_number":261,"context_line":"                     \u0027fallback to ZAPI when a REST method is not \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"4b30f20a_5a448613","line":258,"in_reply_to":"5e2503ac_3a43eccb","updated":"2026-07-31 11:00:16.000000000","message":"i have updated the name to netapp_zapi_fallback_enabled (have kept the netapp_ prefix)","commit_id":"a7076a28a15036e530d6d66afe87fc01056418b5"}]}
