)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"0fce998d206b3c96cf67c6645c0783cecb70126c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"80deead4_c6046ef1","updated":"2025-09-22 15:10:46.000000000","message":"Do you know what patch introduced this bug, curious.","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":36179,"name":"Saikumar Pulluri","display_name":"Saikumar Pulluri","email":"saikumar1016@gmail.com","username":"pulluri"},"change_message_id":"5b0ddb824f74cde42a52df231e3924fccc895483","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"65ed9e1c_22b2a054","in_reply_to":"1856371e_456dc348","updated":"2025-09-24 06:47:50.000000000","message":"Just giving some clarity here,\nThis is not because of https://review.opendev.org/c/openstack/cinder/+/959293 but it is after this patch got merged, we found on latest master testing that we need to add \"get_lun_sizes_by_volume\" and \"get_namespace_sizes_by_volume\" methods for ASAr2. \n\nMore INFO:\nAs part of the patch[https://review.opendev.org/c/openstack/cinder/+/959293], I got the below line[luns \u003d self.zapi_client.get_lun_sizes_by_volume(ssc_vol_name)] out of \"if self.configuration.netapp_driver_reports_provisioned_capacity:\" in cinder/volume/drivers/netapp/dataontap/block_cmode.py\n\n\nAnd when I was testing with latest, we got an error and found that the methods were not present in ASAr2. \n\nWhy we couldn\u0027t catch earlier was: \nThe \"luns \u003d self.zapi_client.get_lun_sizes_by_volume(ssc_vol_name)\" code was inside \"if self.configuration.netapp_driver_reports_provisioned_capacity:\" and I think we missed testing with \"netapp_driver_reports_provisioned_capacity\u003dtrue\" in backend stanza. \n\nSo I want to conclude it\u0027s not because of https://review.opendev.org/c/openstack/cinder/+/959293\n\nThank you!!","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd471a937fd025f725d034d84adc9cff522aff92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1856371e_456dc348","in_reply_to":"80deead4_c6046ef1","updated":"2025-09-24 06:34:20.000000000","message":"https://review.opendev.org/c/openstack/cinder/+/959293","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"30e91a5f46edb5c8172fd3afab7f0b496a40e801","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"581158df_0a73ed90","updated":"2025-10-09 16:53:23.000000000","message":"Thanks @abishop@redhat.com for you review comment. I have incorporated the review comments.","commit_id":"fa9063042210a06a625f1dc08fbdeb77b18c3b76"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"55ee0bf471692e2917c772b21078a5b3831cc14e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"166a0ecc_1801aa60","updated":"2025-10-10 06:56:39.000000000","message":"recheck","commit_id":"fa9063042210a06a625f1dc08fbdeb77b18c3b76"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a27745a00e20a5ba823b39ac5fac9de3dc106def","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"71f219fb_48747862","updated":"2025-10-13 05:06:42.000000000","message":"recheck","commit_id":"fa9063042210a06a625f1dc08fbdeb77b18c3b76"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"465160280260edd3aac0449cfc7984862b20e922","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4d6921a1_4f88be97","updated":"2025-10-22 15:57:59.000000000","message":"Adding Hao as reviewer.","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"5d4704d248f2a51cf15f58e6d80604db8b564425","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ffd8bdba_1ec1af64","updated":"2026-01-06 12:30:22.000000000","message":"LGTM","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"a9553f89181ac8824b7575e6df4d01941e24f64c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c762ef31_747f9ba7","updated":"2026-01-11 14:26:34.000000000","message":"Looks good to me, i concur with Alan, the note is okay.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"50c7ed58ca23b303fd76fa90e46cac2ab24a6e8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"97eb5df9_bbe272a9","updated":"2025-12-18 06:34:23.000000000","message":"Run-NetApp CI","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b0bb7e40996d254be6bea7d21089cf84a4f9a695","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8de4038a_1434cc0c","updated":"2026-01-13 16:39:39.000000000","message":"Thank you Brian for your review comments. I have incorporated the suggested changes; please review the patch again.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"211393acc7e7c6b9203840cfc2358ef104c472a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7e51f635_7e12ba4a","updated":"2026-01-12 17:06:54.000000000","message":"Two questions inline.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"de796ee7d1beb09eb9640d5948ff856ccbe3d63e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ad813912_31b1fd4c","updated":"2026-01-21 20:05:47.000000000","message":"Changes in latest revision look okay to me.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"46dfab874d02e29969f0e5d90f914c2d74ffabea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b810274e_c1952e4f","updated":"2026-01-16 14:52:51.000000000","message":"I left the comment regarding the unit test concern. Regarding the rest of the code everything looks fine to me.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"336de43ffc3fdef6a74180925d70ba503d31d3a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b43e28b5_b99d486e","updated":"2026-01-14 23:55:26.000000000","message":"See comment inline about the unit test situation.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b9e658a3d6022d5a12a3702233fedda6a75bb366","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b0d78a6d_3cb5f455","updated":"2026-01-21 18:13:07.000000000","message":"The NetApp CI has reported and is passing.\nCode and tests looks good apart from the concern raised by Brian which will be addressed in a followup.\nOverall, it\u0027s a reasonable change to add support for get_lun_sizes_by_volume\nand get_namespace_sizes_by_volume operations in ASAR2 rest client. LGTM.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b71dd1e15d5254be1fa64e90d1326a911091b07a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fe2483ff_98eec000","updated":"2026-01-21 15:48:58.000000000","message":"The NetApp maintainer has noted the unit test concern, but I agree that it\u0027s not an issue for this patch.  Code and tests LGTM.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d8a86444b2fde5df8aa97d6171ad5b4b125dab90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"275e002d_fc5f05d8","updated":"2026-01-14 09:04:49.000000000","message":"recheck","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f98409a4fdc1d7ccedd4533ff01cb70199346dc6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"83a0db64_b672c760","updated":"2026-01-22 05:45:24.000000000","message":"recheck","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"211393acc7e7c6b9203840cfc2358ef104c472a2","unresolved":true,"context_lines":[{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_initialize_connection_iscsi(self):"},{"line_number":929,"context_line":"        target_details_list \u003d fake.ISCSI_TARGET_DETAILS_LIST"},{"line_number":930,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":931,"context_line":"        volume \u003d fake.ISCSI_VOLUME"},{"line_number":932,"context_line":"        connector \u003d fake.ISCSI_CONNECTOR"},{"line_number":933,"context_line":"        self.mock_object(block_base.NetAppBlockStorageLibrary, \u0027_map_lun\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"e4a37a22_429043e7","line":930,"updated":"2026-01-12 17:06:54.000000000","message":"Can you please verify that this is a safe change when running tests concurrently?  Is this library.configuration object local to each test?","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"336de43ffc3fdef6a74180925d70ba503d31d3a5","unresolved":true,"context_lines":[{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_initialize_connection_iscsi(self):"},{"line_number":929,"context_line":"        target_details_list \u003d fake.ISCSI_TARGET_DETAILS_LIST"},{"line_number":930,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":931,"context_line":"        volume \u003d fake.ISCSI_VOLUME"},{"line_number":932,"context_line":"        connector \u003d fake.ISCSI_CONNECTOR"},{"line_number":933,"context_line":"        self.mock_object(block_base.NetAppBlockStorageLibrary, \u0027_map_lun\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ed94a85e_69403c14","line":930,"in_reply_to":"0496ba6c_8734b4c1","updated":"2026-01-14 23:55:26.000000000","message":"I think the option you want is ``--concurrency``; I think the default is the number of cores but you can probably bump to a relatively high number (as long as you don\u0027t try to do much else on your machine while running the tests).  Also, I don\u0027t know if it matters, but the test names to filter on should come last.\n\nhttps://stestr.readthedocs.io/en/latest/MANUAL.html#run","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b0bb7e40996d254be6bea7d21089cf84a4f9a695","unresolved":true,"context_lines":[{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_initialize_connection_iscsi(self):"},{"line_number":929,"context_line":"        target_details_list \u003d fake.ISCSI_TARGET_DETAILS_LIST"},{"line_number":930,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":931,"context_line":"        volume \u003d fake.ISCSI_VOLUME"},{"line_number":932,"context_line":"        connector \u003d fake.ISCSI_CONNECTOR"},{"line_number":933,"context_line":"        self.mock_object(block_base.NetAppBlockStorageLibrary, \u0027_map_lun\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"0496ba6c_8734b4c1","line":930,"in_reply_to":"e4a37a22_429043e7","updated":"2026-01-13 16:39:39.000000000","message":"self.library is an instance variable, so self.library.configuration will be unique for each instance. Therefore, when tests run concurrently, each test instance will have its own self.library.configuration object, preventing any conflicts. Although library.configuration is not local to each test, I setting it\u0027s value to True or False where netapp_disaggregated_platform is used in the dev code.\n\nI ran all the unit tests in parallel using the following command, and all tests passed:\n\ntox -epy310 -- cinder.tests.unit.volume.drivers.netapp.dataontap.client.test_client_cmode_rest_asar2.NetAppRestCmodeASAr2ClientTestCase --parallel all\n\nPlease let me know if this is the correct command to run the tests in parallel or if I should use a different command.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"46dfab874d02e29969f0e5d90f914c2d74ffabea","unresolved":true,"context_lines":[{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_initialize_connection_iscsi(self):"},{"line_number":929,"context_line":"        target_details_list \u003d fake.ISCSI_TARGET_DETAILS_LIST"},{"line_number":930,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":931,"context_line":"        volume \u003d fake.ISCSI_VOLUME"},{"line_number":932,"context_line":"        connector \u003d fake.ISCSI_CONNECTOR"},{"line_number":933,"context_line":"        self.mock_object(block_base.NetAppBlockStorageLibrary, \u0027_map_lun\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"f30b2503_467cbac9","line":930,"in_reply_to":"ed94a85e_69403c14","updated":"2026-01-16 14:52:51.000000000","message":"I believe the configure object is not shared and we should be fine with this tests. The call trace goes like this:\n\nNetAppBlockStorageLibraryTestCase.get_config_base() -\u003e na_fakes.create_configuration() -\u003e conf.Configuration(None) -\u003e DefaultGroupConfiguration() -\u003e CONF -\u003e cfg.CONF -\u003e ConfigOpts() on oslo_config, and since \u0027CONF \u003d ConfigOpts()\u0027, we are getting a new instance of the class for each call.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c30d2f47f3a4d3f5d6797bde46d2ed084b22c057","unresolved":false,"context_lines":[{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_initialize_connection_iscsi(self):"},{"line_number":929,"context_line":"        target_details_list \u003d fake.ISCSI_TARGET_DETAILS_LIST"},{"line_number":930,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":931,"context_line":"        volume \u003d fake.ISCSI_VOLUME"},{"line_number":932,"context_line":"        connector \u003d fake.ISCSI_CONNECTOR"},{"line_number":933,"context_line":"        self.mock_object(block_base.NetAppBlockStorageLibrary, \u0027_map_lun\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3197dfbe_f7ccd73e","line":930,"in_reply_to":"f30b2503_467cbac9","updated":"2026-01-16 18:25:41.000000000","message":"thanks for this details.","commit_id":"a32feeab00c3fd7d87ad7fc0d195700c406f5ea8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"336de43ffc3fdef6a74180925d70ba503d31d3a5","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            \u0027configuration\u0027: self.get_config_base(),"},{"line_number":54,"context_line":"            \u0027host\u0027: \u0027openstack@netappblock\u0027,"},{"line_number":55,"context_line":"        }"},{"line_number":56,"context_line":"        self.library \u003d block_base.NetAppBlockStorageLibrary("},{"line_number":57,"context_line":"            \u0027driver\u0027, \u0027protocol\u0027, **kwargs)"},{"line_number":58,"context_line":"        self.library.zapi_client \u003d mock.Mock()"},{"line_number":59,"context_line":"        self.zapi_client \u003d self.library.zapi_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"51ebd97d_58e6fb3b","line":56,"updated":"2026-01-14 23:55:26.000000000","message":"From what I can tell, a new ``library`` object is created for each test, but the config is injected into it from line 53.  The injection calls this function:\nhttps://opendev.org/openstack/cinder/src/commit/efc3217d8b3ce8f4f1a66c7d5b7c940d73a36753/cinder/tests/unit/volume/drivers/netapp/fakes.py#L174\nthat in turn creates a cinder.volume.configuration.Configuration object:\nhttps://opendev.org/openstack/cinder/src/commit/efc3217d8b3ce8f4f1a66c7d5b7c940d73a36753/cinder/volume/configuration.py#L138\nbut I think the conf object that\u0027s being used is this one:\nhttps://opendev.org/openstack/cinder/src/commit/efc3217d8b3ce8f4f1a66c7d5b7c940d73a36753/cinder/volume/configuration.py#L45\nwhich is a global conf object:\nhttps://opendev.org/openstack/oslo.config/src/branch/master/oslo_config/cfg.py#L3691\n\nSo I think it\u0027s possible that tests that change config options could interfere with each other.\n\nWe have a ``flags()`` function defined in the base cinder test case that you could use:\nhttps://opendev.org/openstack/cinder/src/commit/efc3217d8b3ce8f4f1a66c7d5b7c940d73a36753/cinder/tests/unit/test.py#L356\n\nI *think* that will use the same CONF object, but you should do some exploratory testing to make sure that\u0027s the case.\n\nIt might make sense for this to be done in a followup patch, though you should look through the NetApp test code ... maybe it\u0027s already been done for some of the test classes.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c30d2f47f3a4d3f5d6797bde46d2ed084b22c057","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            \u0027configuration\u0027: self.get_config_base(),"},{"line_number":54,"context_line":"            \u0027host\u0027: \u0027openstack@netappblock\u0027,"},{"line_number":55,"context_line":"        }"},{"line_number":56,"context_line":"        self.library \u003d block_base.NetAppBlockStorageLibrary("},{"line_number":57,"context_line":"            \u0027driver\u0027, \u0027protocol\u0027, **kwargs)"},{"line_number":58,"context_line":"        self.library.zapi_client \u003d mock.Mock()"},{"line_number":59,"context_line":"        self.zapi_client \u003d self.library.zapi_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"cc110784_c5b5bf86","line":56,"in_reply_to":"51ebd97d_58e6fb3b","updated":"2026-01-16 18:25:41.000000000","message":"I tried to use the flags() method, but it seems this method is intended for parameters defined in the [DEFAULT] section. Our parameters are within the NetApp backend. I even tried to override the \"netapp_disaggregated_platform\" parameter using the code below, but it did not work. \n\n        for config in (self.mock_src_config, self.mock_dest_config):\n            config.append_config_values(na_opts.netapp_proxy_opts)\n            config.append_config_values(na_opts.netapp_connection_opts)\n            config.append_config_values(na_opts.netapp_transport_opts)\n            config.append_config_values(na_opts.netapp_basicauth_opts)\n            config.append_config_values(na_opts.netapp_certificateauth_opts)\n            config.append_config_values(na_opts.netapp_provisioning_opts)\n            config.append_config_values(na_opts.netapp_cluster_opts)\n            config.append_config_values(na_opts.netapp_san_opts)\n            config.append_config_values(na_opts.netapp_replication_opts)\n            config.netapp_snapmirror_quiesce_timeout \u003d 10\n\n        \n\n        CONF.set_override(\u0027netapp_disaggregated_platform\u0027, False,\n                          group\u003dself.backend) \n\nWe use the above code in some of our tests, and I tried to apply it here as well. However, it failed when the test method invoked the dev code below.\n \n        if self.configuration.netapp_disaggregated_platform:\n            properties[\u0027discard\u0027] \u003d True\n        else:\n            properties[\u0027discard\u0027] \u003d self._is_space_alloc_enabled(lun_path)\n            \n Will check it further if we can optimize this, if require, I can raise follow-up patch.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b71dd1e15d5254be1fa64e90d1326a911091b07a","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            \u0027configuration\u0027: self.get_config_base(),"},{"line_number":54,"context_line":"            \u0027host\u0027: \u0027openstack@netappblock\u0027,"},{"line_number":55,"context_line":"        }"},{"line_number":56,"context_line":"        self.library \u003d block_base.NetAppBlockStorageLibrary("},{"line_number":57,"context_line":"            \u0027driver\u0027, \u0027protocol\u0027, **kwargs)"},{"line_number":58,"context_line":"        self.library.zapi_client \u003d mock.Mock()"},{"line_number":59,"context_line":"        self.zapi_client \u003d self.library.zapi_client"}],"source_content_type":"text/x-python","patch_set":9,"id":"2a35dc29_00990372","line":56,"in_reply_to":"cc110784_c5b5bf86","updated":"2026-01-21 15:48:58.000000000","message":"Ok, since everything seems to be passing, a follow-up is fine.  Just keep in on your radar because it may become an issue as more functionality and tests are added to the driver.","commit_id":"bda5c6ce5654c0683da9d1d1064b9f55e2b3e690"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode_rest_asar2.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"375e57853bf341e131de916d37b1d2db2d2795fe","unresolved":true,"context_lines":[{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def _get_backend_lun_or_namespace(self, path):"},{"line_number":358,"context_line":"        \"\"\"Get the backend LUN or namespace\"\"\""},{"line_number":359,"context_line":"        return path.split(\"/\")[3].replace(\"-\", \"_\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"db88227c_ea2ed73c","line":359,"updated":"2025-09-18 07:02:45.000000000","message":"Lets use the size-1 instead of \u00273\u0027 to avoid hardcoding and future changes.","commit_id":"63ad1fe82c71b5350dd87410fe953957db5c332c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"623b061e33b9fb232815f2ea4333f26133b093ef","unresolved":false,"context_lines":[{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def _get_backend_lun_or_namespace(self, path):"},{"line_number":358,"context_line":"        \"\"\"Get the backend LUN or namespace\"\"\""},{"line_number":359,"context_line":"        return path.split(\"/\")[3].replace(\"-\", \"_\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"ef1d11a5_a982d4bf","line":359,"in_reply_to":"db88227c_ea2ed73c","updated":"2025-09-19 16:32:48.000000000","message":"Done","commit_id":"63ad1fe82c71b5350dd87410fe953957db5c332c"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"8c5eaedb7dd55b02c3d5491ed2e09922a8ceb760","unresolved":true,"context_lines":[{"line_number":356,"context_line":"    def _get_backend_lun_or_namespace(self, path):"},{"line_number":357,"context_line":"        \"\"\"Get the backend LUN or namespace\"\"\""},{"line_number":358,"context_line":"        paths \u003d path.split(\"/\")"},{"line_number":359,"context_line":"        return path.split(\"/\")[len(paths) - 1].replace(\"-\", \"_\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"2c8e927d_008e52a0","line":359,"updated":"2025-09-24 15:02:54.000000000","message":"This doesn\u0027t look right. I think the request to remove the hardcoded [3] was meant to be this:\n\n    lun_name \u003d paths[-1].replace(\"-\", \"_\")\n\nMeaning the last (-1) item resulting from the split on L358. You shouldn\u0027t be splitting again.","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"30e91a5f46edb5c8172fd3afab7f0b496a40e801","unresolved":false,"context_lines":[{"line_number":356,"context_line":"    def _get_backend_lun_or_namespace(self, path):"},{"line_number":357,"context_line":"        \"\"\"Get the backend LUN or namespace\"\"\""},{"line_number":358,"context_line":"        paths \u003d path.split(\"/\")"},{"line_number":359,"context_line":"        return path.split(\"/\")[len(paths) - 1].replace(\"-\", \"_\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f5cd102_7d299376","line":359,"in_reply_to":"2c8e927d_008e52a0","updated":"2025-10-09 16:53:23.000000000","message":"my bad, thanks for pointing this.","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":37940,"name":"Hao Chen","display_name":"Hao Chen","email":"hao.chen1@hitachivantara.com","username":"hvlcchao1"},"change_message_id":"03b7a8e892e97c7eda05dd65ae1a2d3ed0a6587c","unresolved":true,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"39ff4bba_d683e225","line":327,"updated":"2025-10-15 16:26:00.000000000","message":"[Hitachi], on behalf of agalica. Can we guarantee that \u0027num_records\u0027 always exist in \"response\"? Can we guarantee that response[\u0027num_records\u0027] always be \"0\"(ASCII string)? If NO, it would be great to do below\n\u003d\u003d\u003d\nnum_records \u003d response.get(\u0027num_records\u0027, 0)\ntry:\n    if int(num_records) \u003d\u003d 0:\n        return []\nexcept (ValueError, TypeError):\n    # If num_records is not convertible to int, treat it as 0\n    return []","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"336de43ffc3fdef6a74180925d70ba503d31d3a5","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"a89ae1fe_cd0eec80","line":327,"in_reply_to":"37f24056_55704cc2","updated":"2026-01-14 23:55:26.000000000","message":"This looks good to me.","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"319e26b6a9879c56df968276502d780ae7912833","unresolved":true,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"66820f9a_063d0946","line":327,"in_reply_to":"39ff4bba_d683e225","updated":"2025-10-15 18:37:11.000000000","message":"I\u0027m voting +1 on the patch, but like to see NetApp\u0027s response.","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"5d4704d248f2a51cf15f58e6d80604db8b564425","unresolved":true,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"a1d0b31f_51b8a569","line":327,"in_reply_to":"66820f9a_063d0946","updated":"2026-01-06 12:30:22.000000000","message":"num_records would always be present in ONTAP REST API responses. it can be empty with size \u003d 0 but in a successful response, num_records should always be present.","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"211393acc7e7c6b9203840cfc2358ef104c472a2","unresolved":true,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"c7364e7f_561db019","line":327,"in_reply_to":"a1d0b31f_51b8a569","updated":"2026-01-12 17:06:54.000000000","message":"agalica\u0027s question had 2 parts.  You answered the first one, namely that \u0027num_records\u0027 will always be present.  The second question had to do with the type of the num_records value, namely, will it always be a string representing an int, and could it be an empty string?  If it\u0027s an integer 0 or an empty string, then the condition at line 327 won\u0027t catch it.","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b0bb7e40996d254be6bea7d21089cf84a4f9a695","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        response \u003d self.send_request(\u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":328,"context_line":"            return []"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        luns \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"37f24056_55704cc2","line":327,"in_reply_to":"c7364e7f_561db019","updated":"2026-01-13 16:39:39.000000000","message":"I have change the code and added the below code, this will make sure is there is record from Rest output it will return empty list \nif len(records) \u003d\u003d 0:\n   return []","commit_id":"3fd5e695df32822c31176e81758ccfe30a342ce8"}],"releasenotes/notes/bug-2124264-fix-pools-not-populate-for-asar2-platform-ae02b1510627b9e3.yaml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"8c5eaedb7dd55b02c3d5491ed2e09922a8ceb760","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4f1a05fd_3cd28c13","updated":"2025-09-24 15:02:54.000000000","message":"If this patch merges in this cycle then a release note shouldn\u0027t be necessary because the ASAr2 was introduced in this cycle. But maybe it\u0027s still OK to have a note, especially if we don\u0027t know when this patch will merge.","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b0bb7e40996d254be6bea7d21089cf84a4f9a695","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"29b96b78_b1d252ce","in_reply_to":"4f1a05fd_3cd28c13","updated":"2026-01-13 16:39:39.000000000","message":"Making this are resolved as we are merging this in G-release and need to back-port this to F-release","commit_id":"7196650bec9b71b1ab3684406d022e323d6b407f"}]}
