)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"5fc1647a128e613b34baeac4372ca514e6c0c767","unresolved":true,"context_lines":[{"line_number":16,"context_line":"Implements: blueprint ibm-svf-volumegroup"},{"line_number":17,"context_line":"Change-Id: If6cd2a186b9c5e523a01d334dd0f435a5eeda792"},{"line_number":18,"context_line":"Signed-off-by: Dakshina Purohit \u003cdakshina.purohit@ibm.com\u003e"},{"line_number":19,"context_line":"Signed-off-by: Dakshina Purohit \u003cDakshina.Purohit@ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"41e41a1d_e3fae498","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":58},"updated":"2025-08-18 15:07:53.000000000","message":"Duplicate sign-off. Please remove one of it.","commit_id":"1017a5f65fec1ac3f96023551cb18bf9a70e493e"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ca91a8a5030a7383fd5eda2f2a1ae570481777b4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Implements: blueprint ibm-svf-volumegroup"},{"line_number":17,"context_line":"Change-Id: If6cd2a186b9c5e523a01d334dd0f435a5eeda792"},{"line_number":18,"context_line":"Signed-off-by: Dakshina Purohit \u003cdakshina.purohit@ibm.com\u003e"},{"line_number":19,"context_line":"Signed-off-by: Dakshina Purohit \u003cDakshina.Purohit@ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":43,"id":"dcf8adc0_fc8e39e2","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":58},"in_reply_to":"41e41a1d_e3fae498","updated":"2025-08-19 04:45:55.000000000","message":"DONE @harsh.ailani@ibm.com","commit_id":"1017a5f65fec1ac3f96023551cb18bf9a70e493e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"0f9255b54cc543853b7463444ab53475e598e1eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"1d478d70_9fbc274a","updated":"2025-08-04 12:55:25.000000000","message":"LGTM","commit_id":"c400ad9714c7f19e2617068063da1a6edb2cddb9"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"f5d8f64c3972854904d5bfca93c32da39f03c77c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"86e47cd8_161f1cf9","updated":"2025-07-28 11:32:00.000000000","message":"run-IBM-C","commit_id":"c400ad9714c7f19e2617068063da1a6edb2cddb9"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"be83a37d072794e715448e0edb42a1737d7ac18c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"1f5bd457_75058350","updated":"2025-08-07 06:55:54.000000000","message":"recheck","commit_id":"1017a5f65fec1ac3f96023551cb18bf9a70e493e"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"acbcd2457fac07baf242c5b40a3d2a4e2c3c5b2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"9d98b67c_1ed5fd7c","updated":"2025-08-11 05:39:12.000000000","message":"run-IBM-CI","commit_id":"1017a5f65fec1ac3f96023551cb18bf9a70e493e"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"e63f5a45263ad480ce978b3d42e973947cef0aa7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"938b77e6_d588e28d","updated":"2025-08-20 05:35:34.000000000","message":"LGTM","commit_id":"4bfd15debd58ac16fe00e225ac0e556ec3d0a907"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"33e8dccdd2d2e91b43877888cd75ff1a9a058944","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"f7400342_ca5da06a","updated":"2025-08-19 04:44:40.000000000","message":"run-IBM-CI","commit_id":"4bfd15debd58ac16fe00e225ac0e556ec3d0a907"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"77d9eb5552510ac589ba882ff93b3d0e9d20b87c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"c163024f_7c5c00d8","updated":"2025-09-02 17:57:53.000000000","message":"recheck devstack-plugin-nfs-tempest-full","commit_id":"3c2cbd8314e12afe7b0f118885b006438947e269"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":49,"id":"a69cf3ee_1c015b5a","updated":"2025-09-03 18:26:19.000000000","message":"This is my first pass at this patch so only went through the functional changes and it requires some amount of work to be in merge-able state.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"2b5184a05b8f820eee5f593350b112dd1bbe3c40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":49,"id":"cb7a9481_e4d0ee09","updated":"2025-09-03 09:47:45.000000000","message":"recheck","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"37c97ebe38818df3c4fa8e15e0b7e80bebc920c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"1e4dba0f_42633eda","updated":"2025-09-05 12:52:10.000000000","message":"IBM-run-CI","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"2d36ec05_6d33e1e4","updated":"2025-09-05 11:18:34.000000000","message":"recheck","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"97a86180611d7ea27dbe47a3d62df2ace99fdd67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"5d8d3cd4_d1176537","updated":"2025-09-05 11:23:44.000000000","message":"recheck","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"9a15db4343cb936ddb531f57a37b07ee452f1247","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"d5c93011_ff0439bb","updated":"2025-09-04 17:55:46.000000000","message":"recheck","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"f1398106214a76553cc88949d5ebacfcd9d4f4ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"4959e524_9f2f8faf","updated":"2025-09-04 17:47:19.000000000","message":"run-IBM-CI","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"95c5de9f12078052ce33f51c249878026103819d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"e8203f06_ca2ca342","updated":"2025-09-05 13:32:03.000000000","message":"run-IBM-CI","commit_id":"c2f47f8ea0162b03574cbb92c6ef6c00466a6319"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"d2526b0129245e7abf5529dd02e50f1a18a3d81a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"c8d73ed0_46a1c903","updated":"2025-09-07 07:40:17.000000000","message":"recheck","commit_id":"63372e86f4b213af00c246a8dacfb161c5ff3341"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"8fdbbf80905d45e5b2d32e112d4597ee0de9b9dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":54,"id":"54603bd5_5b1b67c2","updated":"2025-09-08 11:00:39.000000000","message":"recheck","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"5f1f55e7ffefec504a14f00aee7bd797b1fe25a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":54,"id":"ff9d9146_ae27842d","updated":"2025-09-08 10:40:28.000000000","message":"recheck","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"7dde48e46f1938338180d224f68f642e6283a846","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":54,"id":"10c7a8b7_0ee228fe","updated":"2025-09-08 10:49:13.000000000","message":"run-IBM-CI","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7aba21bba06ba00de857e4bd2c56f2ad46dc8a84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":54,"id":"d3361f06_3ab6a0b3","updated":"2025-09-08 20:56:47.000000000","message":"thanks for addressing most of my comments, there are still a few left inline specially the releasenote one that is badly rendering in the reno job.","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"a27b6b2db952d3321130945d1859c072893832e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":56,"id":"05fa48f7_13387a18","updated":"2025-09-09 10:14:46.000000000","message":"recheck","commit_id":"e3bc417be4253ecf7bd1c4a791d045ecc688de51"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"8e9879db8a0110becfacaaa7e686968e23eeb80d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":56,"id":"f0b3ef2e_97807f09","updated":"2025-09-09 10:26:37.000000000","message":"recheck","commit_id":"e3bc417be4253ecf7bd1c4a791d045ecc688de51"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"a09ffa8c2b86b6aaae3171963a9e0480f7498abf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"5731e477_773c7306","updated":"2025-09-10 13:41:23.000000000","message":"recheck","commit_id":"0e675d13992208d47291882602b5753ad482b959"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"4b923b90d456619d70ed71cfe1f1e957ec2a88e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"5e3bd524_7b9519f9","updated":"2025-09-10 15:21:36.000000000","message":"recheck","commit_id":"0e675d13992208d47291882602b5753ad482b959"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"eb2fab13441d621dd914af71c2ac126d6bbf6c80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"ce116bd4_9d5dab83","updated":"2025-09-11 07:22:48.000000000","message":"recheck","commit_id":"0e675d13992208d47291882602b5753ad482b959"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"4ccd662748ad4c43c5d5d82d3c5d00a59f37538e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"fdba5120_a549d460","updated":"2025-09-10 13:57:07.000000000","message":"recheck","commit_id":"0e675d13992208d47291882602b5753ad482b959"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c48ca171ba9bbaf4855b665a4bf676776c72b390","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":58,"id":"867216da_9227d310","updated":"2025-10-29 00:53:47.000000000","message":"I have some nitpicks here that maybe don\u0027t need to be actioned on, but I am really curious about the \u0027opts\u0027 parameter comment I made (which is why this is getting a -1 from me for the moment - other two comments I\u0027m neutral on).","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"79bf1ec977bc6ab772a92834a80c1e02f24e17da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":58,"id":"23c0c72d_1f8e57f5","updated":"2025-10-29 21:54:54.000000000","message":"Resolve one of my comments as no longer relevant.","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"a428b1aca1045514bf04cb2c8acea5ae5c48033a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"4830f3b8_e176a940","updated":"2025-11-07 03:26:59.000000000","message":"I\u0027m satisfied with the patch now with the additional changes.","commit_id":"9f225ebf4f96bf2305fde79640efabb51ec80608"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"6af1aae6a4d6cc1b5e52a686e7d28a54cd0e2103","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"dda6c4a6_2810de38","updated":"2025-11-06 11:22:49.000000000","message":"Resolved comments","commit_id":"9f225ebf4f96bf2305fde79640efabb51ec80608"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"9e1154a54df8b4a600ac2def29117c7fb82f0d07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":70,"id":"31533f99_30738eb2","updated":"2025-11-12 10:24:05.000000000","message":"run-quobyteci","commit_id":"118659f572713e6db0088aab08050b4fdce61266"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"f037c0b8103349caaf26ed9c56c7bdccfa9b743b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"a9a03d50_0937a805","updated":"2025-11-19 11:00:07.000000000","message":"Adding comments for -type implementation.","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"bc3ed5706de85e1d8e9be00ae32b24511e63d517","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":82,"id":"f779a9ba_3ce8bafc","updated":"2026-01-16 15:26:30.000000000","message":"LGTM","commit_id":"607fae499505d1de7d8e69139d91cf2c0d764516"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"deee3b7ddf5a91412da3f4177da91d5379e1e96d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":87,"id":"0a7c8e81_57e69af7","updated":"2026-02-02 06:27:03.000000000","message":"recheck openstacksdk-functional-devstack","commit_id":"7ac5dfc4d11a0384596cae1ca78a67e84add6436"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":90,"id":"4c040f32_f08b1379","updated":"2026-02-05 10:09:39.000000000","message":"@Dakshina.Purohit@ibm.com I have added comments where the code is failing/incorrect.\n@vivek.pandey11@ibm.com We need thorough testing of this functionality.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"ff71bb70ea460b34feb0017f919c6a4407243051","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":99,"id":"f610143e_8250441e","updated":"2026-03-16 07:04:17.000000000","message":"recheck","commit_id":"e86e330cd4123bcfaffac6b169061bc3a256bcb3"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"d648276e9d7723c6c2ee67825dd035b82eac7d93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":99,"id":"316e9dd9_daaa72d0","updated":"2026-03-12 13:57:14.000000000","message":"recheck openstack-tox-py313 devstack-plugin-nfs-tempest-full","commit_id":"e86e330cd4123bcfaffac6b169061bc3a256bcb3"}],"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":3364,"context_line":"            site2name \u003d \u0027site2vdisk\u0027"},{"line_number":3365,"context_line":"            site2fcname \u003d \u0027fcsite2vdisk\u0027"},{"line_number":3366,"context_line":""},{"line_number":3367,"context_line":"        name \u003d kwargs.get(\u0027name\u0027, \"\u0027vdisk\u0027\").strip(\u0027\\\u0027\\\"\u0027)"},{"line_number":3368,"context_line":"        from_source_volume \u003d None"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":"        # Check for clone source"}],"source_content_type":"text/x-python","patch_set":49,"id":"be749b13_aa112186","line":3367,"range":{"start_line":3367,"start_character":34,"end_line":3367,"end_character":43},"updated":"2025-09-03 18:26:19.000000000","message":"I\u0027m really confused with the usage of single and double quotes on this patch, shouldn\u0027t just \u0027vdisk\u0027 work?","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ba68c4de5e6fe2a6443cc9aac969ae0221e932b3","unresolved":false,"context_lines":[{"line_number":3364,"context_line":"            site2name \u003d \u0027site2vdisk\u0027"},{"line_number":3365,"context_line":"            site2fcname \u003d \u0027fcsite2vdisk\u0027"},{"line_number":3366,"context_line":""},{"line_number":3367,"context_line":"        name \u003d kwargs.get(\u0027name\u0027, \"\u0027vdisk\u0027\").strip(\u0027\\\u0027\\\"\u0027)"},{"line_number":3368,"context_line":"        from_source_volume \u003d None"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":"        # Check for clone source"}],"source_content_type":"text/x-python","patch_set":49,"id":"90bd3d19_9e8c3434","line":3367,"range":{"start_line":3367,"start_character":34,"end_line":3367,"end_character":43},"in_reply_to":"be749b13_aa112186","updated":"2025-09-04 17:46:57.000000000","message":"Done","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":6091,"context_line":"    def test_storwize_svc_create_cloned_volume_from_addsnapshot(self,"},{"line_number":6092,"context_line":"                                                                addsnapshot,"},{"line_number":6093,"context_line":"                                                                mkvolume):"},{"line_number":6094,"context_line":"        \"\"\"Test clone volumegroup creation for both group-types\"\"\""},{"line_number":6095,"context_line":"        # Setup fake system info for driver setup"},{"line_number":6096,"context_line":"        with mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":6097,"context_line":"                               \u0027get_system_info\u0027) as get_system_info:"}],"source_content_type":"text/x-python","patch_set":90,"id":"d5e74732_0b69a880","line":6094,"range":{"start_line":6094,"start_character":8,"end_line":6094,"end_character":66},"updated":"2026-02-05 10:09:39.000000000","message":"This doesn\u0027t look right.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":6091,"context_line":"    def test_storwize_svc_create_cloned_volume_from_addsnapshot(self,"},{"line_number":6092,"context_line":"                                                                addsnapshot,"},{"line_number":6093,"context_line":"                                                                mkvolume):"},{"line_number":6094,"context_line":"        \"\"\"Test clone volumegroup creation for both group-types\"\"\""},{"line_number":6095,"context_line":"        # Setup fake system info for driver setup"},{"line_number":6096,"context_line":"        with mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":6097,"context_line":"                               \u0027get_system_info\u0027) as get_system_info:"}],"source_content_type":"text/x-python","patch_set":90,"id":"22a5d161_4365a74a","line":6094,"range":{"start_line":6094,"start_character":8,"end_line":6094,"end_character":66},"in_reply_to":"d5e74732_0b69a880","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":6103,"context_line":"            addsnapshot.return_value \u003d \u002712345\u0027"},{"line_number":6104,"context_line":"            self.driver.do_setup(None)"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        # Create a volume type for volumes in both groups"},{"line_number":6107,"context_line":"        vol_type_ref \u003d volume_types.create(self.ctxt, \u0027non_rep_type\u0027, {})"},{"line_number":6108,"context_line":"        src_vol \u003d self._create_volume()"},{"line_number":6109,"context_line":"        tgt_vol \u003d testutils.create_volume("}],"source_content_type":"text/x-python","patch_set":90,"id":"82c67ad3_58b85d42","line":6106,"range":{"start_line":6106,"start_character":43,"end_line":6106,"end_character":57},"updated":"2026-02-05 10:09:39.000000000","message":"these volumes are not in any group.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"77df7340a61a085ea9d08df0a1ba41a54b4fe2d6","unresolved":false,"context_lines":[{"line_number":6103,"context_line":"            addsnapshot.return_value \u003d \u002712345\u0027"},{"line_number":6104,"context_line":"            self.driver.do_setup(None)"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        # Create a volume type for volumes in both groups"},{"line_number":6107,"context_line":"        vol_type_ref \u003d volume_types.create(self.ctxt, \u0027non_rep_type\u0027, {})"},{"line_number":6108,"context_line":"        src_vol \u003d self._create_volume()"},{"line_number":6109,"context_line":"        tgt_vol \u003d testutils.create_volume("}],"source_content_type":"text/x-python","patch_set":90,"id":"5f6abefa_30e3aa14","line":6106,"range":{"start_line":6106,"start_character":43,"end_line":6106,"end_character":57},"in_reply_to":"82c67ad3_58b85d42","updated":"2026-02-19 12:39:06.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"10cbb6c69654611320294e1c5212f94b589d0a4b","unresolved":true,"context_lines":[{"line_number":4904,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4905,"context_line":"        snapshot_response \u003d None"},{"line_number":4906,"context_line":""},{"line_number":4907,"context_line":"        # Create a clone of a specified volume by first taking its snapshot"},{"line_number":4908,"context_line":"        # And then creating volume out of it and this snapshot is deleted"},{"line_number":4909,"context_line":"        # with the help of retention minutes 5"},{"line_number":4910,"context_line":""},{"line_number":4911,"context_line":"        src_name \u003d src_volume.get(\u0027name\u0027)"},{"line_number":4912,"context_line":"        provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4913,"context_line":"        timestamp \u003d int(time.time())"},{"line_number":4914,"context_line":"        snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4915,"context_line":""},{"line_number":4916,"context_line":"        snapshot_params \u003d {"},{"line_number":4917,"context_line":"            \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"            \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"            \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"            \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"        }"},{"line_number":4922,"context_line":""},{"line_number":4923,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4924,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"}],"source_content_type":"text/x-python","patch_set":35,"id":"12569edb_73a0295f","line":4921,"range":{"start_line":4907,"start_character":0,"end_line":4921,"end_character":9},"updated":"2025-07-18 13:41:04.000000000","message":"Move this entire block under if condition as this is applicable when migrate_from_flashcopy is True","commit_id":"c9d73a47bd612cd407dd2e2065b4385f57763d6b"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"9f7528129daf9d8ff982d855740d901663f04196","unresolved":false,"context_lines":[{"line_number":4904,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4905,"context_line":"        snapshot_response \u003d None"},{"line_number":4906,"context_line":""},{"line_number":4907,"context_line":"        # Create a clone of a specified volume by first taking its snapshot"},{"line_number":4908,"context_line":"        # And then creating volume out of it and this snapshot is deleted"},{"line_number":4909,"context_line":"        # with the help of retention minutes 5"},{"line_number":4910,"context_line":""},{"line_number":4911,"context_line":"        src_name \u003d src_volume.get(\u0027name\u0027)"},{"line_number":4912,"context_line":"        provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4913,"context_line":"        timestamp \u003d int(time.time())"},{"line_number":4914,"context_line":"        snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4915,"context_line":""},{"line_number":4916,"context_line":"        snapshot_params \u003d {"},{"line_number":4917,"context_line":"            \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"            \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"            \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"            \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"        }"},{"line_number":4922,"context_line":""},{"line_number":4923,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4924,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"}],"source_content_type":"text/x-python","patch_set":35,"id":"5bccdd79_25d58e25","line":4921,"range":{"start_line":4907,"start_character":0,"end_line":4921,"end_character":9},"in_reply_to":"12569edb_73a0295f","updated":"2025-07-21 12:43:10.000000000","message":"Done","commit_id":"c9d73a47bd612cd407dd2e2065b4385f57763d6b"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"f5d8f64c3972854904d5bfca93c32da39f03c77c","unresolved":false,"context_lines":[{"line_number":4904,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4905,"context_line":"        snapshot_response \u003d None"},{"line_number":4906,"context_line":""},{"line_number":4907,"context_line":"        # Create a clone of a specified volume by first taking its snapshot"},{"line_number":4908,"context_line":"        # And then creating volume out of it and this snapshot is deleted"},{"line_number":4909,"context_line":"        # with the help of retention minutes 5"},{"line_number":4910,"context_line":""},{"line_number":4911,"context_line":"        src_name \u003d src_volume.get(\u0027name\u0027)"},{"line_number":4912,"context_line":"        provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4913,"context_line":"        timestamp \u003d int(time.time())"},{"line_number":4914,"context_line":"        snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4915,"context_line":""},{"line_number":4916,"context_line":"        snapshot_params \u003d {"},{"line_number":4917,"context_line":"            \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"            \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"            \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"            \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"        }"},{"line_number":4922,"context_line":""},{"line_number":4923,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4924,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"}],"source_content_type":"text/x-python","patch_set":35,"id":"8b10cbf3_8222edc5","line":4921,"range":{"start_line":4907,"start_character":0,"end_line":4921,"end_character":9},"in_reply_to":"12569edb_73a0295f","updated":"2025-07-28 11:32:00.000000000","message":"Done","commit_id":"c9d73a47bd612cd407dd2e2065b4385f57763d6b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":49,"id":"2998da8a_335466ec","line":1023,"range":{"start_line":1022,"start_character":8,"end_line":1023,"end_character":23},"updated":"2025-09-03 18:26:19.000000000","message":"instead of this, just make the default value as []","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":49,"id":"9c073160_406accb2","line":1023,"range":{"start_line":1022,"start_character":8,"end_line":1023,"end_character":23},"in_reply_to":"2998da8a_335466ec","updated":"2025-09-04 17:43:34.000000000","message":"Done","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":49,"id":"b8f444f8_d9d8e60a","line":1024,"range":{"start_line":1024,"start_character":66,"end_line":1024,"end_character":77},"updated":"2025-09-03 18:26:19.000000000","message":"what is the purpose of this? can\u0027t we just put the variable here i.e. pool? why all the wrapping around f strings","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":true,"context_lines":[{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":49,"id":"ece8cce3_ef81aea2","line":1024,"range":{"start_line":1024,"start_character":66,"end_line":1024,"end_character":77},"in_reply_to":"b8f444f8_d9d8e60a","updated":"2025-09-04 17:43:34.000000000","message":"Thanks for pointing this out I was wondering why check_ssh_injections has not caught this . As I can see today it does not handle f string parameter. I will replace this with a variable here.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":49,"id":"791b899a_215611c0","line":1024,"range":{"start_line":1024,"start_character":66,"end_line":1024,"end_character":77},"in_reply_to":"ece8cce3_ef81aea2","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1028,"context_line":"            if \u0027-type\u0027 not in param_keys:"}],"source_content_type":"text/x-python","patch_set":49,"id":"08711a0a_e53ba8c8","line":1025,"range":{"start_line":1025,"start_character":8,"end_line":1025,"end_character":66},"updated":"2025-09-03 18:26:19.000000000","message":"are we really intending to create a SET here?\nalso can you add a comment explaining why we are skipping all even occurrences? the current loop will take 1,3,5,7... elements and skip the even ones.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":true,"context_lines":[{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1028,"context_line":"            if \u0027-type\u0027 not in param_keys:"}],"source_content_type":"text/x-python","patch_set":49,"id":"6a858f8c_d5f21573","line":1025,"range":{"start_line":1025,"start_character":8,"end_line":1025,"end_character":66},"in_reply_to":"08711a0a_e53ba8c8","updated":"2025-09-04 17:43:34.000000000","message":"We are trying to remove duplicate values which is why we use set.param_keys is meant to contain only the flags (things like -unit, -iogrp, etc.), not their associated values.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"        if params is None:"},{"line_number":1023,"context_line":"            params \u003d []"},{"line_number":1024,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1025,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1026,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1027,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1028,"context_line":"            if \u0027-type\u0027 not in param_keys:"}],"source_content_type":"text/x-python","patch_set":49,"id":"5b9bb320_5c3474f6","line":1025,"range":{"start_line":1025,"start_character":8,"end_line":1025,"end_character":66},"in_reply_to":"6a858f8c_d5f21573","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4820,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4821,"context_line":""},{"line_number":4822,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4823,"context_line":"            size \u003d volume.get(\u0027size\u0027)"},{"line_number":4824,"context_line":"            src_volume_id \u003d snapshot.get(\u0027volume_id\u0027)"},{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"}],"source_content_type":"text/x-python","patch_set":49,"id":"e1193cbd_d17e2bd4","line":4823,"range":{"start_line":4823,"start_character":19,"end_line":4823,"end_character":37},"updated":"2025-09-03 18:26:19.000000000","message":"volume.size\ntreat volume as OVOs instead of dict","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":4820,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4821,"context_line":""},{"line_number":4822,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4823,"context_line":"            size \u003d volume.get(\u0027size\u0027)"},{"line_number":4824,"context_line":"            src_volume_id \u003d snapshot.get(\u0027volume_id\u0027)"},{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"}],"source_content_type":"text/x-python","patch_set":49,"id":"e6b76bdd_c84c130a","line":4823,"range":{"start_line":4823,"start_character":19,"end_line":4823,"end_character":37},"in_reply_to":"e1193cbd_d17e2bd4","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4821,"context_line":""},{"line_number":4822,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4823,"context_line":"            size \u003d volume.get(\u0027size\u0027)"},{"line_number":4824,"context_line":"            src_volume_id \u003d snapshot.get(\u0027volume_id\u0027)"},{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4827,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"}],"source_content_type":"text/x-python","patch_set":49,"id":"15f28a7f_eb651704","line":4824,"range":{"start_line":4824,"start_character":28,"end_line":4824,"end_character":53},"updated":"2025-09-03 18:26:19.000000000","message":"snapshot.volume_id\nsame for snapshot, OVO vs dict","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":false,"context_lines":[{"line_number":4821,"context_line":""},{"line_number":4822,"context_line":"        if migrate_from_flashcopy:"},{"line_number":4823,"context_line":"            size \u003d volume.get(\u0027size\u0027)"},{"line_number":4824,"context_line":"            src_volume_id \u003d snapshot.get(\u0027volume_id\u0027)"},{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4827,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"}],"source_content_type":"text/x-python","patch_set":49,"id":"d855db07_15b1c64a","line":4824,"range":{"start_line":4824,"start_character":28,"end_line":4824,"end_character":53},"in_reply_to":"15f28a7f_eb651704","updated":"2025-09-04 17:43:34.000000000","message":"Done","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4827,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4828,"context_line":"            params \u003d ["},{"line_number":4829,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4830,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4831,"context_line":"            ]"},{"line_number":4832,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4833,"context_line":"                name \u003d volume[\u0027name\u0027],"},{"line_number":4834,"context_line":"                size\u003dsize,"}],"source_content_type":"text/x-python","patch_set":49,"id":"947814c6_d988b941","line":4831,"range":{"start_line":4828,"start_character":12,"end_line":4831,"end_character":13},"updated":"2025-09-03 18:26:19.000000000","message":"not an expert in IBM driver but looks like something is wrong here.\nWe should either supply source volume or snapshot ID, even the condition at L#1026-1027 checks if either -fromsourcevolume OR -fromsnapshotid is present in params.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":4825,"context_line":"            src_volume_name \u003d f\"volume-{src_volume_id}\""},{"line_number":4826,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4827,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4828,"context_line":"            params \u003d ["},{"line_number":4829,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4830,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4831,"context_line":"            ]"},{"line_number":4832,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4833,"context_line":"                name \u003d volume[\u0027name\u0027],"},{"line_number":4834,"context_line":"                size\u003dsize,"}],"source_content_type":"text/x-python","patch_set":49,"id":"7c2b0e4c_5e422ca7","line":4831,"range":{"start_line":4828,"start_character":12,"end_line":4831,"end_character":13},"in_reply_to":"947814c6_d988b941","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4917,"context_line":"                \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"                \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"                \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"                \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"            }"},{"line_number":4922,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"},{"line_number":4923,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"cead3e8f_5eb9d804","line":4920,"range":{"start_line":4920,"start_character":0,"end_line":4920,"end_character":39},"updated":"2025-09-03 18:26:19.000000000","message":"isn\u0027t 5 minutes too much for retention time? I expected the clone to be performed in seconds given it\u0027s optimized on the backend side.\nDid we do any testing on this regarding how much time does the operation take?\nI feel it\u0027s better to delete it manually at the end of operation instead of the \"fancy\" way of auto-deletion.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":4917,"context_line":"                \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"                \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"                \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"                \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"            }"},{"line_number":4922,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"},{"line_number":4923,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"b917e975_416f8d49","line":4920,"range":{"start_line":4920,"start_character":0,"end_line":4920,"end_character":39},"in_reply_to":"3fb747d0_66525912","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":true,"context_lines":[{"line_number":4917,"context_line":"                \u0027name\u0027: snapshot_name,"},{"line_number":4918,"context_line":"                \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":4919,"context_line":"                \u0027volume\u0027: str(src_name),"},{"line_number":4920,"context_line":"                \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":4921,"context_line":"            }"},{"line_number":4922,"context_line":"            snapshot_response \u003d self._helpers.ssh.addsnapshot(snapshot_params)"},{"line_number":4923,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"3fb747d0_66525912","line":4920,"range":{"start_line":4920,"start_character":0,"end_line":4920,"end_character":39},"in_reply_to":"cead3e8f_5eb9d804","updated":"2025-09-04 17:43:34.000000000","message":"clone operation takes less than 5 sec of time for 1 gb of volume we are opting for retention minutes parameter so that the ssh call could be reduced.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4941,"context_line":""},{"line_number":4942,"context_line":"            size \u003d tgt_volume.get(\u0027size\u0027)"},{"line_number":4943,"context_line":"            params \u003d ["},{"line_number":4944,"context_line":"                \u0027-fromsourcevolume\u0027, src_name,"},{"line_number":4945,"context_line":"                \u0027-fromsnapshotid\u0027, str(snapshot_id)"},{"line_number":4946,"context_line":"            ]"},{"line_number":4947,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4948,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":49,"id":"7eb972ae_e0c6ff1c","line":4945,"range":{"start_line":4944,"start_character":0,"end_line":4945,"end_character":51},"updated":"2025-09-03 18:26:19.000000000","message":"same as above, i feel in create_cloned_volume, we should only pass \u0027-fromsourcevolume\u0027 and in create_volume_from_snapshot we should pass \u0027-fromsnapshotid\u0027\nIdeally this would be the logical way according to me but happy to be corrected.","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":4941,"context_line":""},{"line_number":4942,"context_line":"            size \u003d tgt_volume.get(\u0027size\u0027)"},{"line_number":4943,"context_line":"            params \u003d ["},{"line_number":4944,"context_line":"                \u0027-fromsourcevolume\u0027, src_name,"},{"line_number":4945,"context_line":"                \u0027-fromsnapshotid\u0027, str(snapshot_id)"},{"line_number":4946,"context_line":"            ]"},{"line_number":4947,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4948,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":49,"id":"07907512_f0094fc2","line":4945,"range":{"start_line":4944,"start_character":0,"end_line":4945,"end_character":51},"in_reply_to":"7eb972ae_e0c6ff1c","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":4947,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4948,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4949,"context_line":"                size\u003dsize,"},{"line_number":4950,"context_line":"                units\u003d\u0027b\u0027,"},{"line_number":4951,"context_line":"                pool\u003dpool,"},{"line_number":4952,"context_line":"                params\u003dparams"},{"line_number":4953,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":49,"id":"f27e4898_e59ec121","line":4950,"range":{"start_line":4950,"start_character":16,"end_line":4950,"end_character":26},"updated":"2025-09-03 18:26:19.000000000","message":"IIUC the volume size fetched from volume at L#4942 is in GB and here we are passing unit as b which i assume to be bytes? did we verify if this works as intended?","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1f68c567d618eca614699a0e4ac8e6ef5ace825a","unresolved":false,"context_lines":[{"line_number":4947,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4948,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4949,"context_line":"                size\u003dsize,"},{"line_number":4950,"context_line":"                units\u003d\u0027b\u0027,"},{"line_number":4951,"context_line":"                pool\u003dpool,"},{"line_number":4952,"context_line":"                params\u003dparams"},{"line_number":4953,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":49,"id":"0c2d9361_e513be15","line":4950,"range":{"start_line":4950,"start_character":16,"end_line":4950,"end_character":26},"in_reply_to":"43cef934_5540b444","updated":"2025-09-05 11:18:34.000000000","message":"Acknowledged","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":true,"context_lines":[{"line_number":4947,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4948,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4949,"context_line":"                size\u003dsize,"},{"line_number":4950,"context_line":"                units\u003d\u0027b\u0027,"},{"line_number":4951,"context_line":"                pool\u003dpool,"},{"line_number":4952,"context_line":"                params\u003dparams"},{"line_number":4953,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":49,"id":"43cef934_5540b444","line":4950,"range":{"start_line":4950,"start_character":16,"end_line":4950,"end_character":26},"in_reply_to":"f27e4898_e59ec121","updated":"2025-09-04 17:43:34.000000000","message":"I have updated the gb parameter","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7aba21bba06ba00de857e4bd2c56f2ad46dc8a84","unresolved":true,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        params \u003d []"},{"line_number":1023,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1024,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1025,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":54,"id":"867c2110_e99ad061","line":1022,"range":{"start_line":1022,"start_character":8,"end_line":1022,"end_character":19},"updated":"2025-09-08 20:56:47.000000000","message":"it\u0027s better to do it on L#1021\n\n        def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003d[]):","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"58e31898b7cf48f3bcc975311ffdaf68d63cc423","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        params \u003d []"},{"line_number":1023,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1024,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1025,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":54,"id":"2156e074_9e0cacb8","line":1022,"range":{"start_line":1022,"start_character":8,"end_line":1022,"end_character":19},"in_reply_to":"867c2110_e99ad061","updated":"2025-09-09 10:14:32.000000000","message":"Done","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7aba21bba06ba00de857e4bd2c56f2ad46dc8a84","unresolved":true,"context_lines":[{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        params \u003d []"},{"line_number":1023,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1024,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1025,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1026,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":54,"id":"3b0998c8_c2b29478","line":1023,"range":{"start_line":1023,"start_character":66,"end_line":1023,"end_character":77},"updated":"2025-09-08 20:56:47.000000000","message":"this is still not replaced with the `pool` variable","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"58e31898b7cf48f3bcc975311ffdaf68d63cc423","unresolved":false,"context_lines":[{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        params \u003d []"},{"line_number":1023,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1024,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1025,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1026,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":54,"id":"604af591_af14084c","line":1023,"range":{"start_line":1023,"start_character":66,"end_line":1023,"end_character":77},"in_reply_to":"3b0998c8_c2b29478","updated":"2025-09-09 10:14:32.000000000","message":"Done","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"baade57eff3fc9f66c24766822c6466371651c57","unresolved":false,"context_lines":[{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, vdisk_type\u003dNone, params\u003dNone):"},{"line_number":1022,"context_line":"        params \u003d []"},{"line_number":1023,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1024,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1025,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1026,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":54,"id":"2ac3c8fe_4a64d40f","line":1023,"range":{"start_line":1023,"start_character":66,"end_line":1023,"end_character":77},"in_reply_to":"604af591_af14084c","updated":"2025-09-10 13:41:03.000000000","message":"Hi Rajat, I can\u0027t replace the pool name with -pool it affects the functionality of the driver the inputted parameters must be in \"\" and it actually fails our UT resulting into zuul failure. We would have to give pool this way only.","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c48ca171ba9bbaf4855b665a4bf676776c72b390","unresolved":true,"context_lines":[{"line_number":2310,"context_line":"        hyperpool \u003d \u0027%s:%s\u0027 % (pool, opts[\u0027peer_pool\u0027])"},{"line_number":2311,"context_line":"        self.ssh.mkvolume("},{"line_number":2312,"context_line":"            vol_name, str(size), units,"},{"line_number":2313,"context_line":"            hyperpool, opts, params\u003dparams"},{"line_number":2314,"context_line":"        )"},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"    def convert_volume_to_hyperswap(self, vol_name, opts, state):"}],"source_content_type":"text/x-python","patch_set":58,"id":"5f1eefba_192e9818","line":2313,"updated":"2025-10-29 00:53:47.000000000","message":"Is \u0027opts\u0027 really what we want to send to mkvolume? That parameter is aligned with \"vdisk_type\" and passed into the type parameter, but the opts value itself seems to be a tuple/mapping of potentially several different options.","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"6af1aae6a4d6cc1b5e52a686e7d28a54cd0e2103","unresolved":false,"context_lines":[{"line_number":2310,"context_line":"        hyperpool \u003d \u0027%s:%s\u0027 % (pool, opts[\u0027peer_pool\u0027])"},{"line_number":2311,"context_line":"        self.ssh.mkvolume("},{"line_number":2312,"context_line":"            vol_name, str(size), units,"},{"line_number":2313,"context_line":"            hyperpool, opts, params\u003dparams"},{"line_number":2314,"context_line":"        )"},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"    def convert_volume_to_hyperswap(self, vol_name, opts, state):"}],"source_content_type":"text/x-python","patch_set":58,"id":"43e35ed4_fb08ad68","line":2313,"in_reply_to":"5f1eefba_192e9818","updated":"2025-11-06 11:22:49.000000000","message":"Done","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c48ca171ba9bbaf4855b665a4bf676776c72b390","unresolved":true,"context_lines":[{"line_number":4814,"context_line":"                                      volume_metadata\u003dvolume.get("},{"line_number":4815,"context_line":"                                          \u0027volume_metadata\u0027))"},{"line_number":4816,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], \u0027pool\u0027)"},{"line_number":4817,"context_line":"        migrate_from_flashcopy \u003d self._get_config_param_value("},{"line_number":4818,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4819,"context_line":""},{"line_number":4820,"context_line":"        if migrate_from_flashcopy:"}],"source_content_type":"text/x-python","patch_set":58,"id":"23181601_ace6ca67","line":4817,"updated":"2025-10-29 00:53:47.000000000","message":"This might be nitpicky (and you can ignore me), but isn\u0027t the idea behind this patch that you are going to use flashcopy if the setting is set?\n\nI\u0027m just trying to understand the naming behind this option, as to me \"migrate from flashcopy\" implies that flashcopy is currently being used, and we\u0027re going to migrate away from using it in some fashion.  My understanding is that you\u0027re just using flashcopy if that setting is set, and some other method if it is not.","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"79bf1ec977bc6ab772a92834a80c1e02f24e17da","unresolved":false,"context_lines":[{"line_number":4814,"context_line":"                                      volume_metadata\u003dvolume.get("},{"line_number":4815,"context_line":"                                          \u0027volume_metadata\u0027))"},{"line_number":4816,"context_line":"        pool \u003d volume_utils.extract_host(volume[\u0027host\u0027], \u0027pool\u0027)"},{"line_number":4817,"context_line":"        migrate_from_flashcopy \u003d self._get_config_param_value("},{"line_number":4818,"context_line":"            \u0027migrate_from_flashcopy\u0027, True)"},{"line_number":4819,"context_line":""},{"line_number":4820,"context_line":"        if migrate_from_flashcopy:"}],"source_content_type":"text/x-python","patch_set":58,"id":"37e5fec8_61192d64","line":4817,"in_reply_to":"23181601_ace6ca67","updated":"2025-10-29 21:54:54.000000000","message":"After reviewing another patch, I realized that we\u0027re migrating from FlashCopy to FlashCopy 2.0.  With that context I am resolving this comment.","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c48ca171ba9bbaf4855b665a4bf676776c72b390","unresolved":true,"context_lines":[{"line_number":4928,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4929,"context_line":""},{"line_number":4930,"context_line":"            if isinstance(snapshot_response, int):"},{"line_number":4931,"context_line":"                snapshot_id \u003d snapshot_response"},{"line_number":4932,"context_line":"            else:"},{"line_number":4933,"context_line":"                msg \u003d (f\"Unexpected snapshot response type:\\"},{"line_number":4934,"context_line":"                        {type(snapshot_response)}, \""}],"source_content_type":"text/x-python","patch_set":58,"id":"05f2fee4_902a7de8","line":4931,"updated":"2025-10-29 00:53:47.000000000","message":"Maybe I\u0027m missing something, but can this actually fail and throw once you\u0027ve checked that the instance is an int?\n\nWhat happens if the instance is not a str or an int (maybe not possible)?","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"6af1aae6a4d6cc1b5e52a686e7d28a54cd0e2103","unresolved":false,"context_lines":[{"line_number":4928,"context_line":"                    raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":4929,"context_line":""},{"line_number":4930,"context_line":"            if isinstance(snapshot_response, int):"},{"line_number":4931,"context_line":"                snapshot_id \u003d snapshot_response"},{"line_number":4932,"context_line":"            else:"},{"line_number":4933,"context_line":"                msg \u003d (f\"Unexpected snapshot response type:\\"},{"line_number":4934,"context_line":"                        {type(snapshot_response)}, \""}],"source_content_type":"text/x-python","patch_set":58,"id":"51508777_1d2786bb","line":4931,"in_reply_to":"05f2fee4_902a7de8","updated":"2025-11-06 11:22:49.000000000","message":"Done","commit_id":"66171fcbebe0ff635d98600322efd0920f16e745"},{"author":{"_account_id":36003,"name":"Amar Rajeev","display_name":"amar_rajeev","email":"Amar.Rajeev.Singuluri1@partner.ibm.com","username":"amar_rajeev"},"change_message_id":"2f5b57428dec36c5abb30f7c1d0a9413a9e4e0c1","unresolved":true,"context_lines":[{"line_number":1018,"context_line":"                   copy_id, \u0027-vdisk\u0027, vdisk]"},{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":73,"id":"ef8ba23f_3e7e3eb2","line":1021,"range":{"start_line":1021,"start_character":48,"end_line":1021,"end_character":54},"updated":"2025-11-24 06:36:16.000000000","message":"default arguments of params is empty list(mutable default arg),\ncan that be changes as below?\n       def mkvolume(..., params\u003dNone):\n           params \u003d params or []","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"                   copy_id, \u0027-vdisk\u0027, vdisk]"},{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":73,"id":"f99dd35d_466333dd","line":1021,"range":{"start_line":1021,"start_character":48,"end_line":1021,"end_character":54},"in_reply_to":"ef8ba23f_3e7e3eb2","updated":"2025-12-04 11:34:20.000000000","message":"Had done the same in previous patch but because of @rajatdhasmana@gmail.com comment changed it back this way","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36003,"name":"Amar Rajeev","display_name":"amar_rajeev","email":"Amar.Rajeev.Singuluri1@partner.ibm.com","username":"amar_rajeev"},"change_message_id":"2f5b57428dec36c5abb30f7c1d0a9413a9e4e0c1","unresolved":true,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":73,"id":"27ec9038_c6f75ee9","line":1022,"range":{"start_line":1022,"start_character":66,"end_line":1022,"end_character":77},"updated":"2025-11-24 06:36:16.000000000","message":"donot require inner quotes\n-pool sitepool","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"}],"source_content_type":"text/x-python","patch_set":73,"id":"403e334f_9055dbf3","line":1022,"range":{"start_line":1022,"start_character":66,"end_line":1022,"end_character":77},"in_reply_to":"27ec9038_c6f75ee9","updated":"2025-12-04 11:34:20.000000000","message":"Cant actually change it certain hyperswap require such sort of naming convention in code and UT","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36003,"name":"Amar Rajeev","display_name":"amar_rajeev","email":"Amar.Rajeev.Singuluri1@partner.ibm.com","username":"amar_rajeev"},"change_message_id":"2f5b57428dec36c5abb30f7c1d0a9413a9e4e0c1","unresolved":true,"context_lines":[{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"}],"source_content_type":"text/x-python","patch_set":73,"id":"57cba3bd_b56dd8c5","line":1023,"range":{"start_line":1023,"start_character":0,"end_line":1023,"end_character":66},"updated":"2025-11-24 06:36:16.000000000","message":"if you convert params from a flat list -\u003e to a dict, the logic around param_keys goes away completely\n\nReference: check \"def create_snapshot\"","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], vdisk_type\u003dNone):"},{"line_number":1022,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"}],"source_content_type":"text/x-python","patch_set":73,"id":"ddab4ab8_f021ea8d","line":1023,"range":{"start_line":1023,"start_character":0,"end_line":1023,"end_character":66},"in_reply_to":"57cba3bd_b56dd8c5","updated":"2025-12-04 11:34:20.000000000","message":"Param keys are only used to get some temp values we then extend these values into list so its fine.","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"f037c0b8103349caaf26ed9c56c7bdccfa9b743b","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"},{"line_number":1027,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, \u0027clone\u0027])"},{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"}],"source_content_type":"text/x-python","patch_set":73,"id":"9e71dabf_df0f374b","line":1026,"range":{"start_line":1026,"start_character":12,"end_line":1026,"end_character":41},"updated":"2025-11-19 11:00:07.000000000","message":"You are checking -type in param_keys but it is never defined in the calling functions.","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1024,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1025,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"},{"line_number":1027,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, \u0027clone\u0027])"},{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"}],"source_content_type":"text/x-python","patch_set":73,"id":"ab77a41e_1e4b4f81","line":1026,"range":{"start_line":1026,"start_character":12,"end_line":1026,"end_character":41},"in_reply_to":"9e71dabf_df0f374b","updated":"2025-12-04 11:34:20.000000000","message":"yes it feches values from here only calling function gives params like snapshotid and sourcevolid name logs illustrate it.","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"f037c0b8103349caaf26ed9c56c7bdccfa9b743b","unresolved":true,"context_lines":[{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"},{"line_number":1027,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, \u0027clone\u0027])"},{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1032,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"}],"source_content_type":"text/x-python","patch_set":73,"id":"2d421423_19a35c2d","line":1029,"range":{"start_line":1029,"start_character":16,"end_line":1029,"end_character":53},"updated":"2025-11-19 11:00:07.000000000","message":"Even when the calling function passes vdisk_type, this line will never run because it checks for type in param keys\n\nthe name \u0027vdisk_type\u0027 is confusing, use \u0027clone_type\u0027.","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"            if \u0027-type\u0027 not in param_keys:"},{"line_number":1027,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, \u0027clone\u0027])"},{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1032,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"}],"source_content_type":"text/x-python","patch_set":73,"id":"b9ffd4a1_f309a122","line":1029,"range":{"start_line":1029,"start_character":16,"end_line":1029,"end_character":53},"in_reply_to":"2d421423_19a35c2d","updated":"2025-12-04 11:34:20.000000000","message":"Done","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36003,"name":"Amar Rajeev","display_name":"amar_rajeev","email":"Amar.Rajeev.Singuluri1@partner.ibm.com","username":"amar_rajeev"},"change_message_id":"2f5b57428dec36c5abb30f7c1d0a9413a9e4e0c1","unresolved":true,"context_lines":[{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1032,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"},{"line_number":1033,"context_line":"        ssh_cmd.extend(params)"},{"line_number":1034,"context_line":"        LOG.info(ssh_cmd)"}],"source_content_type":"text/x-python","patch_set":73,"id":"6dec8c3a_84f196c6","line":1031,"range":{"start_line":1031,"start_character":13,"end_line":1031,"end_character":29},"updated":"2025-11-24 06:36:16.000000000","message":"If cloning from a snapshot or a source volume\n--\u003e size must not be specified.\nNeed to include check for \u0027fromsnapshotid\u0027 as well","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"ae8de68e368e9d7e526db9330bbf58f58364a1ab","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"            else:"},{"line_number":1029,"context_line":"                ssh_cmd.extend([\u0027-type\u0027, vdisk_type])"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1032,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"},{"line_number":1033,"context_line":"        ssh_cmd.extend(params)"},{"line_number":1034,"context_line":"        LOG.info(ssh_cmd)"}],"source_content_type":"text/x-python","patch_set":73,"id":"21ce3ef4_bd085181","line":1031,"range":{"start_line":1031,"start_character":13,"end_line":1031,"end_character":29},"in_reply_to":"6dec8c3a_84f196c6","updated":"2025-12-04 11:34:20.000000000","message":"This logic is written for normal mkvolume creation which is a fresh new volume which does not require -sourcevolid parameter as this parameter is always used in case of clone. And size is required parameter for creating normal volume","commit_id":"5d786edb4aae1f7c67aa28626b085111fc17d313"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"08e296b4e3ff30d8464e615aca469a46614c6675","unresolved":true,"context_lines":[{"line_number":4840,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4841,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":83,"id":"935ee502_37ceea57","line":4843,"range":{"start_line":4843,"start_character":16,"end_line":4843,"end_character":17},"updated":"2026-01-27 13:02:54.000000000","message":"FlashSystem CLI is designed to have both snapshot_id and source_volume in \"mkvolume\" command while creating the clone.\n\nThis code is producing the error: CMMVC5731E [-fromsnapshotid] can only be entered when [-fromsourcevolume] has been entered.\n\nFor reference: https://www.ibm.com/docs/en/flashsystem-7x00/9.1.1?topic\u003dcommands-mkvolume","commit_id":"0942d6951f0182226e04bb497e0ddc0390bf4bba"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"b6e893113af468421e6e56031215f7cb88f18591","unresolved":false,"context_lines":[{"line_number":4840,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4841,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":83,"id":"1492ba32_bca7900e","line":4843,"range":{"start_line":4843,"start_character":16,"end_line":4843,"end_character":17},"in_reply_to":"935ee502_37ceea57","updated":"2026-01-28 10:39:17.000000000","message":"Done","commit_id":"0942d6951f0182226e04bb497e0ddc0390bf4bba"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":1009,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1010,"context_line":""},{"line_number":1011,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], clone_type\u003dNone):"},{"line_number":1012,"context_line":"        if params is None:"},{"line_number":1013,"context_line":"            params \u003d []"},{"line_number":1014,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1015,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1016,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":90,"id":"ea6826b6_9a8a98da","line":1013,"range":{"start_line":1012,"start_character":8,"end_line":1013,"end_character":23},"updated":"2026-02-05 10:09:39.000000000","message":"this is redundant, you have already assigned [] as default in signature.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":1009,"context_line":"        self.run_ssh_assert_no_output(ssh_cmd)"},{"line_number":1010,"context_line":""},{"line_number":1011,"context_line":"    def mkvolume(self, name, size, units, pool, params\u003d[], clone_type\u003dNone):"},{"line_number":1012,"context_line":"        if params is None:"},{"line_number":1013,"context_line":"            params \u003d []"},{"line_number":1014,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1015,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1016,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"}],"source_content_type":"text/x-python","patch_set":90,"id":"2fb43a0a_cafce37c","line":1013,"range":{"start_line":1012,"start_character":8,"end_line":1013,"end_character":23},"in_reply_to":"ea6826b6_9a8a98da","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":1012,"context_line":"        if params is None:"},{"line_number":1013,"context_line":"            params \u003d []"},{"line_number":1014,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1015,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1016,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1017,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1018,"context_line":"            if not clone_type:"}],"source_content_type":"text/x-python","patch_set":90,"id":"38db6e6f_55d0bb70","line":1015,"range":{"start_line":1015,"start_character":8,"end_line":1015,"end_character":66},"updated":"2026-02-05 10:09:39.000000000","message":"Extracting keys is not needed to check for particular parameter. Moreover, this logic is flawed and is making creation of thin provisioned clones to fail.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"0e58e3fffc4247f9fbb634a0d8c295bfe4f32501","unresolved":false,"context_lines":[{"line_number":1012,"context_line":"        if params is None:"},{"line_number":1013,"context_line":"            params \u003d []"},{"line_number":1014,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1015,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1016,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1017,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1018,"context_line":"            if not clone_type:"}],"source_content_type":"text/x-python","patch_set":90,"id":"d4248c93_ccba6766","line":1015,"range":{"start_line":1015,"start_character":8,"end_line":1015,"end_character":66},"in_reply_to":"0e0c9468_1e7c9d27","updated":"2026-02-13 10:05:36.000000000","message":"removing","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":1012,"context_line":"        if params is None:"},{"line_number":1013,"context_line":"            params \u003d []"},{"line_number":1014,"context_line":"        ssh_cmd \u003d [\u0027svctask\u0027, \u0027mkvolume\u0027, \u0027-name\u0027, name, \u0027-pool\u0027, f\u0027\"{pool}\"\u0027]"},{"line_number":1015,"context_line":"        param_keys \u003d {params[i] for i in range(0, len(params), 2)}"},{"line_number":1016,"context_line":"        if (\u0027-fromsourcevolume\u0027 in param_keys or"},{"line_number":1017,"context_line":"                \u0027-fromsnapshotid\u0027 in param_keys):"},{"line_number":1018,"context_line":"            if not clone_type:"}],"source_content_type":"text/x-python","patch_set":90,"id":"0e0c9468_1e7c9d27","line":1015,"range":{"start_line":1015,"start_character":8,"end_line":1015,"end_character":66},"in_reply_to":"38db6e6f_55d0bb70","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1024,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"},{"line_number":1025,"context_line":"        ssh_cmd.extend(params)"},{"line_number":1026,"context_line":"        LOG.info(ssh_cmd)"},{"line_number":1027,"context_line":"        return self._run_ssh(ssh_cmd)"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"    def rmvolume(self, volume, force_unmap\u003dTrue, force_delete\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":90,"id":"0270944f_6b0f12eb","line":1026,"range":{"start_line":1026,"start_character":8,"end_line":1026,"end_character":25},"updated":"2026-02-05 10:09:39.000000000","message":"This is not needed. SSH cmd are logged as part of run_ssh.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"        if \u0027-fromsourcevolume\u0027 not in param_keys:"},{"line_number":1024,"context_line":"            ssh_cmd.extend([\u0027-size\u0027, str(size), \u0027-unit\u0027, units])"},{"line_number":1025,"context_line":"        ssh_cmd.extend(params)"},{"line_number":1026,"context_line":"        LOG.info(ssh_cmd)"},{"line_number":1027,"context_line":"        return self._run_ssh(ssh_cmd)"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"    def rmvolume(self, volume, force_unmap\u003dTrue, force_delete\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":90,"id":"ff0cb46b_385024c6","line":1026,"range":{"start_line":1026,"start_character":8,"end_line":1026,"end_character":25},"in_reply_to":"0270944f_6b0f12eb","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"},{"line_number":4847,"context_line":"                size\u003dsize,"},{"line_number":4848,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4849,"context_line":"                pool\u003dpool,"},{"line_number":4850,"context_line":"                params\u003dparams,"},{"line_number":4851,"context_line":"                clone_type\u003dclone_type"},{"line_number":4852,"context_line":"            )"},{"line_number":4853,"context_line":"        else:"},{"line_number":4854,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"},{"line_number":4855,"context_line":"                                      snapshot[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"81576211_633dbd65","line":4852,"range":{"start_line":4845,"start_character":12,"end_line":4852,"end_character":13},"updated":"2026-02-05 10:09:39.000000000","message":"You cannot call mkvolume directly here with params dict only containing clone related parameters. This is overriding all other params that are passed through volume-type.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"},{"line_number":4847,"context_line":"                size\u003dsize,"},{"line_number":4848,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4849,"context_line":"                pool\u003dpool,"},{"line_number":4850,"context_line":"                params\u003dparams,"},{"line_number":4851,"context_line":"                clone_type\u003dclone_type"},{"line_number":4852,"context_line":"            )"},{"line_number":4853,"context_line":"        else:"},{"line_number":4854,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"},{"line_number":4855,"context_line":"                                      snapshot[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"9bc45c10_06c37de2","line":4852,"range":{"start_line":4845,"start_character":12,"end_line":4852,"end_character":13},"in_reply_to":"81576211_633dbd65","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"0e58e3fffc4247f9fbb634a0d8c295bfe4f32501","unresolved":false,"context_lines":[{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"},{"line_number":4847,"context_line":"                size\u003dsize,"},{"line_number":4848,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4849,"context_line":"                pool\u003dpool,"},{"line_number":4850,"context_line":"                params\u003dparams,"},{"line_number":4851,"context_line":"                clone_type\u003dclone_type"},{"line_number":4852,"context_line":"            )"},{"line_number":4853,"context_line":"        else:"},{"line_number":4854,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"},{"line_number":4855,"context_line":"                                      snapshot[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"c1f891fc_a6698301","line":4852,"range":{"start_line":4845,"start_character":12,"end_line":4852,"end_character":13},"in_reply_to":"9bc45c10_06c37de2","updated":"2026-02-13 10:05:36.000000000","message":"resolving","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"0152230ba29f3b3daf9422fab982bf2baf46492c","unresolved":false,"context_lines":[{"line_number":4842,"context_line":"            params \u003d ["},{"line_number":4843,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4844,"context_line":"            ]"},{"line_number":4845,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4846,"context_line":"                name\u003dvolume[\u0027name\u0027],"},{"line_number":4847,"context_line":"                size\u003dsize,"},{"line_number":4848,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4849,"context_line":"                pool\u003dpool,"},{"line_number":4850,"context_line":"                params\u003dparams,"},{"line_number":4851,"context_line":"                clone_type\u003dclone_type"},{"line_number":4852,"context_line":"            )"},{"line_number":4853,"context_line":"        else:"},{"line_number":4854,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"},{"line_number":4855,"context_line":"                                      snapshot[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"a0d721cc_79dbe31a","line":4852,"range":{"start_line":4845,"start_character":12,"end_line":4852,"end_character":13},"in_reply_to":"c1f891fc_a6698301","updated":"2026-02-19 12:40:00.000000000","message":"Resolved see if it works for you","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":4927,"context_line":"            provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4928,"context_line":"            timestamp \u003d int(time.time())"},{"line_number":4929,"context_line":"            snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4930,"context_line":"            volume_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":4931,"context_line":"                ctxt, src_volume.get(\u0027volume_type_id\u0027))"},{"line_number":4932,"context_line":"            extra_specs \u003d volume_type.get(\"extra_specs\", {})"},{"line_number":4933,"context_line":"            clone_type \u003d extra_specs.get(\u0027clone_type\u0027, None)"},{"line_number":4934,"context_line":""},{"line_number":4935,"context_line":"            snapshot_params \u003d {"},{"line_number":4936,"context_line":"                \u0027name\u0027: snapshot_name,"}],"source_content_type":"text/x-python","patch_set":90,"id":"4f43bf31_d51c21d9","line":4933,"range":{"start_line":4930,"start_character":12,"end_line":4933,"end_character":60},"updated":"2026-02-05 10:09:39.000000000","message":"Please verify if this actually works. In my test run, it didnt work. You should optimally get clone-type from opts, you can refer to the pbha clone volume patch to check how it can be done.","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"77df7340a61a085ea9d08df0a1ba41a54b4fe2d6","unresolved":false,"context_lines":[{"line_number":4927,"context_line":"            provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4928,"context_line":"            timestamp \u003d int(time.time())"},{"line_number":4929,"context_line":"            snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4930,"context_line":"            volume_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":4931,"context_line":"                ctxt, src_volume.get(\u0027volume_type_id\u0027))"},{"line_number":4932,"context_line":"            extra_specs \u003d volume_type.get(\"extra_specs\", {})"},{"line_number":4933,"context_line":"            clone_type \u003d extra_specs.get(\u0027clone_type\u0027, None)"},{"line_number":4934,"context_line":""},{"line_number":4935,"context_line":"            snapshot_params \u003d {"},{"line_number":4936,"context_line":"                \u0027name\u0027: snapshot_name,"}],"source_content_type":"text/x-python","patch_set":90,"id":"d5539b03_7235747e","line":4933,"range":{"start_line":4930,"start_character":12,"end_line":4933,"end_character":60},"in_reply_to":"2558eaa3_ffcb460d","updated":"2026-02-19 12:39:06.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":true,"context_lines":[{"line_number":4927,"context_line":"            provider_id \u003d src_volume.get(\u0027provider_id\u0027)"},{"line_number":4928,"context_line":"            timestamp \u003d int(time.time())"},{"line_number":4929,"context_line":"            snapshot_name \u003d f\"{src_name}_temp_{timestamp}\""},{"line_number":4930,"context_line":"            volume_type \u003d objects.VolumeType.get_by_name_or_id("},{"line_number":4931,"context_line":"                ctxt, src_volume.get(\u0027volume_type_id\u0027))"},{"line_number":4932,"context_line":"            extra_specs \u003d volume_type.get(\"extra_specs\", {})"},{"line_number":4933,"context_line":"            clone_type \u003d extra_specs.get(\u0027clone_type\u0027, None)"},{"line_number":4934,"context_line":""},{"line_number":4935,"context_line":"            snapshot_params \u003d {"},{"line_number":4936,"context_line":"                \u0027name\u0027: snapshot_name,"}],"source_content_type":"text/x-python","patch_set":90,"id":"2558eaa3_ffcb460d","line":4933,"range":{"start_line":4930,"start_character":12,"end_line":4933,"end_character":60},"in_reply_to":"4f43bf31_d51c21d9","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36800,"name":"Vrinda Dhakad","display_name":"vdhakad","email":"vrinda.dhakad@ibm.com","username":"vdhakad"},"change_message_id":"d552644672399247740b4cddaa7de957eca36b13","unresolved":true,"context_lines":[{"line_number":4946,"context_line":"                \u0027-fromsourcevolume\u0027, src_name,"},{"line_number":4947,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4948,"context_line":"            ]"},{"line_number":4949,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4950,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4951,"context_line":"                size\u003dsize,"},{"line_number":4952,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4953,"context_line":"                pool\u003dpool,"},{"line_number":4954,"context_line":"                params\u003dparams,"},{"line_number":4955,"context_line":"                clone_type\u003dclone_type"},{"line_number":4956,"context_line":"            )"},{"line_number":4957,"context_line":"        else:"},{"line_number":4958,"context_line":"            self._helpers.create_copy(src_volume[\u0027name\u0027], tgt_volume[\u0027name\u0027],"},{"line_number":4959,"context_line":"                                      src_volume[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"ce779038_95d36ffb","line":4956,"range":{"start_line":4949,"start_character":12,"end_line":4956,"end_character":13},"updated":"2026-02-05 10:09:39.000000000","message":"same as my previous comment, params are being overriden","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"af6728d167d8bdd9c0837ddcb69e294f55124166","unresolved":false,"context_lines":[{"line_number":4946,"context_line":"                \u0027-fromsourcevolume\u0027, src_name,"},{"line_number":4947,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4948,"context_line":"            ]"},{"line_number":4949,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4950,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4951,"context_line":"                size\u003dsize,"},{"line_number":4952,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4953,"context_line":"                pool\u003dpool,"},{"line_number":4954,"context_line":"                params\u003dparams,"},{"line_number":4955,"context_line":"                clone_type\u003dclone_type"},{"line_number":4956,"context_line":"            )"},{"line_number":4957,"context_line":"        else:"},{"line_number":4958,"context_line":"            self._helpers.create_copy(src_volume[\u0027name\u0027], tgt_volume[\u0027name\u0027],"},{"line_number":4959,"context_line":"                                      src_volume[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"dde5b6ad_7f4f4161","line":4956,"range":{"start_line":4949,"start_character":12,"end_line":4956,"end_character":13},"in_reply_to":"ce779038_95d36ffb","updated":"2026-02-13 08:08:24.000000000","message":"Done","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"0e58e3fffc4247f9fbb634a0d8c295bfe4f32501","unresolved":false,"context_lines":[{"line_number":4946,"context_line":"                \u0027-fromsourcevolume\u0027, src_name,"},{"line_number":4947,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4948,"context_line":"            ]"},{"line_number":4949,"context_line":"            self._helpers.ssh.mkvolume("},{"line_number":4950,"context_line":"                name\u003dtgt_volume[\u0027name\u0027],"},{"line_number":4951,"context_line":"                size\u003dsize,"},{"line_number":4952,"context_line":"                units\u003d\u0027gb\u0027,"},{"line_number":4953,"context_line":"                pool\u003dpool,"},{"line_number":4954,"context_line":"                params\u003dparams,"},{"line_number":4955,"context_line":"                clone_type\u003dclone_type"},{"line_number":4956,"context_line":"            )"},{"line_number":4957,"context_line":"        else:"},{"line_number":4958,"context_line":"            self._helpers.create_copy(src_volume[\u0027name\u0027], tgt_volume[\u0027name\u0027],"},{"line_number":4959,"context_line":"                                      src_volume[\u0027id\u0027], self.configuration,"}],"source_content_type":"text/x-python","patch_set":90,"id":"2016b0d2_0768d2f4","line":4956,"range":{"start_line":4949,"start_character":12,"end_line":4956,"end_character":13},"in_reply_to":"dde5b6ad_7f4f4161","updated":"2026-02-13 10:05:36.000000000","message":"resolving","commit_id":"28d21e5836a2d8e41ba43815bccbdbb071b0cb61"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"f6825df7f5f636317f47c6ee1254959d0ce7fd6f","unresolved":true,"context_lines":[{"line_number":4838,"context_line":"            clone_type_val \u003d extra_specs.get(\u0027capabilities:clone_type\u0027, None)"},{"line_number":4839,"context_line":"            LOG.info(f\u0027clone_type_val : {clone_type_val}\u0027)"},{"line_number":4840,"context_line":"            if clone_type_val:"},{"line_number":4841,"context_line":"                clone_type \u003d clone_type_val.split(\u0027 \u0027)[1]"},{"line_number":4842,"context_line":"            else:"},{"line_number":4843,"context_line":"                clone_type \u003d None"},{"line_number":4844,"context_line":"            LOG.info(f\u0027clone_type : {clone_type}\u0027)"}],"source_content_type":"text/x-python","patch_set":98,"id":"651144c9_e9c1b612","line":4841,"updated":"2026-03-06 17:59:33.000000000","message":"your assumption of clone_type comes with empty string may go wrong and index 1 may result in IndexError","commit_id":"752ba7187d5fe691e9c6d5f0453105e2f5fd1b9a"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"dde6a582b04bf8b1f93d7f723408993bcf3792ed","unresolved":false,"context_lines":[{"line_number":4838,"context_line":"            clone_type_val \u003d extra_specs.get(\u0027capabilities:clone_type\u0027, None)"},{"line_number":4839,"context_line":"            LOG.info(f\u0027clone_type_val : {clone_type_val}\u0027)"},{"line_number":4840,"context_line":"            if clone_type_val:"},{"line_number":4841,"context_line":"                clone_type \u003d clone_type_val.split(\u0027 \u0027)[1]"},{"line_number":4842,"context_line":"            else:"},{"line_number":4843,"context_line":"                clone_type \u003d None"},{"line_number":4844,"context_line":"            LOG.info(f\u0027clone_type : {clone_type}\u0027)"}],"source_content_type":"text/x-python","patch_set":98,"id":"87b807f2_86a7e3e1","line":4841,"in_reply_to":"651144c9_e9c1b612","updated":"2026-03-12 05:48:40.000000000","message":"Done","commit_id":"752ba7187d5fe691e9c6d5f0453105e2f5fd1b9a"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"f6825df7f5f636317f47c6ee1254959d0ce7fd6f","unresolved":true,"context_lines":[{"line_number":4844,"context_line":"            LOG.info(f\u0027clone_type : {clone_type}\u0027)"},{"line_number":4845,"context_line":""},{"line_number":4846,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4847,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4848,"context_line":"            params \u003d ["},{"line_number":4849,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4850,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"}],"source_content_type":"text/x-python","patch_set":98,"id":"164f318d_5dedf032","line":4847,"updated":"2026-03-06 17:59:33.000000000","message":"snapshot_id can be none in case of {}. same is passed directly to fromsnapshotid","commit_id":"752ba7187d5fe691e9c6d5f0453105e2f5fd1b9a"},{"author":{"_account_id":37328,"name":"Nimesh Desai","display_name":"Nimesh Desai","email":"nimesh.desai@ibm.com","username":"nimeshdesai"},"change_message_id":"dde6a582b04bf8b1f93d7f723408993bcf3792ed","unresolved":false,"context_lines":[{"line_number":4844,"context_line":"            LOG.info(f\u0027clone_type : {clone_type}\u0027)"},{"line_number":4845,"context_line":""},{"line_number":4846,"context_line":"            snapshot_metadata \u003d snapshot.get(\u0027metadata\u0027, {})"},{"line_number":4847,"context_line":"            snapshot_id \u003d snapshot_metadata.get(\u0027svc_volume_snapshot_id\u0027)"},{"line_number":4848,"context_line":"            params \u003d ["},{"line_number":4849,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4850,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"}],"source_content_type":"text/x-python","patch_set":98,"id":"bdf517f9_e6c61bff","line":4847,"in_reply_to":"164f318d_5dedf032","updated":"2026-03-12 05:48:40.000000000","message":"In case of non-existent snapshot, there error is handled at api level.\nFor snapshots created with migrate_from_flashcopy enabled, \u0027svc_volume_snapshot_id\u0027 property will always be there.","commit_id":"752ba7187d5fe691e9c6d5f0453105e2f5fd1b9a"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"bb74f670f4aa1ba8984b19213425b26e7dbec4ce","unresolved":true,"context_lines":[{"line_number":4948,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4949,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4950,"context_line":"            ]"},{"line_number":4951,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027], size,"},{"line_number":4952,"context_line":"                                                  \u0027gb\u0027, pool, opts, clone_params)"},{"line_number":4953,"context_line":"        else:"},{"line_number":4954,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":101,"id":"97d4d2d5_5bebecc2","line":4951,"updated":"2026-03-31 09:37:04.000000000","message":"No error handling / cleanup if create_hyperswap_volume fails","commit_id":"303f394561b35e105420571197faba393bb3e60b"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1ad3f026a453854d26ad67343d80c4783e48b911","unresolved":true,"context_lines":[{"line_number":4948,"context_line":"                \u0027-fromsourcevolume\u0027, src_volume_name,"},{"line_number":4949,"context_line":"                \u0027-fromsnapshotid\u0027, snapshot_id"},{"line_number":4950,"context_line":"            ]"},{"line_number":4951,"context_line":"            self._helpers.create_hyperswap_volume(volume[\u0027name\u0027], size,"},{"line_number":4952,"context_line":"                                                  \u0027gb\u0027, pool, opts, clone_params)"},{"line_number":4953,"context_line":"        else:"},{"line_number":4954,"context_line":"            self._helpers.create_copy(snapshot[\u0027name\u0027], volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":101,"id":"39eafceb_c97355c6","line":4951,"in_reply_to":"97d4d2d5_5bebecc2","updated":"2026-04-18 09:10:30.000000000","message":"Hi @jayaanand.borra@netapp.com\nlet me check fot the same.","commit_id":"303f394561b35e105420571197faba393bb3e60b"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"bb74f670f4aa1ba8984b19213425b26e7dbec4ce","unresolved":true,"context_lines":[{"line_number":5036,"context_line":""},{"line_number":5037,"context_line":"            snapshot_params \u003d {"},{"line_number":5038,"context_line":"                \u0027name\u0027: snapshot_name,"},{"line_number":5039,"context_line":"                \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":5040,"context_line":"                \u0027volume\u0027: str(src_name),"},{"line_number":5041,"context_line":"                \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":5042,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":101,"id":"9da163f6_954eb167","line":5039,"updated":"2026-03-31 09:37:04.000000000","message":"provider_id on a Cinder volume is typically a UUID and src_name is string you are going to have mix of UUIDs and names. is this fine?","commit_id":"303f394561b35e105420571197faba393bb3e60b"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"1ad3f026a453854d26ad67343d80c4783e48b911","unresolved":true,"context_lines":[{"line_number":5036,"context_line":""},{"line_number":5037,"context_line":"            snapshot_params \u003d {"},{"line_number":5038,"context_line":"                \u0027name\u0027: snapshot_name,"},{"line_number":5039,"context_line":"                \u0027list_of_volumes\u0027: str(provider_id or src_name),"},{"line_number":5040,"context_line":"                \u0027volume\u0027: str(src_name),"},{"line_number":5041,"context_line":"                \u0027retentionminutes\u0027: \u00275\u0027"},{"line_number":5042,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":101,"id":"a5c56816_558f1023","line":5039,"in_reply_to":"9da163f6_954eb167","updated":"2026-04-18 09:10:30.000000000","message":"yes its fine","commit_id":"303f394561b35e105420571197faba393bb3e60b"}],"releasenotes/notes/clone-volume-flashcopy2.0-ad648d6901d93e5c.yaml":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"de15a2757300a37f12d24e0c2d62a1112788569f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    IBM Storage Virtualize Family driver: Added support for clone single"},{"line_number":4,"context_line":"      volume using flashcopy2.0"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"d1199d61_9c80cef4","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":6},"updated":"2025-09-03 18:26:19.000000000","message":"remove the two extra spaces","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"874d723c18745abf38403ca4e29dd690519f5236","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    IBM Storage Virtualize Family driver: Added support for clone single"},{"line_number":4,"context_line":"      volume using flashcopy2.0"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"8202b316_97f0a8c4","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":6},"in_reply_to":"d1199d61_9c80cef4","updated":"2025-09-04 17:43:34.000000000","message":"Done","commit_id":"ce402df10789973916bbf855546bf9e857d6a2c6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7aba21bba06ba00de857e4bd2c56f2ad46dc8a84","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    IBM Storage Virtualize Family driver: Added support for clone single"},{"line_number":4,"context_line":"      volume using flashcopy2.0"}],"source_content_type":"text/x-yaml","patch_set":54,"id":"a726c7d6_23dc2379","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":6},"updated":"2025-09-08 20:56:47.000000000","message":"this extra whitespace space is still not removed\neven if you see the releasenotes job, it is not rendering as desired.\nhttps://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_308/openstack/308938aa619e48858779ff8100e541a3/docs/unreleased.html","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"},{"author":{"_account_id":37470,"name":"Dakshina Purohit","display_name":"Dakshina","email":"Dakshina.Purohit@ibm.com","username":"dakshina"},"change_message_id":"593a5aeb840c6e294e127c02539f8f0ee78277af","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    IBM Storage Virtualize Family driver: Added support for clone single"},{"line_number":4,"context_line":"      volume using flashcopy2.0"}],"source_content_type":"text/x-yaml","patch_set":54,"id":"b9e04859_1fcda9b1","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":6},"in_reply_to":"a726c7d6_23dc2379","updated":"2025-09-09 09:49:17.000000000","message":"Done","commit_id":"9274b73c2e2d20c1c8cdb0ad304e4905c7e36bfc"}]}
