)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"006a5b185a3d8624d6e587cb212938580fce16d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a13a822_4c6d82a7","updated":"2026-02-12 14:48:13.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"5a6c3b3783af1328d28bb7f151913e4a246164ae"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"a1fe67c96ee6a91ddc7fdce4841ec5b01a591400","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b1a26f93_fafd9d16","updated":"2026-02-12 10:47:26.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"5a6c3b3783af1328d28bb7f151913e4a246164ae"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"3ea4a0ed54fa32161a5c5d531faf5efb89c0229c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ed7fa1fe_58d9701a","updated":"2026-02-12 15:09:37.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"5a6c3b3783af1328d28bb7f151913e4a246164ae"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"475ca1a218fa0fefbfc7820d0f78507ce2bf0b8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"93dcaf0e_c11a8f65","updated":"2026-02-12 05:22:38.000000000","message":"recheck","commit_id":"5a6c3b3783af1328d28bb7f151913e4a246164ae"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bb39f937411b7f824344cae9c4dc79f44f2b186a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b622dce7_76d41fc0","updated":"2026-02-11 14:28:12.000000000","message":"recheck","commit_id":"5a6c3b3783af1328d28bb7f151913e4a246164ae"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7e8dfee9a76ab7eb15e6f9018220de6ac61999ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"336f91dd_1103821a","updated":"2026-02-18 10:06:22.000000000","message":"recheck","commit_id":"8882ba747607510cf7a7f3a27403e0a2acae05f0"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"79984814d44592e200d4fd31e12ae5ee6796bd2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6e085cf8_d432273c","updated":"2026-02-19 11:48:29.000000000","message":"recheck","commit_id":"8677c8205ace78dafd22f56acd43babc8c591796"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"3b71560b7bd0ee562193a1ef80dc3d82bffa9d96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8364cdb0_11e9cec0","updated":"2026-02-20 05:58:49.000000000","message":"recheck","commit_id":"8677c8205ace78dafd22f56acd43babc8c591796"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5ccf1d548e275b6a59683a4310bb2b082fa2b695","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"78a3d454_98f9c177","updated":"2026-03-02 06:06:47.000000000","message":"@rosmaita.fossdev@gmail.com, @jobernar@redhat.com and @rajatdhasmana@gmail.com, could please review this patch.","commit_id":"18bc867fc4bf30542bf7bc5567808756d147c894"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"b1ea7656483c8067411647905532b67f1c064661","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a2d09766_31e59cc8","updated":"2026-02-26 14:46:15.000000000","message":"LGTM","commit_id":"18bc867fc4bf30542bf7bc5567808756d147c894"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c864b9198dbe3c2747fcb244384f25b60becca74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7e453a5f_24921ff6","updated":"2026-02-24 04:29:11.000000000","message":"run-NetApp CI","commit_id":"18bc867fc4bf30542bf7bc5567808756d147c894"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"35fc464760f91a208bfbfe8a2d8759b59d4d403e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1a779d7d_ba0de7d6","updated":"2026-03-09 06:22:18.000000000","message":"LGTM","commit_id":"45f172b4a1ca521979d6aceac39b151a7e70ef51"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"23d09d34e1bd5f6a9ece06631d3e71606c403cde","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"58c95280_a02a7597","updated":"2026-03-06 09:19:00.000000000","message":"Run-NetApp CI","commit_id":"45f172b4a1ca521979d6aceac39b151a7e70ef51"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ede37e9a5a05629d5861b07fc3cc077b0df08e4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"810ae356_f0b582b4","updated":"2026-03-05 14:36:25.000000000","message":"Run-NetApp CI","commit_id":"45f172b4a1ca521979d6aceac39b151a7e70ef51"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"3e2f4392633eceb83c130dce2d21635ddc0d57e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"11fbfb87_4d7297f4","updated":"2026-03-15 13:33:10.000000000","message":"recheck","commit_id":"5ecb1f0e6c4b136915fca08c69d7f517eb287757"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8e9462f0344d5737e0eb8e6ade142fe5590fa165","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"382de835_8bb1c708","updated":"2026-03-21 08:12:03.000000000","message":"run-NetApp CI","commit_id":"5ecb1f0e6c4b136915fca08c69d7f517eb287757"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d68489021dbaa319b190138420af0ff0795cd9b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ed030cd3_460a6f81","updated":"2026-03-17 04:46:18.000000000","message":"run-NetApp CI","commit_id":"5ecb1f0e6c4b136915fca08c69d7f517eb287757"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"292337a2c85291fa6150e85b6917c41761ac9e1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"fe51e603_cb4f0610","updated":"2026-03-20 11:36:45.000000000","message":"run-NetApp CI","commit_id":"5ecb1f0e6c4b136915fca08c69d7f517eb287757"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f5bc410e6213f436a1ffcddd791874e3e3381c1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0d82427a_e5e6e6bf","updated":"2026-03-31 06:12:57.000000000","message":"recheck","commit_id":"3dbf3f8e6a6fc68b7010993d6c6ec1a87daa73c0"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"e1283fe378b43f02b5c3adf7a2f1b6a622ee0560","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f911ea57_55e8278b","updated":"2026-03-31 09:18:29.000000000","message":"recheck","commit_id":"3dbf3f8e6a6fc68b7010993d6c6ec1a87daa73c0"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"929ad05bc837014892772882056546356a0751fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"8a7dcd2a_07e55d91","updated":"2026-03-31 14:29:33.000000000","message":"run-NetApp CI","commit_id":"3dbf3f8e6a6fc68b7010993d6c6ec1a87daa73c0"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6ccfc6802823f4a180b49fc17ea12b00e221d337","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3d70f37d_daedbff7","updated":"2026-04-16 09:20:08.000000000","message":"recheck","commit_id":"dfd9f46bbfe37904fc8db684d22ed31d413b1dc4"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c7efc8398931528f2abc5ddfb7071eb789dc96df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"95d850c6_c7ba02e7","updated":"2026-04-16 04:04:46.000000000","message":"recheck","commit_id":"dfd9f46bbfe37904fc8db684d22ed31d413b1dc4"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ac6649b29df015c1b7ed2f68d6962d5c5ae4bd1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"dfeb9d49_91e2fc54","updated":"2026-04-17 04:15:58.000000000","message":"recheck","commit_id":"dfd9f46bbfe37904fc8db684d22ed31d413b1dc4"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"683234382bdc5eb004057c7bb3a6f3a691f76060","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2d79948f_d7ca66ab","updated":"2026-04-28 21:35:49.000000000","message":"Please resolve the merge conflict","commit_id":"63b0ad8f636d796f0b7b907a0dbac78cd471480d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cf9af109ed719afeb9075157ed18b0e9d32cbfb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"84c107d0_5ed2edc1","updated":"2026-04-18 12:07:20.000000000","message":"recheck","commit_id":"63b0ad8f636d796f0b7b907a0dbac78cd471480d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a982b2bbee3288f7063d9aedbd5acbdae14992b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a57f6780_e17850ac","updated":"2026-04-20 05:33:09.000000000","message":"recheck","commit_id":"63b0ad8f636d796f0b7b907a0dbac78cd471480d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bad3a5cd115a41d500fe457ab5d9a4315f4f462e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"f6e5333e_7e697c0e","updated":"2026-04-20 12:02:38.000000000","message":"recheck","commit_id":"63b0ad8f636d796f0b7b907a0dbac78cd471480d"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"bbe99922787ca76f99462c568c9cbe2abd3dc729","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"6aa000e4_b5191990","updated":"2026-05-07 12:16:20.000000000","message":"LTGM","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a4c314e7fc6b95990a267da1b5cdf7783568e8ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"df73002b_3ddd688d","updated":"2026-05-13 14:31:21.000000000","message":"Problem with the release note formatting; see comment inline.","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"159c168ea966c6e4d5f92a3ca24d473db5b0c0b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"5a1627da_2cec6410","updated":"2026-05-11 09:33:59.000000000","message":"Run-NetApp CI","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"36a1b924_09525cad","updated":"2026-05-15 15:57:12.000000000","message":"I have made some nitpicks and suggestions.\n\nThe -1 is for the following:\n1. I have some serious doubts about some of the code presented here, particularly in ```client_cmode_rest_asar2.py```, which looks like it may be AI.\n2. I think you need to use ```override_config``` in the unit tests to avoid issues with threading.\n3. I do wonder if the checks for split initiation can be the victim of a race condition.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"b4f7d4863c1d1b1fcae58dc16c54368269106f72","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d51b35f4_7dcc4080","updated":"2026-05-15 16:00:57.000000000","message":"have made some nitpicks and suggestions.\n\nThe -1 is for the following:\n\n1. I have some serious doubts about some of the code presented here, particularly in ```client_cmode_rest_asar2.py```, which looks like it may be AI.\n2. I think you need to use ```override_config``` in the unit tests to avoid issues with threading.\n3. I do wonder if the checks for split initiation can be the victim of a race condition.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"e8f07647682e3f5c5d35a3a0e8b19904cb00917c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d8e398cc_2dd5073d","updated":"2026-05-15 15:59:55.000000000","message":"have made some nitpicks and suggestions.\n\nThe -1 is for the following:\n\nI have some serious doubts about some of the code presented here, particularly in client_cmode_rest_asar2.py, which looks like it may be AI.\nI think you need to use override_config in the unit tests to avoid issues with threading.\nI do wonder if the checks for split initiation can be the victim of a race condition.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"e8677d7f89dab6f5dab6dc3300e1f85170023de6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"e92ea593_b605f101","in_reply_to":"3d5c2503_c4980281","updated":"2026-05-20 07:49:09.000000000","message":"Understood! \n\nThis is what made me think AI: return value.lower() in (\u0027true\u0027, \u00271\u0027, \u0027yes\u0027, \u0027on\u0027)\n\nAnd then the function after that I still don\u0027t fully understand (asked for clarification).","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"3d5c2503_c4980281","in_reply_to":"80446a19_ee14cb93","updated":"2026-05-19 12:01:07.000000000","message":"Initial code is written by me but at the end few places I have use AI to generate the code but all the code generated by AI is fully understood and tested.\nI made the require change in unit test, most of the unit test are generated by AI.\nFor split initialization, I have given the proper justification.\n\nLet me know if you have any further comment.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"dff70c65_02765cd4","in_reply_to":"d51b35f4_7dcc4080","updated":"2026-05-19 12:01:07.000000000","message":"Initial code is written by me but at the end few places I have use AI to generate the code but all the code generated by AI is fully understood and tested.\nI made the require change in unit test, most of the unit test are generated by AI.\nFor split initialization, I have given the proper justification.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c0eca1905939509b7a682e51cef944eaab31a7e6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"80446a19_ee14cb93","in_reply_to":"d8e398cc_2dd5073d","updated":"2026-05-15 16:01:19.000000000","message":"resolving due to formatting","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8cc5229760c6a1280f3d3b1dfb81a2b2aff2b8b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"f6675365_600c1600","in_reply_to":"e92ea593_b605f101","updated":"2026-05-21 13:02:42.000000000","message":"It mean if API return one of there value as a string, this method should return True. I have change this also, i remove, I keep only (\"true\" and \"True\") in this case it will return True otherwise it will return False.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"58faa5e0344894f731e5008483aad5c3da72205c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":18,"id":"6efa5735_5b70e43b","updated":"2026-05-20 06:32:48.000000000","message":"Hi @gawasthi2010@gmail.com,\n\nLeaving neutral for now as I\u0027m satisfied with most of your responses/changes, but I still have a question about the logic in the ```waiter``` if you can take a look.  \n\nI also think renaming the function that does the split and the wait might be useful.","commit_id":"f6da72d0db28fdcd4e4eeb7bd2fc06b72bc42069"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"24ffdbb5fd190f6ac0b88331a2ed6487d3ac6a00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"6a96121b_36a7c0cd","updated":"2026-05-20 05:30:35.000000000","message":"Run-NetApp CI","commit_id":"f6da72d0db28fdcd4e4eeb7bd2fc06b72bc42069"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"632aba92391eb246dfaf266eb84203c637452f7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"73843a7c_3a052ce3","updated":"2026-05-19 12:01:51.000000000","message":"Run-NetApp CI","commit_id":"f6da72d0db28fdcd4e4eeb7bd2fc06b72bc42069"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"8e266518_f5f51452","updated":"2026-05-19 12:01:07.000000000","message":"Thanks @anthony.galica@hitachivantara.com for your review comments, I provided my response and incorporated the review comments. Please take a look and feel free to reopen the comment if you disagree with my response.","commit_id":"f6da72d0db28fdcd4e4eeb7bd2fc06b72bc42069"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8cc5229760c6a1280f3d3b1dfb81a2b2aff2b8b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"fb3a90b7_d4a954c2","in_reply_to":"6efa5735_5b70e43b","updated":"2026-05-21 13:02:42.000000000","message":"I have added my response, please take a look and let me know if you have any further comments.","commit_id":"f6da72d0db28fdcd4e4eeb7bd2fc06b72bc42069"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"86f32f5d6e0306fe2ed00fff702462011b92adf6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"cf67808c_6662d623","updated":"2026-05-22 05:18:14.000000000","message":"+1 as Gireesh has satisfied answering or changing the items I thought needed changing, or gave explanations otherwise (as well as putting up with my questioning!).","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"de3ec800fe9e167b4a8cdb9c2ea2e2c28226cc7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"432e1591_2c07284a","updated":"2026-06-02 06:25:10.000000000","message":"As I am a new core, I am trying to tread a little lightly on XL patches with my +2 initially.\n\nFor now it\u0027s a +1 from me as questions were answered and changes were made as requested (including some that I left as optional).\n\nOnce there are a couple more non-core reviews or a core +2 I am willing to go over the current state of the patch and +2 it.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1b366889d37a7512d859887938292a54f4efd4b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e0e84bd9_397703b5","updated":"2026-06-02 13:14:19.000000000","message":"Please explain the NetApp CI situation.  Is the ASAr2 covered by the existing jobs, or does it require a new job (and how can we as reviewers tell?).  Thank you.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"199caf3d50dedeb0b83c3d06acd865998069a6e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"14a8863e_06380908","updated":"2026-05-22 03:52:21.000000000","message":"Run-NetApp CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"6baf683b86059b6c800721202500f8f7cba609b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"09559c00_6333c4f6","updated":"2026-06-10 10:49:10.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"4a24fe5aad750c04917d58e37c1f66900e7bbfa1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"34205268_32765a85","updated":"2026-06-09 15:30:11.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"452d6e92b96030ee60dbd5526d471b48803572a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"52d0d891_3f6d7592","updated":"2026-06-11 05:41:41.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"aae59782440a29d66513d23e00693e8efd7e010f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"7e2db042_570156bb","updated":"2026-06-11 16:31:20.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"1622f6af9c7482918da75ec420be46ef3e17f4f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"b49ad434_4d477e56","updated":"2026-06-10 12:58:40.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"13608a96b1e39eaf40da78d5a902f5040853e187","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"c600f7e2_f909c928","updated":"2026-06-10 15:45:54.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"60664bbf0d0be3c0cfcce8344d1e0ec7e8114a33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e5416731_5d38cc3b","updated":"2026-06-10 17:14:58.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8cc5229760c6a1280f3d3b1dfb81a2b2aff2b8b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"770cbede_8d59fa38","updated":"2026-05-21 13:02:42.000000000","message":"Thanks @anthony.galica@hitachivantara.com for your review comments, I have incorporated all, let me know if you have any further comments.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"09f0f8c7936ca8909e159ca9b80ef3d64176a4b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a5b111e8_9d42fa89","in_reply_to":"e0e84bd9_397703b5","updated":"2026-06-21 08:56:56.000000000","message":"We are working on this ..! Will run ASAr2 pipeline for this patch.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"b1fe18a99312ca1200176bfa289729c5b097d7ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"4830adf2_52bb1eec","updated":"2026-06-14 14:07:29.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"2a12e37e618ce675190961537a20b98c2a1d77e5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5fc68eff_4e73fadb","updated":"2026-06-14 10:41:15.000000000","message":"Thanks @jobernar@redhat.com, for your review comment. Please take a look and reopen the comment if you are not agree on my response.","commit_id":"2a12e37e618ce675190961537a20b98c2a1d77e5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2a7da8569cd2532ad3ab3a4ac500bfcdac61a462","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"58f1dd9d_e0a4b7a9","updated":"2026-06-24 15:47:31.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"d987d48e09a4238de880b3b822a073ef5b31e90d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"dc582c3baaafe05a83454b271328715391ef1e2a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"ad6ba128_10f2031e","updated":"2026-06-22 06:55:12.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"d987d48e09a4238de880b3b822a073ef5b31e90d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9d008fb7a9648b09d79eb832a21093033dbd8a23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"e1d28c83_1b1f138c","updated":"2026-06-21 15:50:30.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"d987d48e09a4238de880b3b822a073ef5b31e90d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ab56fb345cd2485476b83dce05547ee581fb19de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"aa047549_beda9e1b","updated":"2026-06-25 14:08:26.000000000","message":"https://netappopenstacklogserver.s3-us-west-1.amazonaws.com/logs/74/971174/22/upstream-check-cinder-ASAr2/cinder-tempest-plugin-ontap-iscsi-asar2/2186c9e/controller/logs/screen-c-vol.txt\n\nand\n\nhttps://netappopenstacklogserver.s3-us-west-1.amazonaws.com/logs/74/971174/22/upstream-check-cinder-ASAr2/cinder-tempest-plugin-ontap-iscsi-asar2/2186c9e/testr_results.html\n\n\n seems to show errors related to snapshots?","commit_id":"d987d48e09a4238de880b3b822a073ef5b31e90d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6fbc6fd78d859dfff016a1798574864fe0dc0ee1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3f3fae77_c96c438b","in_reply_to":"aa047549_beda9e1b","updated":"2026-06-30 09:30:25.000000000","message":"eharney@redhat.com, There is only one test is failing and that is during the teardown. \nCould you please approve the patch now.\n\nhttps://netappopenstacklogserver.s3-us-west-1.amazonaws.com/logs/74/971174/23/upstream-check-cinder-ASAr2/cinder-tempest-plugin-ontap-iscsi-asar2/0827222/testr_results.html","commit_id":"d987d48e09a4238de880b3b822a073ef5b31e90d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"55d4850490251628abf868958b67c1851f962874","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c0b01361_017b3c22","updated":"2026-06-30 13:35:47.000000000","message":"Need to re-evaluate tempest results","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c3149f67bdb0b74fba10af86744aa67ac4131ec7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"23f70dc0_6210f4b0","updated":"2026-06-29 04:26:08.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"80d7605c49617de52eef046292a5684840cd5ab0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"30980683_8f9d8139","updated":"2026-06-29 07:11:53.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":38373,"name":"Manideep","display_name":"Manideep","email":"manideep.openstack@gmail.com","username":"manideepn","status":"NetApp"},"change_message_id":"2aef24ce2387752334467ba9fd273bfc319cc15a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"34f3d5b6_4163f63f","updated":"2026-06-30 05:49:15.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"a210a153a47943a428b84463a54d71d09811e7ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c1186b80_fb1fe266","updated":"2026-06-30 05:21:43.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"7eed68d59256afdcdaa9d7afe5a08b5592d23b42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"d8eca66c_dda2c073","updated":"2026-06-30 06:42:37.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fb1a630d7e0dd383c7c3bc6613a49559c3714537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"dd4257d6_e9b2fe2b","updated":"2026-06-29 15:47:00.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cbb75cd1c72c2befff7305e708a6ef3c04649d89","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":23,"id":"aca626cc_2641a004","in_reply_to":"607c9065_686b0d27","updated":"2026-07-03 14:30:18.000000000","message":"@jobernar@redhat.com and @rosmaita.fossdev@gmail.com, could you please take a look. This is pending for long time.","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8f9a2cf65a62600a823fd3765c4d6536e76b2db9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":23,"id":"4ad20726_1a26b752","in_reply_to":"aca626cc_2641a004","updated":"2026-07-10 13:39:53.000000000","message":"eharney@redhat.com, I have evaluated the tempest from my end end only one test is failing and that is failing during the teardown. Hope that will not be blocker for merging this patch. And let me know if anything need to be done from my side.\nhttps://netappopenstacklogserver.s3-us-west-1.amazonaws.com/logs/74/971174/23/upstream-check-cinder-ASAr2/cinder-tempest-plugin-ontap-iscsi-asar2/0827222/testr_results.html","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"4d80c27b749d2ab74a8e63b9e119bd736f450e32","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":23,"id":"607c9065_686b0d27","in_reply_to":"c0b01361_017b3c22","updated":"2026-07-01 14:55:56.000000000","message":"@eharney@redhat.com, this patch is pending since long time, let me know if anything need to done from my side. This raised last release and still not merged. Could you please speedup the process.","commit_id":"e4703d0326d6eed78097ec99915dcd9c1463cf4e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2765da0d83681db3b21d364e1997da2d475857b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"18d8c221_482bc508","updated":"2026-07-16 06:10:46.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f9d480f5398bf731ca9fb9d590b91e1d86fabbb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"1dbff100_e76254a0","updated":"2026-07-17 14:16:52.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a7cd7a0775f1fc585e4f588d01cc457a3d829488","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"2b29e77b_b3888d96","updated":"2026-07-16 05:16:13.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":39225,"name":"Prudhvi","display_name":"Prudhvi","email":"prudhvi.openstack@gmail.com","username":"Prudhvi"},"change_message_id":"f88c856b10a9531d88cb41fac5a5a1bb0ec8fd4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"59dac3a2_f05c08cc","updated":"2026-07-16 15:26:46.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"378f5d326940aa93916eea86e4728f77db55b0e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"b0c3e908_8ea4dae7","updated":"2026-07-17 11:54:02.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"dbf97eb37f44397f57587b8a6198ef7911b85353","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"fe4ec945_04cf2f52","updated":"2026-07-17 09:47:01.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fccd27c022fcc89766823f82d0bf43159d126c11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"ff6745c7_323c79a3","updated":"2026-07-16 09:08:37.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"ee3c8ccfc39c25e8e8a98981045ca49161b0a20c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"01b0b003757bcf426adee956658f74ac70ff4cf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"53293ce5_f9df7667","updated":"2026-07-19 09:14:25.000000000","message":"Run-NetApp-ASAr2","commit_id":"1f015b4858595c343687ee3a2a8a0510c9592f0d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"05c4f1dc02021662595802a96b1898ff38f59d1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"675a9816_7d0dd794","updated":"2026-07-19 13:56:30.000000000","message":"Run-NetApp-ASAr2","commit_id":"1f015b4858595c343687ee3a2a8a0510c9592f0d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cbf464c8d64d4851645834a248f6a752e60a09c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"e2d91274_7dbe6f68","updated":"2026-07-18 17:16:03.000000000","message":"Run-NetApp-ASAr2","commit_id":"1f015b4858595c343687ee3a2a8a0510c9592f0d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6460ee176e3203b622c447dab6e755169e430c97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"d28d0485_c158a6ce","updated":"2026-07-18 13:02:16.000000000","message":"Run-NetApp-ASAr2 CI","commit_id":"1f015b4858595c343687ee3a2a8a0510c9592f0d"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/client/test_client_cmode_rest_asar2.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":666,"context_line":"            return_value\u003dfake.NAMESPACE_NAME"},{"line_number":667,"context_line":"        )"},{"line_number":668,"context_line":"        self.client.get_all_clones_volume_uuid \u003d mock.Mock("},{"line_number":669,"context_line":"            return_value\u003d[{\u0027uuid\u0027: \u0027clone-uuid\u0027}]"},{"line_number":670,"context_line":"        )"},{"line_number":671,"context_line":"        self.client.volume_clone_split_start \u003d mock.Mock(return_value\u003d{"},{"line_number":672,"context_line":"            \u0027job\u0027: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"bc8c8a3e_ac454853","line":669,"updated":"2026-05-15 15:57:12.000000000","message":"Would it make sense to have a second test (perhaps with ddt) that has more than one clone to make sure they all get cleaned up?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":666,"context_line":"            return_value\u003dfake.NAMESPACE_NAME"},{"line_number":667,"context_line":"        )"},{"line_number":668,"context_line":"        self.client.get_all_clones_volume_uuid \u003d mock.Mock("},{"line_number":669,"context_line":"            return_value\u003d[{\u0027uuid\u0027: \u0027clone-uuid\u0027}]"},{"line_number":670,"context_line":"        )"},{"line_number":671,"context_line":"        self.client.volume_clone_split_start \u003d mock.Mock(return_value\u003d{"},{"line_number":672,"context_line":"            \u0027job\u0027: {"}],"source_content_type":"text/x-python","patch_set":17,"id":"3f243b88_40423eb0","line":669,"in_reply_to":"bc8c8a3e_ac454853","updated":"2026-05-19 12:01:07.000000000","message":"Done","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":1499,"context_line":"            self,"},{"line_number":1500,"context_line":"            mock_get_su_uuid,"},{"line_number":1501,"context_line":"    ):"},{"line_number":1502,"context_line":"        # mock_get_backend.return_value \u003d self.su_name"},{"line_number":1503,"context_line":"        mock_get_su_uuid.side_effect \u003d netapp_utils.NetAppDriverException("},{"line_number":1504,"context_line":"            \u0027Not found\u0027)"},{"line_number":1505,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"4520ef7a_a13e97ec","line":1502,"updated":"2026-05-15 15:57:12.000000000","message":"I wonder if these comments in this test should be cleaned up if they are not forward looking to avoid confusion (or maybe they need to be uncommented?)","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":1499,"context_line":"            self,"},{"line_number":1500,"context_line":"            mock_get_su_uuid,"},{"line_number":1501,"context_line":"    ):"},{"line_number":1502,"context_line":"        # mock_get_backend.return_value \u003d self.su_name"},{"line_number":1503,"context_line":"        mock_get_su_uuid.side_effect \u003d netapp_utils.NetAppDriverException("},{"line_number":1504,"context_line":"            \u0027Not found\u0027)"},{"line_number":1505,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"44c3fd81_c75abdb0","line":1502,"in_reply_to":"4520ef7a_a13e97ec","updated":"2026-05-19 12:01:07.000000000","message":"Got catch. Not require, removed.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":1821,"context_line":"        self.client.send_request \u003d mock.Mock("},{"line_number":1822,"context_line":"            return_value\u003d{\u0027clone\u0027: {\u0027split_initiated\u0027: False}}"},{"line_number":1823,"context_line":"        )"},{"line_number":1824,"context_line":"        self.assertRaises(netapp_utils.NetAppDriverException,"},{"line_number":1825,"context_line":"                          self.client.wait_for_split_to_complete,"},{"line_number":1826,"context_line":"                          su_uuid, wait_interval\u003d5,"},{"line_number":1827,"context_line":"                          require_split_start\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"e695f9e9_dee54aeb","line":1824,"updated":"2026-05-15 15:57:12.000000000","message":"In the actual code, is it possible for a split to complete before it is checked, thus raising an exception despite actually working?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":1821,"context_line":"        self.client.send_request \u003d mock.Mock("},{"line_number":1822,"context_line":"            return_value\u003d{\u0027clone\u0027: {\u0027split_initiated\u0027: False}}"},{"line_number":1823,"context_line":"        )"},{"line_number":1824,"context_line":"        self.assertRaises(netapp_utils.NetAppDriverException,"},{"line_number":1825,"context_line":"                          self.client.wait_for_split_to_complete,"},{"line_number":1826,"context_line":"                          su_uuid, wait_interval\u003d5,"},{"line_number":1827,"context_line":"                          require_split_start\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7287c3bf_822edc0e","line":1824,"in_reply_to":"e695f9e9_dee54aeb","updated":"2026-05-19 12:01:07.000000000","message":"I have provided justification and explained the scenarios where this issue can occur in the main code.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_base.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":1631,"context_line":"            is_snapshot\u003dTrue)"},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"    def test__create_snapshot_asar2(self):"},{"line_number":1634,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d True"},{"line_number":1635,"context_line":""},{"line_number":1636,"context_line":"        self.library._create_snapshot(fake.SNAPSHOT)"},{"line_number":1637,"context_line":"        self.library.zapi_client.create_snapshot.assert_called_once()"}],"source_content_type":"text/x-python","patch_set":17,"id":"35ed7acc_b09968fa","line":1634,"updated":"2026-05-15 15:57:12.000000000","message":"Are we sure this won\u0027t cause race conditions during threaded runs?\n\nIf this is a conf, you may want to use ```override_config()```\n\nI see multiple other tests doing this as well, so I think it may be necessary.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":1631,"context_line":"            is_snapshot\u003dTrue)"},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"    def test__create_snapshot_asar2(self):"},{"line_number":1634,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d True"},{"line_number":1635,"context_line":""},{"line_number":1636,"context_line":"        self.library._create_snapshot(fake.SNAPSHOT)"},{"line_number":1637,"context_line":"        self.library.zapi_client.create_snapshot.assert_called_once()"}],"source_content_type":"text/x-python","patch_set":17,"id":"824a400f_7aa34c6d","line":1634,"in_reply_to":"35ed7acc_b09968fa","updated":"2026-05-19 12:01:07.000000000","message":"Make the require changes","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":1688,"context_line":"         zapi_client.create_volume_from_snapshot.assert_called_once()"},{"line_number":1689,"context_line":"         )"},{"line_number":1690,"context_line":"        self.library._get_volume_model_update.assert_called_once_with(volume)"},{"line_number":1691,"context_line":"        assert result \u003d\u003d {\u0027foo\u0027: \u0027bar\u0027}"},{"line_number":1692,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"    def test_extend_volume(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"cd1cfdfe_18a358de","line":1691,"updated":"2026-05-15 15:57:12.000000000","message":"```self.assertEqual()```","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":1688,"context_line":"         zapi_client.create_volume_from_snapshot.assert_called_once()"},{"line_number":1689,"context_line":"         )"},{"line_number":1690,"context_line":"        self.library._get_volume_model_update.assert_called_once_with(volume)"},{"line_number":1691,"context_line":"        assert result \u003d\u003d {\u0027foo\u0027: \u0027bar\u0027}"},{"line_number":1692,"context_line":"        self.library.configuration.netapp_disaggregated_platform \u003d False"},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"    def test_extend_volume(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"66aedde8_e2cd8c94","line":1691,"in_reply_to":"cd1cfdfe_18a358de","updated":"2026-05-19 12:01:07.000000000","message":"Done","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"}],"cinder/volume/drivers/netapp/dataontap/block_base.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":387,"context_line":"                                             snapshot[\u0027name\u0027])"},{"line_number":388,"context_line":"        else:"},{"line_number":389,"context_line":"            self._delete_lun(snapshot[\u0027name\u0027])"},{"line_number":390,"context_line":"            LOG.debug(\"Snapshot %s deletion successful\", snapshot[\u0027name\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":393,"context_line":"        source \u003d {\u0027name\u0027: snapshot[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":17,"id":"ef85c4ca_cc90fec7","line":390,"updated":"2026-05-15 15:57:12.000000000","message":"Should the comment be outside of the else?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                                             snapshot[\u0027name\u0027])"},{"line_number":388,"context_line":"        else:"},{"line_number":389,"context_line":"            self._delete_lun(snapshot[\u0027name\u0027])"},{"line_number":390,"context_line":"            LOG.debug(\"Snapshot %s deletion successful\", snapshot[\u0027name\u0027])"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":393,"context_line":"        source \u003d {\u0027name\u0027: snapshot[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":17,"id":"4b51b92a_1c0e336f","line":390,"in_reply_to":"ef85c4ca_cc90fec7","updated":"2026-05-19 12:01:07.000000000","message":"Thanks to pointing this, done.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"a9cab68fb30e80784ad78eb3fe03a11cb91d5d72","unresolved":true,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""},{"line_number":385,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":386,"context_line":"            self.zapi_client.delete_snapshot(snapshot[\u0027volume_name\u0027],"},{"line_number":387,"context_line":"                                             snapshot[\u0027name\u0027])"},{"line_number":388,"context_line":"        else:"},{"line_number":389,"context_line":"            self._delete_lun(snapshot[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":20,"id":"7c09bf5f_928fe9f7","line":386,"updated":"2026-06-03 17:19:00.000000000","message":"Both volumes and snapshots should be treated as objects instead of dicts.  So volume.size over volume[\u0027size\u0027] for example.  There are a few instances in this patch that need to be updated.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":384,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""},{"line_number":385,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":386,"context_line":"            self.zapi_client.delete_snapshot(snapshot[\u0027volume_name\u0027],"},{"line_number":387,"context_line":"                                             snapshot[\u0027name\u0027])"},{"line_number":388,"context_line":"        else:"},{"line_number":389,"context_line":"            self._delete_lun(snapshot[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":20,"id":"de07a7c5_b74af69a","line":386,"in_reply_to":"7c09bf5f_928fe9f7","updated":"2026-06-14 10:41:15.000000000","message":"Since dict-style paths are already common in NetApp driver code, I am seeing same with code, changing only a few lines could reduce consistency unless you perform a broader, deliberate cleanup.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"}],"cinder/volume/drivers/netapp/dataontap/block_cmode.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":1394,"context_line":""},{"line_number":1395,"context_line":"    def migrate_volume(self, context, volume, host):"},{"line_number":1396,"context_line":"        \"\"\"Migrate Cinder volume to the specified pool or vserver.\"\"\""},{"line_number":1397,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":1398,"context_line":"            return False, {}"},{"line_number":1399,"context_line":"        return self.migrate_volume_ontap_assisted("},{"line_number":1400,"context_line":"            volume, host, self.backend_name, self.configuration.netapp_vserver)"}],"source_content_type":"text/x-python","patch_set":17,"id":"e898be43_a386276b","line":1397,"updated":"2026-05-15 15:57:12.000000000","message":"Migration not supported, I assume?  What happened previously if netapp_disaggregated_platform was True?  An exception?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":1394,"context_line":""},{"line_number":1395,"context_line":"    def migrate_volume(self, context, volume, host):"},{"line_number":1396,"context_line":"        \"\"\"Migrate Cinder volume to the specified pool or vserver.\"\"\""},{"line_number":1397,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":1398,"context_line":"            return False, {}"},{"line_number":1399,"context_line":"        return self.migrate_volume_ontap_assisted("},{"line_number":1400,"context_line":"            volume, host, self.backend_name, self.configuration.netapp_vserver)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3d90088f_1ba27f27","line":1397,"in_reply_to":"e898be43_a386276b","updated":"2026-05-19 12:01:07.000000000","message":"We are introducing ASAr2\u0027s F-release with added basic functionality, including the Cinder volume creation workflow. We are implementing ASAr2 support feature by feature. Previously, when netapp_disaggregated_platform was set to true, migrations would fail, but customers would understand this limitation since it was not supported in the previous release. Additionally, ASAr2 supports only host-based migration, not storage-based migration, because ASAr2 does not support volume move operations.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode_rest_asar2.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":19,"context_line":"the base REST client and overrides methods to implement ASA r2 specific"},{"line_number":20,"context_line":"workflows when needed."},{"line_number":21,"context_line":"\"\"\""},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":17,"id":"3d273acb_76df614d","line":22,"updated":"2026-05-15 15:57:12.000000000","message":"I wonder if you should keep that newline to avoid potential merge issues.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":19,"context_line":"the base REST client and overrides methods to implement ASA r2 specific"},{"line_number":20,"context_line":"workflows when needed."},{"line_number":21,"context_line":"\"\"\""},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cinder.i18n import _"}],"source_content_type":"text/x-python","patch_set":17,"id":"d63d7e55_9e3cf3ef","line":22,"in_reply_to":"3d273acb_76df614d","updated":"2026-05-19 12:01:07.000000000","message":"Done","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":216,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":217,"context_line":"                if e.code \u003d\u003d netapp_api.EDELETE_SPLIT_CLONE:"},{"line_number":218,"context_line":"                    # Split all the child clone from parent volume"},{"line_number":219,"context_line":"                    self.wait_for_all_clone_split_to_complete("},{"line_number":220,"context_line":"                        lun_name,"},{"line_number":221,"context_line":"                        netapp_utils.CACHE_SNAPSHOT_NAME,"},{"line_number":222,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":17,"id":"3e2f7856_e3041ed6","line":219,"updated":"2026-05-15 15:57:12.000000000","message":"Does this ```wait``` call also perform the split?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":217,"context_line":"                if e.code \u003d\u003d netapp_api.EDELETE_SPLIT_CLONE:"},{"line_number":218,"context_line":"                    # Split all the child clone from parent volume"},{"line_number":219,"context_line":"                    self.wait_for_all_clone_split_to_complete("},{"line_number":220,"context_line":"                        lun_name,"},{"line_number":221,"context_line":"                        netapp_utils.CACHE_SNAPSHOT_NAME,"},{"line_number":222,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":17,"id":"ee2225f0_0b53d8b6","line":219,"in_reply_to":"3e2f7856_e3041ed6","updated":"2026-05-19 12:01:07.000000000","message":"Yes, it will split and wait for split to complete, line no #476, has the ONTAP call to split the clone.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8cc5229760c6a1280f3d3b1dfb81a2b2aff2b8b5","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":217,"context_line":"                if e.code \u003d\u003d netapp_api.EDELETE_SPLIT_CLONE:"},{"line_number":218,"context_line":"                    # Split all the child clone from parent volume"},{"line_number":219,"context_line":"                    self.wait_for_all_clone_split_to_complete("},{"line_number":220,"context_line":"                        lun_name,"},{"line_number":221,"context_line":"                        netapp_utils.CACHE_SNAPSHOT_NAME,"},{"line_number":222,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":17,"id":"020d0eba_e08a71ad","line":219,"in_reply_to":"52990948_e62a0441","updated":"2026-05-21 13:02:42.000000000","message":"Make sense, updated the method.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"58faa5e0344894f731e5008483aad5c3da72205c","unresolved":true,"context_lines":[{"line_number":216,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":217,"context_line":"                if e.code \u003d\u003d netapp_api.EDELETE_SPLIT_CLONE:"},{"line_number":218,"context_line":"                    # Split all the child clone from parent volume"},{"line_number":219,"context_line":"                    self.wait_for_all_clone_split_to_complete("},{"line_number":220,"context_line":"                        lun_name,"},{"line_number":221,"context_line":"                        netapp_utils.CACHE_SNAPSHOT_NAME,"},{"line_number":222,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":17,"id":"52990948_e62a0441","line":219,"in_reply_to":"ee2225f0_0b53d8b6","updated":"2026-05-20 06:32:48.000000000","message":"If it also does the split itself, I suggest naming it as such to avoid confusion.  From an outside perspective, the name implies that the function call only performs a wait and nothing else.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":254,"context_line":"        }"},{"line_number":255,"context_line":"        if force:"},{"line_number":256,"context_line":"            query[\u0027allow_delete_while_mapped\u0027] \u003d \u0027true\u0027"},{"line_number":257,"context_line":"        # If namespace id not found on ONTAP, except the exception and return"},{"line_number":258,"context_line":"        try:"},{"line_number":259,"context_line":"            namespace_uuid \u003d self._get_storage_unit_uuid(namespace_name)"},{"line_number":260,"context_line":"        except netapp_utils.NetAppDriverException:"}],"source_content_type":"text/x-python","patch_set":17,"id":"f27920c6_ee4f077a","line":257,"updated":"2026-05-15 15:57:12.000000000","message":"I wonder if you can create shared functionality here with ```delete_lun```, similar to ```create_snapshot``` and ```delete_snapshot``` below that take ```lun_or_namespace```.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        }"},{"line_number":255,"context_line":"        if force:"},{"line_number":256,"context_line":"            query[\u0027allow_delete_while_mapped\u0027] \u003d \u0027true\u0027"},{"line_number":257,"context_line":"        # If namespace id not found on ONTAP, except the exception and return"},{"line_number":258,"context_line":"        try:"},{"line_number":259,"context_line":"            namespace_uuid \u003d self._get_storage_unit_uuid(namespace_name)"},{"line_number":260,"context_line":"        except netapp_utils.NetAppDriverException:"}],"source_content_type":"text/x-python","patch_set":17,"id":"c817487f_0886002d","line":257,"in_reply_to":"f27920c6_ee4f077a","updated":"2026-05-19 12:01:07.000000000","message":"The RestClientASAr2 class in this file inherits from the RestClient class. Since the parent class (RestClient) contains a destroy_namespace method, we maintain the same method name in the child class to ensure consistency and proper override functionality.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":425,"context_line":"        try:"},{"line_number":426,"context_line":"            self.send_request(del_api, \u0027delete\u0027)"},{"line_number":427,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":428,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":429,"context_line":"                if ("},{"line_number":430,"context_line":"                        e.code \u003d\u003d netapp_api.ESNAPSHOT_EXPIRED_OR_LOCK"},{"line_number":431,"context_line":"                ) or (e.code \u003d\u003d netapp_api.ERROR_VOLUME_BUSY):"}],"source_content_type":"text/x-python","patch_set":17,"id":"aed07410_67449681","line":428,"updated":"2026-05-15 15:57:12.000000000","message":"This might be prime for shared code as well with the others (though not as straightforward).","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        try:"},{"line_number":426,"context_line":"            self.send_request(del_api, \u0027delete\u0027)"},{"line_number":427,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":428,"context_line":"            with excutils.save_and_reraise_exception() as exc_context:"},{"line_number":429,"context_line":"                if ("},{"line_number":430,"context_line":"                        e.code \u003d\u003d netapp_api.ESNAPSHOT_EXPIRED_OR_LOCK"},{"line_number":431,"context_line":"                ) or (e.code \u003d\u003d netapp_api.ERROR_VOLUME_BUSY):"}],"source_content_type":"text/x-python","patch_set":17,"id":"140c85f1_e2fe7e78","line":428,"in_reply_to":"aed07410_67449681","updated":"2026-05-19 12:01:07.000000000","message":"Wherever possible, I have moved code into separate methods—such as wait_for_all_clone_split_to_complete, from a reusability perspective. However, in this case, we need to catch exceptions specific to the API call. \nIn a future release, we will evaluate whether this logic can be moved to a separate method to make it reusable across other parts of the codebase.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":475,"context_line":"            self.volume_clone_split_start(clone[\u0027uuid\u0027])"},{"line_number":476,"context_line":"            split_wait_interval \u003d self.config.safe_get("},{"line_number":477,"context_line":"                \u0027netapp_clone_split_timeout\u0027)"},{"line_number":478,"context_line":"            self.wait_for_split_to_complete(clone[\u0027uuid\u0027],"},{"line_number":479,"context_line":"                                            wait_interval\u003dsplit_wait_interval,"},{"line_number":480,"context_line":"                                            require_split_start\u003dTrue)"},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"d44eddbf_f7ee3b4d","line":478,"updated":"2026-05-15 15:57:12.000000000","message":"Suggestion: use threading to enhance performance (split multiple clones simultaneously).","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":475,"context_line":"            self.volume_clone_split_start(clone[\u0027uuid\u0027])"},{"line_number":476,"context_line":"            split_wait_interval \u003d self.config.safe_get("},{"line_number":477,"context_line":"                \u0027netapp_clone_split_timeout\u0027)"},{"line_number":478,"context_line":"            self.wait_for_split_to_complete(clone[\u0027uuid\u0027],"},{"line_number":479,"context_line":"                                            wait_interval\u003dsplit_wait_interval,"},{"line_number":480,"context_line":"                                            require_split_start\u003dTrue)"},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"98cccbc1_bd028045","line":478,"in_reply_to":"d44eddbf_f7ee3b4d","updated":"2026-05-19 12:01:07.000000000","message":"Make sense. Done.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        :param su_uuid: Storage unit UUID."},{"line_number":526,"context_line":"        :param wait_interval: Max wait time in seconds."},{"line_number":527,"context_line":"        :param require_split_start: If True, require state transition to"},{"line_number":528,"context_line":"                                    split_initiated\u003dTrue before considering"},{"line_number":529,"context_line":"                                    the split complete. Use this when the"},{"line_number":530,"context_line":"                                    caller has just started a split job."}],"source_content_type":"text/x-python","patch_set":17,"id":"9471a7b9_b4f1b864","line":527,"updated":"2026-05-15 15:57:12.000000000","message":"I mentioned this in the UT, but I wonder if this is dangerous here in that the split might fully complete before the check for ```split_initiated\u003dTrue``` is found.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":524,"context_line":""},{"line_number":525,"context_line":"        :param su_uuid: Storage unit UUID."},{"line_number":526,"context_line":"        :param wait_interval: Max wait time in seconds."},{"line_number":527,"context_line":"        :param require_split_start: If True, require state transition to"},{"line_number":528,"context_line":"                                    split_initiated\u003dTrue before considering"},{"line_number":529,"context_line":"                                    the split complete. Use this when the"},{"line_number":530,"context_line":"                                    caller has just started a split job."}],"source_content_type":"text/x-python","patch_set":17,"id":"4f92509a_8475597b","line":527,"in_reply_to":"9471a7b9_b4f1b864","updated":"2026-05-19 12:01:07.000000000","message":"The logic works as follows: \n1. when a split job is initiated, the split operation may not start immediately. During this time, the clone.split_initiated value remains false.\n2. Once the split starts, this value becomes true. \n3. When the split completes, the value again returns to false.\n\nWhat happens when the split completes fully before the check for split_initiated\u003dTrue is found?\n\nWe first check the condition if not split_started[\u0027value\u0027]. If this condition is true (api return split_started false), we set split_initiated\u003dTrue when below method return true.\n\nsplit_initiated \u003d _is_split_initiated(\n    clone.get(\u0027split_initiated\u0027, False))\nIf split_initiated is false, we throw an exception. On the next loop iteration, the code will check again to see if the split job has been initiated. \nThis condition can only occur when a split job is triggered and the split_initiated flag takes some time to change from false to true. This is the scenario when a split job just started , and I have handled this scenario in my code to make sure clone split operation starts properly.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":535,"context_line":"        retries \u003d max(1, int(wait_interval / interval) + 1)"},{"line_number":536,"context_line":"        split_started \u003d {\u0027value\u0027: False}"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        def _is_split_initiated(value):"},{"line_number":539,"context_line":"            if isinstance(value, bool):"},{"line_number":540,"context_line":"                return value"},{"line_number":541,"context_line":"            if isinstance(value, str):"}],"source_content_type":"text/x-python","patch_set":17,"id":"bd35895c_5a56a629","line":538,"updated":"2026-05-15 15:57:12.000000000","message":"Can all of these possibilities really occur?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":535,"context_line":"        retries \u003d max(1, int(wait_interval / interval) + 1)"},{"line_number":536,"context_line":"        split_started \u003d {\u0027value\u0027: False}"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        def _is_split_initiated(value):"},{"line_number":539,"context_line":"            if isinstance(value, bool):"},{"line_number":540,"context_line":"                return value"},{"line_number":541,"context_line":"            if isinstance(value, str):"}],"source_content_type":"text/x-python","patch_set":17,"id":"5c52eb69_38206588","line":538,"in_reply_to":"bd35895c_5a56a629","updated":"2026-05-19 12:01:07.000000000","message":"yes. We were hitting this only one setup and 2-3 after trying so many time so added this logic.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":561,"context_line":"                       \u0027started\u0027: split_started[\u0027value\u0027],"},{"line_number":562,"context_line":"                       \u0027split_initiated\u0027: split_initiated})"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"            if not split_started[\u0027value\u0027]:"},{"line_number":565,"context_line":"                if split_initiated:"},{"line_number":566,"context_line":"                    split_started[\u0027value\u0027] \u003d True"},{"line_number":567,"context_line":"                    raise netapp_api.NaRetryableError("}],"source_content_type":"text/x-python","patch_set":17,"id":"18ab5ca6_c87c3520","line":564,"updated":"2026-05-15 15:57:12.000000000","message":"I\u0027m very confused by the logic here.  The code below that invokes ```_waiter()``` will take this exception and rethrow a ```NetAppDriverException``` with a message that indicates the exact opposite of the messages in this code here.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                       \u0027started\u0027: split_started[\u0027value\u0027],"},{"line_number":562,"context_line":"                       \u0027split_initiated\u0027: split_initiated})"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"            if not split_started[\u0027value\u0027]:"},{"line_number":565,"context_line":"                if split_initiated:"},{"line_number":566,"context_line":"                    split_started[\u0027value\u0027] \u003d True"},{"line_number":567,"context_line":"                    raise netapp_api.NaRetryableError("}],"source_content_type":"text/x-python","patch_set":17,"id":"217113cd_f9277b3b","line":564,"in_reply_to":"18ab5ca6_c87c3520","updated":"2026-05-19 12:01:07.000000000","message":"Inside the waiter, I throw an exception if the clone split has not completed on each retry. At the end, in the code below, I wanted to mark it as failed with a NetApp driver exception since this operation failed due to the NetApp driver API. To me, this logic appears very clear.\n\n  return _waiter()\n        except netapp_api.NaRetryableError:\n            msg \u003d _(\"Split job for storage unit %s did not reach the expected\"\n                    \" state. Retries exhausted. Aborting.\") % su_uuid\n            raise netapp_utils.NetAppDriverException(msg)","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"58faa5e0344894f731e5008483aad5c3da72205c","unresolved":true,"context_lines":[{"line_number":561,"context_line":"                       \u0027started\u0027: split_started[\u0027value\u0027],"},{"line_number":562,"context_line":"                       \u0027split_initiated\u0027: split_initiated})"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"            if not split_started[\u0027value\u0027]:"},{"line_number":565,"context_line":"                if split_initiated:"},{"line_number":566,"context_line":"                    split_started[\u0027value\u0027] \u003d True"},{"line_number":567,"context_line":"                    raise netapp_api.NaRetryableError("}],"source_content_type":"text/x-python","patch_set":17,"id":"ab52a722_6372fb0b","line":564,"in_reply_to":"217113cd_f9277b3b","updated":"2026-05-20 06:32:48.000000000","message":"Hi @gawasthi2010@gmail.com,\n\nWhat I mean is that you\u0027ve found ```split_initiated``` to be True, and you\u0027re setting ```split_started[\u0027value\u0027]``` to ```True``` with a message that the split job has started and is running in the exception, which is then rethrown.\n\nI don\u0027t see anywhere else that ```split_started[\u0027value\u0027]``` is set to ```True```, so ```if not split_started[\u0027value\u0027]``` will always be false.\n\nIt\u0027s possible I don\u0027t fully understand what\u0027s going on here, even with your explanation.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8cc5229760c6a1280f3d3b1dfb81a2b2aff2b8b5","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                       \u0027started\u0027: split_started[\u0027value\u0027],"},{"line_number":562,"context_line":"                       \u0027split_initiated\u0027: split_initiated})"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"            if not split_started[\u0027value\u0027]:"},{"line_number":565,"context_line":"                if split_initiated:"},{"line_number":566,"context_line":"                    split_started[\u0027value\u0027] \u003d True"},{"line_number":567,"context_line":"                    raise netapp_api.NaRetryableError("}],"source_content_type":"text/x-python","patch_set":17,"id":"b92cb9c9_d877c1d2","line":564,"in_reply_to":"ab52a722_6372fb0b","updated":"2026-05-21 13:02:42.000000000","message":"@anthony.galica@hitachivantara.com\n\nSetting split_started[\u0027value\u0027] to true is one time job to make sure split is started. In below code \n            if not split_started[\u0027value\u0027]:\n                if split_initiated:\n                    split_started[\u0027value\u0027] \u003d True\n                    raise netapp_api.NaRetryableError(\n                        message\u003d\u0027Split job started and is running.\u0027)\n\n1.The default value for split_started[\u0027value\u0027] is false at line #536.\n2.On the first retry, if condition \"not split_started[\u0027value\u0027]\" is true and split_initiated is true, then split_started[\u0027value\u0027] will be set to True. This happens only once.\n3.On subsequent retries, only the code below will execute since the other conditions will fail, and it will continue throwing exceptions until the split is completed.\n                        \nif split_initiated:\n                raise netapp_api.NaRetryableError(\n                    message\u003d\u0027Split job is running.\u0027)\n  \n4.Once the split is completed, the method will return, indicating that the split operation finished successfully. If a retry fails after multiple attempts (which is configurable), the snapshot deletion and other operations that depend on the split clone may fail.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"86f32f5d6e0306fe2ed00fff702462011b92adf6","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                       \u0027started\u0027: split_started[\u0027value\u0027],"},{"line_number":562,"context_line":"                       \u0027split_initiated\u0027: split_initiated})"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"            if not split_started[\u0027value\u0027]:"},{"line_number":565,"context_line":"                if split_initiated:"},{"line_number":566,"context_line":"                    split_started[\u0027value\u0027] \u003d True"},{"line_number":567,"context_line":"                    raise netapp_api.NaRetryableError("}],"source_content_type":"text/x-python","patch_set":17,"id":"3ebcf6e2_f0f17c45","line":564,"in_reply_to":"b92cb9c9_d877c1d2","updated":"2026-05-22 05:18:14.000000000","message":"Ok, I see it now and understand.  In the second analysis after your initial reply, I crucially failed to note that the initialization on line #536 was outside of ```_waiter``` and thought it was initializing every time ```_waiter``` was called (maybe due to the collapsed lines and inline comments in the diff stretching everything out).  Thanks for putting up with the questioning 🙂\n\nJust fyi, you can use three backticks for code blocks -- I find this very useful\n\ni.e.\nthis:\n\\`\\`\\`\nif split_initiated:\n    raise netapp_api.NaRetryableError(\n        message\u003d\u0027Split job is running.\u0027)\n\\`\\`\\`\n\nturns into this:\n```\nif split_initiated:\n    raise netapp_api.NaRetryableError(\n        message\u003d\u0027Split job is running.\u0027)\n```","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            lun_uuid \u003d self._get_storage_unit_uuid(lun_name)"},{"line_number":196,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":197,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":198,"context_line":"                      {\u0027name\u0027: lun_name})"},{"line_number":199,"context_line":"            return"},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"00876b0c_7a41690b","line":197,"updated":"2026-06-03 02:14:12.000000000","message":"s/Cound/Could","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            lun_uuid \u003d self._get_storage_unit_uuid(lun_name)"},{"line_number":196,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":197,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":198,"context_line":"                      {\u0027name\u0027: lun_name})"},{"line_number":199,"context_line":"            return"},{"line_number":200,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"2885b723_bfce099e","line":197,"in_reply_to":"00876b0c_7a41690b","updated":"2026-06-14 10:41:15.000000000","message":"Done","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":207,"context_line":"            # This is a known ONTAP issue, tracked under bug #CONTAP-639582."},{"line_number":208,"context_line":"            # Once the bug is fixed by ONTAP, will remove code for wait for"},{"line_number":209,"context_line":"            # split."},{"line_number":210,"context_line":"            split_wait_interval \u003d int(self.config.safe_get("},{"line_number":211,"context_line":"                \u0027netapp_clone_split_timeout\u0027))"},{"line_number":212,"context_line":"            self.wait_for_split_to_complete("},{"line_number":213,"context_line":"                lun_uuid,"}],"source_content_type":"text/x-python","patch_set":20,"id":"fefe8545_eedc786e","line":210,"updated":"2026-06-03 02:14:12.000000000","message":"self.config is set to None in __init__(), but there are several places where self.config.safe_get() is called without a guard - which would result in an attribute exception if set_config() hasn\u0027t yet been called.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            # This is a known ONTAP issue, tracked under bug #CONTAP-639582."},{"line_number":208,"context_line":"            # Once the bug is fixed by ONTAP, will remove code for wait for"},{"line_number":209,"context_line":"            # split."},{"line_number":210,"context_line":"            split_wait_interval \u003d int(self.config.safe_get("},{"line_number":211,"context_line":"                \u0027netapp_clone_split_timeout\u0027))"},{"line_number":212,"context_line":"            self.wait_for_split_to_complete("},{"line_number":213,"context_line":"                lun_uuid,"}],"source_content_type":"text/x-python","patch_set":20,"id":"270a2652_5f37a127","line":210,"in_reply_to":"fefe8545_eedc786e","updated":"2026-06-14 10:41:15.000000000","message":"This can happen when \"split_wait_interval \u003d int(self.config.safe_get(\" like will get call before running the setup. This will likely not hit in standard lifecycle unless those client methods are called before setup completes or from a different code path. I am setting the config in parent class block_base.py file\n        if self.configuration.netapp_disaggregated_platform:\n            self.zapi_client.set_config(self.configuration) \n            \nAnyway, I have modify the code to make sure it it will handle the none also.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":261,"context_line":"        try:"},{"line_number":262,"context_line":"            namespace_uuid \u003d self._get_storage_unit_uuid(namespace_name)"},{"line_number":263,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":264,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":265,"context_line":"                      {\u0027name\u0027: namespace_name})"},{"line_number":266,"context_line":"            return"},{"line_number":267,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1fb26080_7dd8285a","line":264,"updated":"2026-06-03 02:14:12.000000000","message":"s/Cound/Could","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        try:"},{"line_number":262,"context_line":"            namespace_uuid \u003d self._get_storage_unit_uuid(namespace_name)"},{"line_number":263,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":264,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":265,"context_line":"                      {\u0027name\u0027: namespace_name})"},{"line_number":266,"context_line":"            return"},{"line_number":267,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"4c17fb5f_7e6e2d7e","line":264,"in_reply_to":"1fb26080_7dd8285a","updated":"2026-06-14 10:41:15.000000000","message":"Done","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":274,"context_line":"            # This is a known ONTAP issue, tracked under bug #CONTAP-639582."},{"line_number":275,"context_line":"            # Once the bug is fixed by ONTAP, will remove code for wait for"},{"line_number":276,"context_line":"            # split."},{"line_number":277,"context_line":"            split_wait_interval \u003d int(self.config.safe_get("},{"line_number":278,"context_line":"                \u0027netapp_clone_split_timeout\u0027))"},{"line_number":279,"context_line":"            self.wait_for_split_to_complete("},{"line_number":280,"context_line":"                namespace_uuid,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7f89cd81_49f90ad0","line":277,"updated":"2026-06-03 02:14:12.000000000","message":"Same as line 210","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            # This is a known ONTAP issue, tracked under bug #CONTAP-639582."},{"line_number":275,"context_line":"            # Once the bug is fixed by ONTAP, will remove code for wait for"},{"line_number":276,"context_line":"            # split."},{"line_number":277,"context_line":"            split_wait_interval \u003d int(self.config.safe_get("},{"line_number":278,"context_line":"                \u0027netapp_clone_split_timeout\u0027))"},{"line_number":279,"context_line":"            self.wait_for_split_to_complete("},{"line_number":280,"context_line":"                namespace_uuid,"}],"source_content_type":"text/x-python","patch_set":20,"id":"0cae2f0d_dab0dd46","line":277,"in_reply_to":"7f89cd81_49f90ad0","updated":"2026-06-14 10:41:15.000000000","message":"Done","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":419,"context_line":"        try:"},{"line_number":420,"context_line":"            su_uuid \u003d self._get_storage_unit_uuid(su_name)"},{"line_number":421,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":422,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":423,"context_line":"                      {\u0027name\u0027: lun_or_namespace})"},{"line_number":424,"context_line":"            return"},{"line_number":425,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7ff82d80_d7c205b1","line":422,"updated":"2026-06-03 02:14:12.000000000","message":"s/Cound/Could","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        try:"},{"line_number":420,"context_line":"            su_uuid \u003d self._get_storage_unit_uuid(su_name)"},{"line_number":421,"context_line":"        except netapp_utils.NetAppDriverException:"},{"line_number":422,"context_line":"            LOG.error(\u0027Cound not find storage unit %(name)s\u0027,"},{"line_number":423,"context_line":"                      {\u0027name\u0027: lun_or_namespace})"},{"line_number":424,"context_line":"            return"},{"line_number":425,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"c79838db_2976ff91","line":422,"in_reply_to":"7ff82d80_d7c205b1","updated":"2026-06-14 10:41:15.000000000","message":"Done","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":477,"context_line":"            su_name, snapshot_name)"},{"line_number":478,"context_line":"        if not su_clones:"},{"line_number":479,"context_line":"            return"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        split_wait_interval \u003d int(self.config.safe_get("},{"line_number":482,"context_line":"            \u0027netapp_clone_split_timeout\u0027))"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"da924cee_fc807103","line":480,"updated":"2026-06-03 02:14:12.000000000","message":"Same as line 210.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            su_name, snapshot_name)"},{"line_number":478,"context_line":"        if not su_clones:"},{"line_number":479,"context_line":"            return"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        split_wait_interval \u003d int(self.config.safe_get("},{"line_number":482,"context_line":"            \u0027netapp_clone_split_timeout\u0027))"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"e1e027dd_486758dd","line":480,"in_reply_to":"da924cee_fc807103","updated":"2026-06-14 10:41:15.000000000","message":"Done","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f13583dca4662b381d68e8686d0a222d8c0f0875","unresolved":true,"context_lines":[{"line_number":571,"context_line":"            if isinstance(value, bool):"},{"line_number":572,"context_line":"                return value"},{"line_number":573,"context_line":"            if isinstance(value, str):"},{"line_number":574,"context_line":"                return value.lower() in (\u0027true\u0027, \u0027True\u0027)"},{"line_number":575,"context_line":"            return bool(value)"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        @utils.retry(netapp_api.NaRetryableError, interval\u003dinterval,"}],"source_content_type":"text/x-python","patch_set":20,"id":"55e5bce7_c5f35e1b","line":574,"updated":"2026-06-03 02:14:12.000000000","message":"after lower(), value cannot be \u0027True\u0027, just \u003d\u003d \u0027true\u0027 should be sufficient.","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"b74a52c7060011187e1e0f13aa319a743f192968","unresolved":false,"context_lines":[{"line_number":571,"context_line":"            if isinstance(value, bool):"},{"line_number":572,"context_line":"                return value"},{"line_number":573,"context_line":"            if isinstance(value, str):"},{"line_number":574,"context_line":"                return value.lower() in (\u0027true\u0027, \u0027True\u0027)"},{"line_number":575,"context_line":"            return bool(value)"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        @utils.retry(netapp_api.NaRetryableError, interval\u003dinterval,"}],"source_content_type":"text/x-python","patch_set":20,"id":"c4870159_97d8859c","line":574,"in_reply_to":"55e5bce7_c5f35e1b","updated":"2026-06-14 10:41:15.000000000","message":"I have changed it to value in (\u0027true\u0027, \u0027True\u0027)","commit_id":"fe89cc49a7cf1f1303dee3b45131ceddc88e0977"}],"cinder/volume/drivers/netapp/dataontap/nvme_library.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":402,"context_line":"        LOG.debug(\"Snapshot %s deletion successful.\", snapshot[\u0027name\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":405,"context_line":"        source \u003d {\u0027name\u0027: snapshot[\u0027name\u0027],"},{"line_number":406,"context_line":"                  \u0027volume_name\u0027: snapshot[\u0027volume_name\u0027],"},{"line_number":407,"context_line":"                  \u0027size\u0027: snapshot[\u0027volume_size\u0027]"},{"line_number":408,"context_line":"                  }"}],"source_content_type":"text/x-python","patch_set":17,"id":"4917203d_fb9bb3c1","line":405,"updated":"2026-05-15 15:57:12.000000000","message":"I assume modifying the source here won\u0027t affect the non-disaggregated code?","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        LOG.debug(\"Snapshot %s deletion successful.\", snapshot[\u0027name\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":405,"context_line":"        source \u003d {\u0027name\u0027: snapshot[\u0027name\u0027],"},{"line_number":406,"context_line":"                  \u0027volume_name\u0027: snapshot[\u0027volume_name\u0027],"},{"line_number":407,"context_line":"                  \u0027size\u0027: snapshot[\u0027volume_size\u0027]"},{"line_number":408,"context_line":"                  }"}],"source_content_type":"text/x-python","patch_set":17,"id":"4a5778c8_352725d5","line":405,"in_reply_to":"4917203d_fb9bb3c1","updated":"2026-05-19 12:01:07.000000000","message":"Yes, it will not.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"885709559a4513e89bf4915ec850e86218d3bda6","unresolved":true,"context_lines":[{"line_number":416,"context_line":"            self._clone_source_to_destination(source, volume)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":419,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":420,"context_line":"            # Create the snapshot"},{"line_number":421,"context_line":"            snapshot_name \u003d na_utils.CACHE_SNAPSHOT_NAME"},{"line_number":422,"context_line":"            volume_name \u003d src_vref[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"5267c51e_2e2898bb","line":419,"updated":"2026-05-15 15:57:12.000000000","message":"Might be worthwhile to share some of this code with the other places it is used.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"6073d43caf7a31fc7949a9c6499abcd2ee545079","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            self._clone_source_to_destination(source, volume)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":419,"context_line":"        if self.configuration.netapp_disaggregated_platform:"},{"line_number":420,"context_line":"            # Create the snapshot"},{"line_number":421,"context_line":"            snapshot_name \u003d na_utils.CACHE_SNAPSHOT_NAME"},{"line_number":422,"context_line":"            volume_name \u003d src_vref[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"96f2b5cc_e5e46112","line":419,"in_reply_to":"5267c51e_2e2898bb","updated":"2026-05-19 12:01:07.000000000","message":"Wherever required, I ensure that methods are modularized. In this case, I found that the same code could be reused for snapshot creation; however, since a few lines of code differ between the two implementations, I decided not to extract this into a separate method.","commit_id":"ba2aa0a387fe419b67187267427455a34c0b731b"}],"releasenotes/notes/asar2-snapshot-and-cache-acceleration-support-68f74f24c89ee6c5.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a4c314e7fc6b95990a267da1b5cdf7783568e8ca","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    to create, delete, and restore snapshots, as well as to create"},{"line_number":7,"context_line":"    clone and volumes from snapshots."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    The following features are supported by the ASAr2 driver:"},{"line_number":10,"context_line":"    1. Snapshot Creation."},{"line_number":11,"context_line":"    2. Snapshot Deletion."},{"line_number":12,"context_line":"    3. Snapshot Revert."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"f76b3d03_3c750cc0","line":9,"updated":"2026-05-13 14:31:21.000000000","message":"Need a blank line after line 9 or else sphinx doesn\u0027t turn lines 10-17 into a list:\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_024/openstack/024a1c642be84775afdab166c80ceda6/docs/unreleased.html#new-features","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8853a914a41a3362c7de1a01eed00e7f81fa4c4d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    to create, delete, and restore snapshots, as well as to create"},{"line_number":7,"context_line":"    clone and volumes from snapshots."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    The following features are supported by the ASAr2 driver:"},{"line_number":10,"context_line":"    1. Snapshot Creation."},{"line_number":11,"context_line":"    2. Snapshot Deletion."},{"line_number":12,"context_line":"    3. Snapshot Revert."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"8b5eed20_523ca38c","line":9,"in_reply_to":"9febe416_666f8ce3","updated":"2026-05-15 10:09:31.000000000","message":"Issue is fixed now","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"4296632bc5c525c96e6f94666516648b758e5c8c","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    to create, delete, and restore snapshots, as well as to create"},{"line_number":7,"context_line":"    clone and volumes from snapshots."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    The following features are supported by the ASAr2 driver:"},{"line_number":10,"context_line":"    1. Snapshot Creation."},{"line_number":11,"context_line":"    2. Snapshot Deletion."},{"line_number":12,"context_line":"    3. Snapshot Revert."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9febe416_666f8ce3","line":9,"in_reply_to":"f76b3d03_3c750cc0","updated":"2026-05-15 10:08:41.000000000","message":"Thanks for pointing this, fix the issue.","commit_id":"53a2bb52976973f0bae8f788158321723d709d96"}]}
