)]}'
{"/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":"34ff8bff482a0e3b8b1fce5e5d519d56950e144a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dbb0c74c_32f9cd05","updated":"2026-10-19 05:21:45.000000000","message":"Please check the comment.","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"76454c73e5a0dc43907ea1acf21847c01e7f91a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2246a62a_55c0065d","updated":"2026-11-04 11:06:15.000000000","message":"Code looks good. Please ensure this is tested.","commit_id":"c2a77a553109e122230eea5be050dc08b0d055d5"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"176da4eead4c9f4c541c86359f7004c78f93dd99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a8a0e29_18777194","updated":"2026-11-11 09:18:58.000000000","message":"LGTM","commit_id":"c2a77a553109e122230eea5be050dc08b0d055d5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ea8e7ef5ae706f743fac63ce194f858e47bae234","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7b9ef311_8fa2af54","updated":"2026-11-11 07:35:49.000000000","message":"LGTM..!","commit_id":"c2a77a553109e122230eea5be050dc08b0d055d5"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"0ea704df2bd811cdf67bec711c1f1f8841df07b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8a8576fb_39bc262b","updated":"2026-11-11 05:25:22.000000000","message":"recheck","commit_id":"c2a77a553109e122230eea5be050dc08b0d055d5"}],"cinder/volume/drivers/netapp/dataontap/utils/data_motion.py":[{"author":{"_account_id":38623,"name":"Sanketh Shetty","display_name":"Sanketh Shetty","email":"sanketh.shetty@netapp.com","username":"sanketh-netapp","status":"NetApp"},"change_message_id":"2fb23a8dc4aae7b983f9046e3b3622d7d13c212a","unresolved":true,"context_lines":[{"line_number":1339,"context_line":"            LOG.debug(\u0027Mounting destination flexvols after snapmirror break\u0027)"},{"line_number":1340,"context_line":"            dest_client \u003d ("},{"line_number":1341,"context_line":"                config_utils.get_client_for_backend(active_backend_name))"},{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffbfdc2_597c32e7","line":1342,"updated":"2026-11-02 14:26:48.000000000","message":"Agree with Anoop\u0027s point here. We must not rely on the ssc flexvols here. But instead fetch the CG flexvolumes and mount them.","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"c5346b5cdeaf9da5b84de5287d3942ffc30a583f","unresolved":false,"context_lines":[{"line_number":1339,"context_line":"            LOG.debug(\u0027Mounting destination flexvols after snapmirror break\u0027)"},{"line_number":1340,"context_line":"            dest_client \u003d ("},{"line_number":1341,"context_line":"                config_utils.get_client_for_backend(active_backend_name))"},{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"}],"source_content_type":"text/x-python","patch_set":3,"id":"a4d37f61_3889c193","line":1342,"in_reply_to":"7ffbfdc2_597c32e7","updated":"2026-11-04 10:54:13.000000000","message":"Done","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"a7b64e392892505606d6034c7c87f95d1f66886d","unresolved":true,"context_lines":[{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"},{"line_number":1346,"context_line":"                    dest_flexvol \u003d flexvol + na_utils.REPLICATED_VOLUME_SUFFIX"},{"line_number":1347,"context_line":"                dest_client.mount_flexvol(dest_flexvol)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"384cc656_4bd75db5","line":1345,"updated":"2026-10-25 15:25:49.000000000","message":"flexvols is the source SSC list from get_ssc_flexvol_names() at line 1301, taken before _failover_completed() switches the client. It is not the destination CG membership.\n\ncreate_snapmirror_for_cg_with_flexvols() and _check_flexvol_name_conflicts() always name the destination \"{source}_dst\". This endswith guard skips that append when the source pool is already named that way, so a pool \"pool_dst\" is created as \"pool_dst_dst\" and then mounted as \"pool_dst\".\n\nFor a normal source name the guard and the create path agree. Please always append na_utils.REPLICATED_VOLUME_SUFFIX here, with no endswith test.","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"c5346b5cdeaf9da5b84de5287d3942ffc30a583f","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"},{"line_number":1346,"context_line":"                    dest_flexvol \u003d flexvol + na_utils.REPLICATED_VOLUME_SUFFIX"},{"line_number":1347,"context_line":"                dest_client.mount_flexvol(dest_flexvol)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f6888be1_d03e08f6","line":1345,"in_reply_to":"384cc656_4bd75db5","updated":"2026-11-04 10:54:13.000000000","message":"Done","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"34ff8bff482a0e3b8b1fce5e5d519d56950e144a","unresolved":true,"context_lines":[{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"},{"line_number":1346,"context_line":"                    dest_flexvol \u003d flexvol + na_utils.REPLICATED_VOLUME_SUFFIX"},{"line_number":1347,"context_line":"                dest_client.mount_flexvol(dest_flexvol)"},{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"        # Update cinder volumes within this host"},{"line_number":1350,"context_line":"        replication_status \u003d fields.ReplicationStatus.FAILED_OVER"}],"source_content_type":"text/x-python","patch_set":3,"id":"58a11c21_6c2307a6","line":1347,"range":{"start_line":1345,"start_character":16,"end_line":1347,"end_character":55},"updated":"2026-10-19 05:21:45.000000000","message":"Why is this check required? Sinc you are getting the list of flexvols from the CG that has failed over, do we really need the check of _dst? This tightly couples the logic to a flexvol naming strategy and should be avoided if possible?","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"},{"author":{"_account_id":39161,"name":"Medha Choudhary netapp","display_name":"Medha Choudhary (netapp)","email":"medhac@netapp.com","username":"medhac","status":"Netapp"},"change_message_id":"c5346b5cdeaf9da5b84de5287d3942ffc30a583f","unresolved":false,"context_lines":[{"line_number":1342,"context_line":"            for flexvol in flexvols:"},{"line_number":1343,"context_line":"                # Destination FlexVol from a CG SnapMirror has a _dst suffix."},{"line_number":1344,"context_line":"                dest_flexvol \u003d flexvol"},{"line_number":1345,"context_line":"                if not flexvol.endswith(na_utils.REPLICATED_VOLUME_SUFFIX):"},{"line_number":1346,"context_line":"                    dest_flexvol \u003d flexvol + na_utils.REPLICATED_VOLUME_SUFFIX"},{"line_number":1347,"context_line":"                dest_client.mount_flexvol(dest_flexvol)"},{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"        # Update cinder volumes within this host"},{"line_number":1350,"context_line":"        replication_status \u003d fields.ReplicationStatus.FAILED_OVER"}],"source_content_type":"text/x-python","patch_set":3,"id":"1c650a21_058cb938","line":1347,"range":{"start_line":1345,"start_character":16,"end_line":1347,"end_character":55},"in_reply_to":"58a11c21_6c2307a6","updated":"2026-11-04 10:54:13.000000000","message":"Done","commit_id":"57025338d63e293c907f1154bc2a12de4ee8982b"}]}
