)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c64cd1fce0747c0459d8c5454098f79074ec34f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c828225b_557eb819","updated":"2026-04-23 10:14:35.000000000","message":"LGTM","commit_id":"9c94517ba341861d3f403af979cf2057360a05bf"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"aa51fc8a2d602cd0d26e7b62b858e0c69cbaadc6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5542810d_302cdf75","updated":"2026-06-04 07:40:32.000000000","message":"run-IBM-CI","commit_id":"43ceb11a2a56904449c5c0fcb835f9bb4d38f078"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"8891415549d521de1243900853b8115d7ec7446a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"19c9d875_0b619be9","in_reply_to":"5542810d_302cdf75","updated":"2026-06-26 12:33:15.000000000","message":"Acknowledged","commit_id":"43ceb11a2a56904449c5c0fcb835f9bb4d38f078"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"64c8c389e615eb7236c326dd3f2487c070e35f18","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"12c0f111_8f0f83c0","updated":"2026-06-04 10:00:33.000000000","message":"run-IBM-CI","commit_id":"926bb350ba22355d86fc59d2402c91bc2e285055"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"8891415549d521de1243900853b8115d7ec7446a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"50cefa81_2d62ee9c","in_reply_to":"12c0f111_8f0f83c0","updated":"2026-06-26 12:33:15.000000000","message":"Acknowledged","commit_id":"926bb350ba22355d86fc59d2402c91bc2e285055"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"4e13f14d86552fa29afaee5da9a820c432485031","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6e9c0f5a_b0a7ea5e","updated":"2026-07-17 09:55:53.000000000","message":"@erlon.rodrigues.cruz@canonical.com\nIBM CI has successfully passed. Requesting you to please upgrade your vote.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"5da43d6dab5be59d7966a9f87b5b72fb60d8b47b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e7a16f82_583997c8","updated":"2026-06-16 16:28:10.000000000","message":"Approved. Please make sure IBM CI works fine on the changes.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fa042c8d2d8527de46bbda0dea4abb9158752680","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9ced1b15_c4c4e79a","updated":"2026-06-24 17:52:55.000000000","message":"I\u0027m holding this until we get the CI passing. Can you get your CI to run/pass on this patch?","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"45388f5a1e5aaeb0d8ad615a0e42accdae9a3f2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0aeb8ac5_75880ded","updated":"2026-06-09 10:34:53.000000000","message":"LGTM","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"d6370d882d476ce22b071643d2f52796212abf87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6a541ba0_cbd91f56","updated":"2026-07-17 09:55:16.000000000","message":"LGTM","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38067,"name":"Sandip Rajbanshi","display_name":"Sandip27","email":"sandip.rajbanshi@ibm.com","username":"sandip-rajbanshi-27"},"change_message_id":"54449a65d7668c577362287eead1e98925fa06d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4e98506b_b4f1507c","updated":"2026-06-10 10:23:00.000000000","message":"Looks good to me.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"84bcdd14615685994215c9d0fd6d2992443e0676","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9aed2161_c9c6075e","updated":"2026-07-17 15:23:59.000000000","message":"This patch looks fine to me, but I\u0027m mildly concerned with the multi-attach tests that seem to potentially be non-determinate.  Can you confirm?","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"95b067bc0c4e9753bc0c23b1604d5d5e10fc258f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f2df9f6a_057c3def","updated":"2026-06-16 10:09:39.000000000","message":"run-IBM-CI","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"8891415549d521de1243900853b8115d7ec7446a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5fdc4d3b_6d010e2b","updated":"2026-06-26 12:33:15.000000000","message":"run-ibm-ci","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":36439,"name":"Vivek Pandey","email":"vivek.pandey11@ibm.com","username":"vivek.pandey11"},"change_message_id":"971f7a1f81b019510449907463c1946298d937cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a30642d2_032e2711","updated":"2026-06-18 06:48:35.000000000","message":"run-ibm-ci","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"0eac29563b6a051d10a56c1022003fd09ba58142","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f9ae3a5d_ac675643","in_reply_to":"17bb6d56_2880e83c","updated":"2026-07-28 09:23:46.000000000","message":"Acknowledged","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"c5ff08e0ce1c89c9c59011d100ccdc8dbdd64619","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"17bb6d56_2880e83c","in_reply_to":"9aed2161_c9c6075e","updated":"2026-07-21 11:31:51.000000000","message":"No — multiattach \u003d True is hardcoded, so the if always enters. But the if guard creates a structural fragility: if that line is removed, the test silently passes with zero assertions checked.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"8891415549d521de1243900853b8115d7ec7446a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8a85f21c_5178be54","in_reply_to":"f2df9f6a_057c3def","updated":"2026-06-26 12:33:15.000000000","message":"Acknowledged","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"8a7aab26575bbc0ed34050e8f2cae73d7db7f043","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0d63cbd0_6d10bac6","updated":"2026-07-23 10:16:17.000000000","message":"recheck","commit_id":"f2929b7f4352bbad1c5c7518099ec515fe2b53e9"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"9c4bfae858abbf713db8cc57fa43556b9f273231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6243370f_1a1f9ea7","updated":"2026-08-18 13:20:07.000000000","message":"@anthony.galica@hitachivantara.com\nIBM CI has passed. Please ignore the run by CI_Run_Test_new/ (1/2) - This is a wrong project in our Jenkins.","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"adaaa24ff3c05510de58555881e7783554367d79","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"820c62df_7885e3d5","updated":"2026-08-15 10:36:42.000000000","message":"Just waiting for CI to pass.  Feel free to ping me for a +2 once it does.","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"d1d6370d07df26562897d3dc07af5d3662750495","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"82222af6_e54ea113","updated":"2026-08-19 13:21:24.000000000","message":"LGTM","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"f7ccc39023127db37e53605b5ee3334fee2ee4fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5800f32d_90e19490","updated":"2026-08-21 16:32:16.000000000","message":"Looks good to me, CI passes.","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"9529415c614183217ca1d24a0abe92a602ec8d53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9b5d0432_392d75cb","updated":"2026-07-29 08:15:08.000000000","message":"ZUUL is failing. will wait for clean zuul run. Code looks good to me.","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"ef4a76c364d8130d9de22c9571c34bd1e13a4b7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ae955a04_a97a1bf4","updated":"2026-07-29 14:38:03.000000000","message":"recheck","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"952c39b6eb1ac4f3f9da698186c4db72c1e21742","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3d8bc769_d4505227","updated":"2026-07-30 10:02:06.000000000","message":"run-IBM-CI","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"bf21b00d0af7b9c5c24bce357f06c2ae314234df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"961bdcb8_5e6a38b2","updated":"2026-08-18 10:10:18.000000000","message":"run-ibm-ci","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"32439072324336328dd8633bcb7de45fef2e32e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c8982e72_22bbbf20","updated":"2026-08-04 07:01:17.000000000","message":"run-ibm-ci","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"3b2c3b2896d78f59a4ab4bdc8bac95bb9aa2723a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6b8ec7f6_b9763750","in_reply_to":"6243370f_1a1f9ea7","updated":"2026-08-18 13:22:30.000000000","message":"The correct one is : \nIBM-Storage-iSCSI-Log: https://github.com/vp0410/IBM-Cinder-CI/tree/main/984538/9/iscsi.log and IBM-Storage-FC-Log: https://github.com/vp0410/IBM-Cinder-CI/tree/main/984538/9/fc.log : SUCCESS (skipped)","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"178812460ef11f3fcacfa0c5b70d68a1f01ff16f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e188a6d0_4bd6f99b","in_reply_to":"820c62df_7885e3d5","updated":"2026-08-18 13:38:27.000000000","message":"@anthony.galica@hitachivantara.com CI has passed. Please review and provide a +2 when you get a chance. Thanks!","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"}],"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"84bcdd14615685994215c9d0fd6d2992443e0676","unresolved":true,"context_lines":[{"line_number":3812,"context_line":"        attachments \u003d objects.VolumeAttachmentList.get_all_by_volume_id("},{"line_number":3813,"context_line":"            self.ctxt, volume_iscsi[\u0027id\u0027])"},{"line_number":3814,"context_line":"        volume_iscsi[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":3815,"context_line":"        if volume_iscsi[\u0027multiattach\u0027]:"},{"line_number":3816,"context_line":""},{"line_number":3817,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":3818,"context_line":"            self.assertTrue(volume_iscsi[\u0027multiattach\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"1fba447e_d4ef8066","line":3815,"updated":"2026-07-17 15:23:59.000000000","message":"Is this check actually necessary?","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"c5ff08e0ce1c89c9c59011d100ccdc8dbdd64619","unresolved":true,"context_lines":[{"line_number":3812,"context_line":"        attachments \u003d objects.VolumeAttachmentList.get_all_by_volume_id("},{"line_number":3813,"context_line":"            self.ctxt, volume_iscsi[\u0027id\u0027])"},{"line_number":3814,"context_line":"        volume_iscsi[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":3815,"context_line":"        if volume_iscsi[\u0027multiattach\u0027]:"},{"line_number":3816,"context_line":""},{"line_number":3817,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":3818,"context_line":"            self.assertTrue(volume_iscsi[\u0027multiattach\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"49fc3f6c_7e520513","line":3815,"in_reply_to":"1fba447e_d4ef8066","updated":"2026-07-21 11:31:51.000000000","message":"No — it is a redundant guard over a hardcoded-True value; removed it in the latest patch.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"0eac29563b6a051d10a56c1022003fd09ba58142","unresolved":false,"context_lines":[{"line_number":3812,"context_line":"        attachments \u003d objects.VolumeAttachmentList.get_all_by_volume_id("},{"line_number":3813,"context_line":"            self.ctxt, volume_iscsi[\u0027id\u0027])"},{"line_number":3814,"context_line":"        volume_iscsi[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":3815,"context_line":"        if volume_iscsi[\u0027multiattach\u0027]:"},{"line_number":3816,"context_line":""},{"line_number":3817,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":3818,"context_line":"            self.assertTrue(volume_iscsi[\u0027multiattach\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"21c9319f_6964d8d7","line":3815,"in_reply_to":"49fc3f6c_7e520513","updated":"2026-07-28 09:23:46.000000000","message":"Done","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"84bcdd14615685994215c9d0fd6d2992443e0676","unresolved":true,"context_lines":[{"line_number":4988,"context_line":"            self.ctxt, volume_fc[\u0027id\u0027])"},{"line_number":4989,"context_line":"        volume_fc[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":4990,"context_line":""},{"line_number":4991,"context_line":"        if volume_fc[\u0027multiattach\u0027]:"},{"line_number":4992,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":4993,"context_line":"            self.assertTrue(volume_fc[\u0027multiattach\u0027])"},{"line_number":4994,"context_line":"            self.assertEqual(\u0027storwize-svc-host\u0027, connector1[\u0027host\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f8238d3_11c02cd7","line":4991,"updated":"2026-07-17 15:23:59.000000000","message":"Again, is this necessary?","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"c5ff08e0ce1c89c9c59011d100ccdc8dbdd64619","unresolved":true,"context_lines":[{"line_number":4988,"context_line":"            self.ctxt, volume_fc[\u0027id\u0027])"},{"line_number":4989,"context_line":"        volume_fc[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":4990,"context_line":""},{"line_number":4991,"context_line":"        if volume_fc[\u0027multiattach\u0027]:"},{"line_number":4992,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":4993,"context_line":"            self.assertTrue(volume_fc[\u0027multiattach\u0027])"},{"line_number":4994,"context_line":"            self.assertEqual(\u0027storwize-svc-host\u0027, connector1[\u0027host\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"c030f06b_0ae50b8a","line":4991,"in_reply_to":"3f8238d3_11c02cd7","updated":"2026-07-21 11:31:51.000000000","message":"No — it is a redundant guard over a hardcoded-True value; removed it in the latest patch.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"0eac29563b6a051d10a56c1022003fd09ba58142","unresolved":false,"context_lines":[{"line_number":4988,"context_line":"            self.ctxt, volume_fc[\u0027id\u0027])"},{"line_number":4989,"context_line":"        volume_fc[\u0027volume_attachment\u0027] \u003d attachments"},{"line_number":4990,"context_line":""},{"line_number":4991,"context_line":"        if volume_fc[\u0027multiattach\u0027]:"},{"line_number":4992,"context_line":"            # Validate test preconditions for same-host multiattach"},{"line_number":4993,"context_line":"            self.assertTrue(volume_fc[\u0027multiattach\u0027])"},{"line_number":4994,"context_line":"            self.assertEqual(\u0027storwize-svc-host\u0027, connector1[\u0027host\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"92e4b291_a22268bb","line":4991,"in_reply_to":"c030f06b_0ae50b8a","updated":"2026-07-28 09:23:46.000000000","message":"Done","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"600aea1d728593075b9792bd0a157471b09c1e82","unresolved":true,"context_lines":[{"line_number":3807,"context_line":"            \u0027attached_host\u0027: \u0027storwize-svc-host\u0027"},{"line_number":3808,"context_line":"        }"},{"line_number":3809,"context_line":"        db_attachment2 \u003d models.VolumeAttachment(**attachment_updates2)"},{"line_number":3810,"context_line":"        get_db_vol_attach.return_value \u003d [db_attachment1, db_attachment2]"},{"line_number":3811,"context_line":""},{"line_number":3812,"context_line":"        attachments \u003d objects.VolumeAttachmentList.get_all_by_volume_id("},{"line_number":3813,"context_line":"            self.ctxt, volume_iscsi[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"2b0d3710_ff285c74","line":3810,"updated":"2026-08-21 16:35:46.000000000","message":"can you plase add a scenario where attachment value is only 1 and not greater then 1\n`if attachment_count \u003e 1:`","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_fc.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7d18beff249823a5f4eacc630bfbe83d31199d43","unresolved":true,"context_lines":[{"line_number":333,"context_line":"        LOG.debug(\u0027enter: terminate_connection: volume %(vol)s with \u0027"},{"line_number":334,"context_line":"                  \u0027connector %(conn)s. kwargs %(k)s\u0027,"},{"line_number":335,"context_line":"                  {\u0027vol\u0027: volume, \u0027conn\u0027: connector, \u0027k\u0027: kwargs})"},{"line_number":336,"context_line":"        host \u003d connector.get(\u0027host\u0027, \u0027\u0027) if connector else \"\""},{"line_number":337,"context_line":"        attachment_count \u003d 0"},{"line_number":338,"context_line":"        if hasattr(volume, \u0027multiattach\u0027) and volume.multiattach:"},{"line_number":339,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"8182b621_e35cb6f2","line":336,"updated":"2026-06-08 14:19:37.000000000","message":"The code changes look good to me. My only question was around multi attach behaviour and whether this logic covers that scenario. Also, do we have a UT to cover multiattach scenarios?","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"45388f5a1e5aaeb0d8ad615a0e42accdae9a3f2d","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        LOG.debug(\u0027enter: terminate_connection: volume %(vol)s with \u0027"},{"line_number":334,"context_line":"                  \u0027connector %(conn)s. kwargs %(k)s\u0027,"},{"line_number":335,"context_line":"                  {\u0027vol\u0027: volume, \u0027conn\u0027: connector, \u0027k\u0027: kwargs})"},{"line_number":336,"context_line":"        host \u003d connector.get(\u0027host\u0027, \u0027\u0027) if connector else \"\""},{"line_number":337,"context_line":"        attachment_count \u003d 0"},{"line_number":338,"context_line":"        if hasattr(volume, \u0027multiattach\u0027) and volume.multiattach:"},{"line_number":339,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"099ebead_8c00f29e","line":336,"in_reply_to":"27a274e1_f05bcc5c","updated":"2026-06-09 10:34:53.000000000","message":"Acknowledged","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"aa98c9a9eb4eef2039a8736a12f936d76022162b","unresolved":true,"context_lines":[{"line_number":333,"context_line":"        LOG.debug(\u0027enter: terminate_connection: volume %(vol)s with \u0027"},{"line_number":334,"context_line":"                  \u0027connector %(conn)s. kwargs %(k)s\u0027,"},{"line_number":335,"context_line":"                  {\u0027vol\u0027: volume, \u0027conn\u0027: connector, \u0027k\u0027: kwargs})"},{"line_number":336,"context_line":"        host \u003d connector.get(\u0027host\u0027, \u0027\u0027) if connector else \"\""},{"line_number":337,"context_line":"        attachment_count \u003d 0"},{"line_number":338,"context_line":"        if hasattr(volume, \u0027multiattach\u0027) and volume.multiattach:"},{"line_number":339,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"27a274e1_f05bcc5c","line":336,"in_reply_to":"8182b621_e35cb6f2","updated":"2026-06-09 10:02:22.000000000","message":"For multi-attach scenarios, we prioritize integrity over consistency. Therefore, we do not perform any action and skip terminating the volume connection.\n\nYes, UT coverage exists for the multiattach force-detach scenario. The iSCSI path is covered by test_storwize_terminate_iscsi_multiAttachForceDetach(), and the FC path is covered by test_storwize_terminate_fc_multi_attach_ForceDetach(). These tests set multiattach \u003d True, create two attached records on the same host, and validate the force-detach behavior.","commit_id":"f6790c52973e98a7ee42503b17ec14ba80b764fc"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"600aea1d728593075b9792bd0a157471b09c1e82","unresolved":true,"context_lines":[{"line_number":344,"context_line":"                        attachment_count +\u003d 1"},{"line_number":345,"context_line":"            except AttributeError:"},{"line_number":346,"context_line":"                pass"},{"line_number":347,"context_line":"            if attachment_count \u003e 1:"},{"line_number":348,"context_line":"                LOG.debug(\"Volume %(volume)s is attached to multiple \""},{"line_number":349,"context_line":"                          \"instances on host %(host_name)s, \""},{"line_number":350,"context_line":"                          \"skip terminate volume connection\","}],"source_content_type":"text/x-python","patch_set":9,"id":"33b32e0c_03c73b76","line":347,"updated":"2026-08-21 16:35:46.000000000","message":"this is not covered in tests for here `fc` and `iscsi`","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"c30343741444f41eb732d524de1bbb1f61056b43","unresolved":true,"context_lines":[{"line_number":388,"context_line":"                LOG.info(\"Need to remove FC Zone, building initiator \""},{"line_number":389,"context_line":"                         \"target map.\")"},{"line_number":390,"context_line":"                # Build info data structure for zone removing"},{"line_number":391,"context_line":"                if connector and \u0027wwpns\u0027 in connector and host_name:"},{"line_number":392,"context_line":"                    target_wwpns \u003d []"},{"line_number":393,"context_line":"                    # Returning all target_wwpns in storage_nodes, since"},{"line_number":394,"context_line":"                    # we cannot determine which wwpns are logged in during"}],"source_content_type":"text/x-python","patch_set":9,"id":"c95b7b68_1a12b011","line":391,"updated":"2026-08-21 16:46:19.000000000","message":"this might be ignored, but we have recent case where wwpn got corrupted and then later replced by physically, so thy have to force detach with absent wwpn.\n\nthat mankes me think connector can be none or may be I am wrong.\n\nwithout a test if someone later drops connector and part of this contion, it would crash in that scenario but CI will say green\n\ncould you please add an FC test that force-detach  with `connector\u003dNone`.\n\nif it dones make sense, let me know but request you to dont resolve.","commit_id":"905cadd3dd837c9b48f0010b2fcf6c24feb6efde"}]}
