)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"5784895646cac2a047b6e5dcc204d47793fa31cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"eb30a091_a4118dd0","updated":"2025-05-22 18:55:42.000000000","message":"I think there is a duplicate.","commit_id":"90f8abd7ed36029dac6e205ca3a252c56ef19c06"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"97fa91497e10db8e21f80d1e81a726b18fddb091","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"08d83e8e_63bb090b","updated":"2025-05-22 08:16:13.000000000","message":"run-DellEMC PowerFlex CI","commit_id":"90f8abd7ed36029dac6e205ca3a252c56ef19c06"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"f7f0b7bae7f8b787c2db9b7c56495f1a6403ede6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"34bc11ba_aeba0337","updated":"2025-05-22 07:39:03.000000000","message":"run-DellEMC PowerFlex CI","commit_id":"90f8abd7ed36029dac6e205ca3a252c56ef19c06"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"5ace5db3fb3009ba1f9c3554bf6ceace5e53fcb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c6590d38_685d8d3d","updated":"2025-05-22 05:43:09.000000000","message":"run-DellEMC PowerFlex CI","commit_id":"90f8abd7ed36029dac6e205ca3a252c56ef19c06"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1f501d11_3f48c153","updated":"2025-11-23 04:25:08.000000000","message":"Also this may need a release note.","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"fb984fad8df0514120e15826716e24fc2daf934a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"723b642d_30ad685f","in_reply_to":"1f501d11_3f48c153","updated":"2026-01-29 20:27:15.000000000","message":"Done","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"31cbc99c5c6c2c61921f88bfc551bd2204f94e00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"951b3797_76bbe028","updated":"2026-02-01 19:48:37.000000000","message":"@rosmaita.fossdev@gmail.com @rajatdhasmana@gmail.com\nCould you please help in reviewing this patch.\nThank you","commit_id":"9e19ff20d5fc2baf29621b17c422697d4943d5c6"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"52d22ecd03b92b639e1fbcae17a7611524e29968","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"9cf2cf6c_2275932d","updated":"2026-02-23 07:54:10.000000000","message":"@rosmaita.fossdev@gmail.com @kajinamit@oss.nttdata.com @rajatdhasmana@gmail.com Could you please help in reviewing this patch ?","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"cf74262e634c8d4aa254596c80f9f6e6df1e8db4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"bd735639_117e6a48","updated":"2026-02-19 10:09:21.000000000","message":"recheck","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"90b3ae1cd15ce201996db47ee8f44d9d2777a887","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"e1bca066_a7290742","updated":"2026-02-19 21:32:21.000000000","message":"recheck","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"d3c9cda2e78a94f50374896003fd338c64c86ceb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"15525739_3f786a0f","updated":"2026-02-27 10:18:35.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"40fe25750e46986f468667b3298db6d02c7f17d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"f62e5d36_33e1783f","updated":"2026-02-27 07:27:58.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"61a2b032aca0cea23983f12245f42507f8cd08a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"982158e5_39c49994","updated":"2026-03-04 16:12:20.000000000","message":"recheck","commit_id":"a8e2ac4be3a630134d911975bd79e4190cca8265"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b9d3b6d1_022df2f0","updated":"2026-03-11 21:04:10.000000000","message":"Most of my comments are just digging to see if there\u0027s a better way to perform certain operations, etc.  They can be ignored/deferred if you want, and I won\u0027t ding you for them (I know everyone is trying to get merged).\n\nThe -1 is for these reasons:\n1. driver.py #227: I think the name of the method called is poor given where it\u0027s executed and what it does, and should likely be renamed. \n2. driver.py #959: Just want confirmation that the scope change was intended, or it reverted back.  It does look intentional to me.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"f4ff0f85fb2ba41c0f61f12d506ceada1c450440","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"95072e4c_c09e60b5","updated":"2026-03-10 09:42:29.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"48e5c8f92ec07f1f060866c90cf8892dbc67303d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"d562460d_206e4bfa","updated":"2026-03-09 18:48:05.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"00cb4fa4_bcf087e6","in_reply_to":"b9d3b6d1_022df2f0","updated":"2026-03-12 14:13:38.000000000","message":"1. Addressed the review comment for line #227 in driver.py\n2. It is intentional. It should be inside the block.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"e1b39d20172615c19aab978fa77b6b3eebf51b11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"075cb89c_456e34ec","updated":"2026-03-13 07:30:34.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"1cee86e4b478a0b95904114f3f7d9868d26bacdc"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"ae483862f1a01eb421a7b7803a140b71333d1087","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"2645729e_e13d1902","updated":"2026-03-13 13:03:03.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"1cee86e4b478a0b95904114f3f7d9868d26bacdc"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"6c47544f363dc980f280e4a2edc142bf94f94e8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"ba39fe05_3deada66","updated":"2026-03-13 06:55:45.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"1cee86e4b478a0b95904114f3f7d9868d26bacdc"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"1fbc8bbcb53771bb67a7007e35a8dc2458b83969","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"fb5b1e13_022e9918","updated":"2026-03-13 12:05:41.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"1cee86e4b478a0b95904114f3f7d9868d26bacdc"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"0dbad2145c3705f5081527c0e6d8e8f4e5933f1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"cbda1fce_32ce76f6","updated":"2026-03-13 18:03:53.000000000","message":"It looks like all my concerns (and even nitpicks) were addressed.\n\nLGTM, +1.","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"8d03fbe5b521125ad1f6c6eefdf0c5dc7c0b5294","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"da0210df_93258326","updated":"2026-03-13 17:25:44.000000000","message":"recheck","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"9437d14fd2df8931092f91f8135df33dacc33ad4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"3a5a182f_a1582da2","updated":"2026-03-13 19:00:45.000000000","message":"recheck devstack-plugin-nfs-tempest-full timed out","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"43f80703e591ad1e2e2d8d3f2234b4a9c6874e4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"0782219d_65403fdd","updated":"2026-03-31 08:38:29.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"5e9ad8ea86c092eeed16df51cc8069440d400932","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"08045e54_6d933d4d","updated":"2026-03-18 05:54:50.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"111c76b13ac565b0bdf60aba8ecfaaa73f5992c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"41b58745_c07d607f","updated":"2026-03-13 13:37:31.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"bb61f5fbc76a5dd9c5d94deed204bdd55b3bb48a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"ebe75c66_9491913b","updated":"2026-03-13 14:34:24.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"b458fbdc0333de7ef7df86010e279dc680caa0ca"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"67edc970f4457d7f28efb04161665ffbd09dcebf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"938594aa_1f84186e","updated":"2026-04-13 08:23:39.000000000","message":"recheck devstack-plugin-nfs-tempest-full failure","commit_id":"ed3d1b21f25f62c4ce5c87fa11b3cc947062dc13"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"ac902f1b57732ee4a8bf0b9dfdbbd75a132b91b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"4586ded6_297c8eb2","updated":"2026-04-23 10:42:11.000000000","message":"run-DellEMC PowerFlex-v4 CI","commit_id":"ed3d1b21f25f62c4ce5c87fa11b3cc947062dc13"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"31d3af104357c837754cc74db007a885530eb7e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"66c71308_47c52206","updated":"2026-04-23 10:34:53.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"ed3d1b21f25f62c4ce5c87fa11b3cc947062dc13"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"91dfaf9870355e3b62e449d83022b6d2dcf7d766","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"81277ad8_521dcaaf","updated":"2026-04-23 10:37:08.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"ed3d1b21f25f62c4ce5c87fa11b3cc947062dc13"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"80f523dfc9f011146ea03afa5ace2b72849bb3e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"f58decad_9fa28a4e","updated":"2026-04-10 06:07:10.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"ed3d1b21f25f62c4ce5c87fa11b3cc947062dc13"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"ded134cdda5b44ee50f93c05bbf7a601a0801739","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"4fbc02f1_90c01a2a","updated":"2026-04-23 15:10:55.000000000","message":"recheck","commit_id":"40d7281bb52cd4766f20890eaa2d15d1c232b0db"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"2dd5f2ec74c4c2fa2a4167f451e02c560f2fdcaf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"6ebe2a89_ff7476f3","updated":"2026-04-30 12:49:42.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"40d7281bb52cd4766f20890eaa2d15d1c232b0db"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"34a302247eb65e679c686b68b8fac7bf84757f49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"79eac74e_19b3159a","updated":"2026-04-24 11:41:43.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"40d7281bb52cd4766f20890eaa2d15d1c232b0db"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"346ae47dd8c7890f66f739913b47c631f80ab939","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"8f8575d1_12496119","updated":"2026-04-23 12:02:20.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"40d7281bb52cd4766f20890eaa2d15d1c232b0db"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"5db34c92dabb1e24fcc398bc08e84c5ca41cf581","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"adda8160_7b304988","updated":"2026-04-24 07:31:48.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"40d7281bb52cd4766f20890eaa2d15d1c232b0db"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"eb5cfae6e33864c2aae0d9b67fb88db52a3932db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"8e3482ec_d129589e","updated":"2026-05-13 13:15:50.000000000","message":"recheck\n\ntempest-integrated-storage timed out","commit_id":"79b9a24c7ba5c6469573f54307fe2dd75b27dd74"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"353bf851d056a832aebd769e6368609069f61c11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"617740e0_2ecd095f","updated":"2026-05-12 06:44:35.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"79b9a24c7ba5c6469573f54307fe2dd75b27dd74"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"3a040c6ea4e9b839735adf65d10ad0be96827457","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"cb492f31_d449c6df","updated":"2026-05-12 13:38:10.000000000","message":"run-DellEMC PowerFlex-v5 CI","commit_id":"79b9a24c7ba5c6469573f54307fe2dd75b27dd74"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"674d84439e969ba5cd9d36f3128ccdbcf641218d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"c51cf62f_484c6c2c","updated":"2026-05-15 05:46:07.000000000","message":"recheck","commit_id":"8d3fce2ad3e648e55c7e1de0edd00dd3b55310a3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d57bd161b6a528c0f9a6efce32b7ebba977a9fe0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e597caaf_1ea59109","updated":"2026-05-14 17:19:29.000000000","message":"recheck\n\ntempest-integrated-storage","commit_id":"8d3fce2ad3e648e55c7e1de0edd00dd3b55310a3"}],"cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_powerflex_client.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        result \u003d self.client.get_powerflex_gen_type(domain_name)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        assert result \u003d\u003d \"GEN3\""},{"line_number":404,"context_line":"        mock_get_domain_id.assert_called_once_with(domain_name)"},{"line_number":405,"context_line":"        mock_post.assert_called_once_with("},{"line_number":406,"context_line":"            \"/types/ProtectionDomain/instances/action/queryBySelectedIds\","}],"source_content_type":"text/x-python","patch_set":21,"id":"c88255b9_5adb82d4","line":403,"updated":"2026-03-11 21:04:10.000000000","message":"I\u0027m not going to mark them all, but I wonder if you should be using self.assertEqual() instead of just a raw assert.\n\nIf google isn\u0027t lying, self.assertEqual() (and friends) should provide better information if it triggers.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        result \u003d self.client.get_powerflex_gen_type(domain_name)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        assert result \u003d\u003d \"GEN3\""},{"line_number":404,"context_line":"        mock_get_domain_id.assert_called_once_with(domain_name)"},{"line_number":405,"context_line":"        mock_post.assert_called_once_with("},{"line_number":406,"context_line":"            \"/types/ProtectionDomain/instances/action/queryBySelectedIds\","}],"source_content_type":"text/x-python","patch_set":21,"id":"67b8d56d_815b2efa","line":403,"in_reply_to":"c88255b9_5adb82d4","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":431,"context_line":"        mock_get_domain_id.assert_called_once_with(domain_name)"},{"line_number":432,"context_line":"        mock_post.assert_called_once()"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    def test_check_powerflex_ec_version_true(self):"},{"line_number":435,"context_line":"        self.client.powerflex_gen_type \u003d \"EC\""},{"line_number":436,"context_line":"        assert self.client.check_powerflex_ec_version() is True"},{"line_number":437,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"21f6eecc_2a285c4f","line":434,"updated":"2026-03-11 21:04:10.000000000","message":"Not necessary, but maybe consider using ddt to merge all four of these into a single test (you could also test all cases of \"EC\" with that as well).","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        mock_get_domain_id.assert_called_once_with(domain_name)"},{"line_number":432,"context_line":"        mock_post.assert_called_once()"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    def test_check_powerflex_ec_version_true(self):"},{"line_number":435,"context_line":"        self.client.powerflex_gen_type \u003d \"EC\""},{"line_number":436,"context_line":"        assert self.client.check_powerflex_ec_version() is True"},{"line_number":437,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"d8a4f670_c9441587","line":434,"in_reply_to":"21f6eecc_2a285c4f","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"}],"cinder/volume/drivers/dell_emc/powerflex/driver.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"}],"source_content_type":"text/x-python","patch_set":11,"id":"60dbbae4_f3ced32d","line":213,"range":{"start_line":213,"start_character":23,"end_line":213,"end_character":65},"updated":"2025-11-23 04:25:08.000000000","message":"I don\u0027t see any code path which can possible cause this and this looks quite reudndant.","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"}],"source_content_type":"text/x-python","patch_set":11,"id":"e3a7a130_95f8d6f7","line":213,"range":{"start_line":213,"start_character":23,"end_line":213,"end_character":65},"in_reply_to":"60dbbae4_f3ced32d","updated":"2026-01-29 20:26:35.000000000","message":"Acknowledged","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""}],"source_content_type":"text/x-python","patch_set":11,"id":"8b38d8a1_dd16e865","line":214,"range":{"start_line":214,"start_character":16,"end_line":214,"end_character":73},"updated":"2025-11-23 04:25:08.000000000","message":"The same is checked in https://review.opendev.org/c/openstack/cinder/+/950546/11/cinder/volume/drivers/dell_emc/powerflex/driver.py#233 . IMO we should put this new code block AFTER that check and drop this.","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""}],"source_content_type":"text/x-python","patch_set":11,"id":"8467816b_9e1c3fe8","line":214,"range":{"start_line":214,"start_character":16,"end_line":214,"end_character":73},"in_reply_to":"8b38d8a1_dd16e865","updated":"2026-01-29 20:26:35.000000000","message":"Acknowledged","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a064696_a00276c0","line":216,"range":{"start_line":216,"start_character":15,"end_line":216,"end_character":29},"updated":"2025-11-23 04:25:08.000000000","message":"This can\u0027t happen due to the nature of split.","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"33c9ade0_06fffcd4","line":216,"range":{"start_line":216,"start_character":15,"end_line":216,"end_character":29},"in_reply_to":"9a064696_a00276c0","updated":"2026-01-29 20:26:35.000000000","message":"Acknowledged","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"},{"line_number":220,"context_line":"            client.get_powerflex_gen_type(domain_name)"},{"line_number":221,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":11,"id":"c104e306_23b81cac","line":218,"range":{"start_line":217,"start_character":16,"end_line":218,"end_character":65},"updated":"2025-11-23 04:25:08.000000000","message":"The same is checked in https://review.opendev.org/c/openstack/cinder/+/950546/11/cinder/volume/drivers/dell_emc/powerflex/driver.py#238 .","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"},{"line_number":220,"context_line":"            client.get_powerflex_gen_type(domain_name)"},{"line_number":221,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":11,"id":"b557bf40_46929b08","line":218,"range":{"start_line":217,"start_character":16,"end_line":218,"end_character":65},"in_reply_to":"c104e306_23b81cac","updated":"2026-01-29 20:26:35.000000000","message":"Acknowledged","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":209,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"},{"line_number":220,"context_line":"            client.get_powerflex_gen_type(domain_name)"},{"line_number":221,"context_line":"        except Exception:"},{"line_number":222,"context_line":"            # You can log the error or handle it as needed"}],"source_content_type":"text/x-python","patch_set":11,"id":"61b32dab_026f8eb5","line":219,"range":{"start_line":212,"start_character":0,"end_line":219,"end_character":34},"updated":"2025-11-23 04:25:08.000000000","message":"You can move these lines out of try-except. It removes redundant \u0027raise ValueError and catch it\u0027","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        try:"},{"line_number":212,"context_line":"            if (not self.storage_pools"},{"line_number":213,"context_line":"                    or not isinstance(self.storage_pools[0], str)):"},{"line_number":214,"context_line":"                raise ValueError(\"storage_pools is in incorrect format.\")"},{"line_number":215,"context_line":"            parts \u003d str(self.storage_pools[0]).split(\":\")"},{"line_number":216,"context_line":"            if len(parts) \u003c 1 or not parts[0]:"},{"line_number":217,"context_line":"                raise ValueError(\"Invalid format storage_pools[0], \u0027:\u0027 not \""},{"line_number":218,"context_line":"                                 \"found or domain name missing.\")"},{"line_number":219,"context_line":"            domain_name \u003d parts[0]"},{"line_number":220,"context_line":"            client.get_powerflex_gen_type(domain_name)"},{"line_number":221,"context_line":"        except Exception:"},{"line_number":222,"context_line":"            # You can log the error or handle it as needed"}],"source_content_type":"text/x-python","patch_set":11,"id":"db1b145c_ecac452c","line":219,"range":{"start_line":212,"start_character":0,"end_line":219,"end_character":34},"in_reply_to":"61b32dab_026f8eb5","updated":"2026-01-29 20:26:35.000000000","message":"Done","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6c2918cb1eb8a04970b56e8802dc98775c5aa668","unresolved":true,"context_lines":[{"line_number":221,"context_line":"        except Exception:"},{"line_number":222,"context_line":"            # You can log the error or handle it as needed"},{"line_number":223,"context_line":"            msg \u003d (_(\"Error occurred while getting PowerFlex gen type\"))"},{"line_number":224,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        # validate that version of PowerFlex is supported"},{"line_number":227,"context_line":"        if not flex_utils.version_gte(client.query_rest_api_version(), \"2.0\"):"}],"source_content_type":"text/x-python","patch_set":11,"id":"112e03d4_15ad52ed","line":224,"range":{"start_line":224,"start_character":28,"end_line":224,"end_character":40},"updated":"2025-11-23 04:25:08.000000000","message":"IIUC this error can be caused in server side problem, so translating it to InvalidInput is confusing. Can we just raise VolumeAPI Error ? (I mean, the exception can be raised directly).","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d15562ffbf0a7b2aba4afc4c6bf7e2f57cfbad7e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        except Exception:"},{"line_number":222,"context_line":"            # You can log the error or handle it as needed"},{"line_number":223,"context_line":"            msg \u003d (_(\"Error occurred while getting PowerFlex gen type\"))"},{"line_number":224,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        # validate that version of PowerFlex is supported"},{"line_number":227,"context_line":"        if not flex_utils.version_gte(client.query_rest_api_version(), \"2.0\"):"}],"source_content_type":"text/x-python","patch_set":11,"id":"dff5bf98_c06ff3bb","line":224,"range":{"start_line":224,"start_character":28,"end_line":224,"end_character":40},"in_reply_to":"112e03d4_15ad52ed","updated":"2026-01-29 20:26:35.000000000","message":"Acknowledged","commit_id":"a82f067bc6f1e1ae35be6e07ccce0aca70a3758e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4adb54d7cd2e817814c4c773ad200db8bf07f625","unresolved":true,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        client \u003d self._get_client()"},{"line_number":632,"context_line":"        if not client.check_powerflex_ec_version():"},{"line_number":633,"context_line":"            self._check_volume_size(volume.size)"},{"line_number":634,"context_line":"        protection_domain_name, storage_pool_name \u003d ("},{"line_number":635,"context_line":"            self._extract_domain_and_pool_from_host(volume.host)"},{"line_number":636,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":18,"id":"8b87ac61_b2080db8","line":633,"updated":"2026-02-23 21:07:14.000000000","message":"Does this mean that on some versions of powerflex, the 8GB multiples no longer apply to volume sizes?","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"d0efb7a37f59bb0ba2b7dfb0b668e8d1afe10496","unresolved":false,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        client \u003d self._get_client()"},{"line_number":632,"context_line":"        if not client.check_powerflex_ec_version():"},{"line_number":633,"context_line":"            self._check_volume_size(volume.size)"},{"line_number":634,"context_line":"        protection_domain_name, storage_pool_name \u003d ("},{"line_number":635,"context_line":"            self._extract_domain_and_pool_from_host(volume.host)"},{"line_number":636,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":18,"id":"31aabcc2_37962796","line":633,"in_reply_to":"5321c355_c4542029","updated":"2026-03-04 12:07:50.000000000","message":"Updated in release note.","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6bd801a08d316407a7078eb3b0819247ede5bd14","unresolved":true,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        client \u003d self._get_client()"},{"line_number":632,"context_line":"        if not client.check_powerflex_ec_version():"},{"line_number":633,"context_line":"            self._check_volume_size(volume.size)"},{"line_number":634,"context_line":"        protection_domain_name, storage_pool_name \u003d ("},{"line_number":635,"context_line":"            self._extract_domain_and_pool_from_host(volume.host)"},{"line_number":636,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":18,"id":"5321c355_c4542029","line":633,"in_reply_to":"74dd24d6_9aef2005","updated":"2026-03-03 17:29:24.000000000","message":"It would be good to mention this in the commit message / release note.","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"f5a28a446edda3f45a8386c2931e519980a5a53c","unresolved":true,"context_lines":[{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        client \u003d self._get_client()"},{"line_number":632,"context_line":"        if not client.check_powerflex_ec_version():"},{"line_number":633,"context_line":"            self._check_volume_size(volume.size)"},{"line_number":634,"context_line":"        protection_domain_name, storage_pool_name \u003d ("},{"line_number":635,"context_line":"            self._extract_domain_and_pool_from_host(volume.host)"},{"line_number":636,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":18,"id":"74dd24d6_9aef2005","line":633,"in_reply_to":"8b87ac61_b2080db8","updated":"2026-02-27 13:22:03.000000000","message":"PowerFlex version less than 5.0 had the requirement to have 8GB multiples but in v5 Nairobi, that is not a hard requirement.","commit_id":"79941f8670bf9a971651d74885436bd3ba16a6e2"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5f107b37bde7a1dfeefae4b37919d9ce415c5f5d","unresolved":true,"context_lines":[{"line_number":1382,"context_line":"            msg \u003d (_(\"Failed to query stats for Storage Pool %s: %s\")"},{"line_number":1383,"context_line":"                   % (pool_name, r.text))"},{"line_number":1384,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1385,"context_line":"        results \u003d list(response.values())[3]"},{"line_number":1386,"context_line":"        metrics_data \u003d results[0][\"metrics\"]"},{"line_number":1387,"context_line":"        metric_map \u003d {"},{"line_number":1388,"context_line":"            m[\"name\"]: flex_utils.convert_bytes_to_gib(m[\"values\"][0])"}],"source_content_type":"text/x-python","patch_set":19,"id":"f6f4b232_b6167044","line":1385,"updated":"2026-03-06 14:19:26.000000000","message":"hard-coded dict index; IndexError or wrong data in production. I am thinking response.get(\"results\") is better","commit_id":"a8e2ac4be3a630134d911975bd79e4190cca8265"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"ef2f98fdae2a87a56c70581eea9138444b665b13","unresolved":false,"context_lines":[{"line_number":1382,"context_line":"            msg \u003d (_(\"Failed to query stats for Storage Pool %s: %s\")"},{"line_number":1383,"context_line":"                   % (pool_name, r.text))"},{"line_number":1384,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1385,"context_line":"        results \u003d list(response.values())[3]"},{"line_number":1386,"context_line":"        metrics_data \u003d results[0][\"metrics\"]"},{"line_number":1387,"context_line":"        metric_map \u003d {"},{"line_number":1388,"context_line":"            m[\"name\"]: flex_utils.convert_bytes_to_gib(m[\"values\"][0])"}],"source_content_type":"text/x-python","patch_set":19,"id":"69e96772_03486d86","line":1385,"in_reply_to":"f6f4b232_b6167044","updated":"2026-03-09 09:19:49.000000000","message":"Done","commit_id":"a8e2ac4be3a630134d911975bd79e4190cca8265"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":208,"context_line":"                   {\"ratio\": self.configuration.max_over_subscription_ratio,"},{"line_number":209,"context_line":"                    \"powerflex_ratio\": POWERFLEX_MAX_OVERSUBSCRIPTION_RATIO})"},{"line_number":210,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # validate that version of PowerFlex is supported"},{"line_number":213,"context_line":"        if not flex_utils.version_gte(client.query_rest_api_version(), \"2.0\"):"},{"line_number":214,"context_line":"            # we are running against a pre-2.0.0 PowerFlex(ScaleIO) instance"}],"source_content_type":"text/x-python","patch_set":21,"id":"282c28e1_3208f4f4","line":211,"updated":"2026-03-11 21:04:10.000000000","message":"Might want to remove this to avoid merge issues.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                   {\"ratio\": self.configuration.max_over_subscription_ratio,"},{"line_number":209,"context_line":"                    \"powerflex_ratio\": POWERFLEX_MAX_OVERSUBSCRIPTION_RATIO})"},{"line_number":210,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # validate that version of PowerFlex is supported"},{"line_number":213,"context_line":"        if not flex_utils.version_gte(client.query_rest_api_version(), \"2.0\"):"},{"line_number":214,"context_line":"            # we are running against a pre-2.0.0 PowerFlex(ScaleIO) instance"}],"source_content_type":"text/x-python","patch_set":21,"id":"86f6b2d4_fab35f29","line":211,"in_reply_to":"282c28e1_3208f4f4","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":224,"context_line":"        for pool in self.storage_pools:"},{"line_number":225,"context_line":"            try:"},{"line_number":226,"context_line":"                pd, sp \u003d pool.split(\":\")"},{"line_number":227,"context_line":"                client.get_powerflex_gen_type(pd)"},{"line_number":228,"context_line":"            except (ValueError, IndexError):"},{"line_number":229,"context_line":"                msg \u003d (_(\"Invalid storage pool name. The correct format is: \""},{"line_number":230,"context_line":"                         \"protection_domain:storage_pool. \""}],"source_content_type":"text/x-python","patch_set":21,"id":"c5f6154e_22b24807","line":227,"updated":"2026-03-11 21:04:10.000000000","message":"This looks like it does nothing, but going into get_powerflex_gen_type, I see it has side-effects more akin to initialization.  I am wondering if this method should be renamed just so the \"next guy\" doesn\u0027t get confused.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        for pool in self.storage_pools:"},{"line_number":225,"context_line":"            try:"},{"line_number":226,"context_line":"                pd, sp \u003d pool.split(\":\")"},{"line_number":227,"context_line":"                client.get_powerflex_gen_type(pd)"},{"line_number":228,"context_line":"            except (ValueError, IndexError):"},{"line_number":229,"context_line":"                msg \u003d (_(\"Invalid storage pool name. The correct format is: \""},{"line_number":230,"context_line":"                         \"protection_domain:storage_pool. \""}],"source_content_type":"text/x-python","patch_set":21,"id":"d52510e7_b53c6a78","line":227,"in_reply_to":"c5f6154e_22b24807","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":946,"context_line":"            qos_specs \u003d self._get_volumetype_qos(vol_or_snap)"},{"line_number":947,"context_line":"            storage_type \u003d extra_specs.copy()"},{"line_number":948,"context_line":"            storage_type.update(qos_specs)"},{"line_number":949,"context_line":"            if self._get_client().check_powerflex_ec_version():"},{"line_number":950,"context_line":"                round_volume_size \u003d vol_size"},{"line_number":951,"context_line":"            else:"},{"line_number":952,"context_line":"                round_volume_size \u003d flex_utils.round_to_num_gran(vol_size)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa7d43b4_038ce646","line":949,"updated":"2026-03-11 21:04:10.000000000","message":"This pattern appears multiple times.  Should you extract it to a method?\n\nSomething like:\n```\ndef get_actual_vol_size(self, vol_size):\n   if self._get_client().check_powerflex_ec_version():\n       return vol_size\n   return flex_utils.round_to_num_gran(vol_size)\n```","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":946,"context_line":"            qos_specs \u003d self._get_volumetype_qos(vol_or_snap)"},{"line_number":947,"context_line":"            storage_type \u003d extra_specs.copy()"},{"line_number":948,"context_line":"            storage_type.update(qos_specs)"},{"line_number":949,"context_line":"            if self._get_client().check_powerflex_ec_version():"},{"line_number":950,"context_line":"                round_volume_size \u003d vol_size"},{"line_number":951,"context_line":"            else:"},{"line_number":952,"context_line":"                round_volume_size \u003d flex_utils.round_to_num_gran(vol_size)"}],"source_content_type":"text/x-python","patch_set":21,"id":"13106c38_3a68a6dd","line":949,"in_reply_to":"fa7d43b4_038ce646","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":956,"context_line":"            LOG.info(\"IOPS limit: %s.\", iops_limit)"},{"line_number":957,"context_line":"            LOG.info(\"Bandwidth limit: %s.\", bandwidth_limit)"},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"            # Set QoS settings after map was performed"},{"line_number":960,"context_line":"            if iops_limit is not None or bandwidth_limit is not None:"},{"line_number":961,"context_line":"                self._get_client().set_sdc_limits(vol_or_snap.provider_id,"},{"line_number":962,"context_line":"                                                  sdc_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"a26f4e04_1d1cc9aa","line":959,"updated":"2026-03-11 21:04:10.000000000","message":"This was previously outside the block ```if vol_size is not None```, but is now in the block.  Was this intentional?\n\nI believe it was as it looks like a bug being outside of the block, but please confirm.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":956,"context_line":"            LOG.info(\"IOPS limit: %s.\", iops_limit)"},{"line_number":957,"context_line":"            LOG.info(\"Bandwidth limit: %s.\", bandwidth_limit)"},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"            # Set QoS settings after map was performed"},{"line_number":960,"context_line":"            if iops_limit is not None or bandwidth_limit is not None:"},{"line_number":961,"context_line":"                self._get_client().set_sdc_limits(vol_or_snap.provider_id,"},{"line_number":962,"context_line":"                                                  sdc_id,"}],"source_content_type":"text/x-python","patch_set":21,"id":"7b23a712_e0e359a0","line":959,"in_reply_to":"a26f4e04_1d1cc9aa","updated":"2026-03-12 14:13:38.000000000","message":"This was intentional. It should be inside the block.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":1336,"context_line":"            total_capacity_gb, free_capacity_gb, provisioned_capacity \u003d ("},{"line_number":1337,"context_line":"                self._get_ec_queryable_statistics(pool_id, pool_name))"},{"line_number":1338,"context_line":"        else:"},{"line_number":1339,"context_line":"            url \u003d \"/types/StoragePool/instances/action/querySelectedStatistics\""},{"line_number":1340,"context_line":"            props \u003d self._get_queryable_statistics(\"StoragePool\", pool_id)"},{"line_number":1341,"context_line":"            params \u003d {\"ids\": [pool_id], \"properties\": props}"},{"line_number":1342,"context_line":"            r, response \u003d client.execute_powerflex_post_request(url, params)"}],"source_content_type":"text/x-python","patch_set":21,"id":"79d4e9e1_54a6b4ab","line":1339,"updated":"2026-03-11 21:04:10.000000000","message":"I do wonder if this should be extracted to its own method as well for readability.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":1336,"context_line":"            total_capacity_gb, free_capacity_gb, provisioned_capacity \u003d ("},{"line_number":1337,"context_line":"                self._get_ec_queryable_statistics(pool_id, pool_name))"},{"line_number":1338,"context_line":"        else:"},{"line_number":1339,"context_line":"            url \u003d \"/types/StoragePool/instances/action/querySelectedStatistics\""},{"line_number":1340,"context_line":"            props \u003d self._get_queryable_statistics(\"StoragePool\", pool_id)"},{"line_number":1341,"context_line":"            params \u003d {\"ids\": [pool_id], \"properties\": props}"},{"line_number":1342,"context_line":"            r, response \u003d client.execute_powerflex_post_request(url, params)"}],"source_content_type":"text/x-python","patch_set":21,"id":"4dcbd4c7_cd394545","line":1339,"in_reply_to":"79d4e9e1_54a6b4ab","updated":"2026-03-12 14:13:38.000000000","message":"Done","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"}],"cinder/volume/drivers/dell_emc/powerflex/rest_client.py":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"20d73b89ea011924a5b763e817f4a90b0effbf38","unresolved":true,"context_lines":[{"line_number":886,"context_line":"            msg \u003d (_(\"Failed to query gen type of powerflex with \""},{"line_number":887,"context_line":"                     \"protection domain id %s.\") % domain_id)"},{"line_number":888,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":889,"context_line":"        self.powerflex_gen_type \u003d response[0].get(\u0027genType\u0027, \u0027Mirroring\u0027)"},{"line_number":890,"context_line":"        return self.powerflex_gen_type"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"    def check_powerflex_ec_version(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"67e77142_5426450f","line":889,"updated":"2026-03-11 21:04:10.000000000","message":"Should you make sure there is response data as well?  Probably a non-issue, but if the server can ever return nothing this would throw with a nondescript error.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"},{"author":{"_account_id":37784,"name":"Abhishek Gupta","display_name":"Abhishek Gupta","email":"Abhishek_Gupta14@Dell.com","username":"abhishek-gupta14"},"change_message_id":"9a859294c3de9dbf4247e2bce6952e7a6152b70d","unresolved":false,"context_lines":[{"line_number":886,"context_line":"            msg \u003d (_(\"Failed to query gen type of powerflex with \""},{"line_number":887,"context_line":"                     \"protection domain id %s.\") % domain_id)"},{"line_number":888,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":889,"context_line":"        self.powerflex_gen_type \u003d response[0].get(\u0027genType\u0027, \u0027Mirroring\u0027)"},{"line_number":890,"context_line":"        return self.powerflex_gen_type"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"    def check_powerflex_ec_version(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"80a8eeba_b6025716","line":889,"in_reply_to":"67e77142_5426450f","updated":"2026-03-12 14:13:38.000000000","message":"Ideally, the storage array should return gen_type in this case. If it does not, then there should be the issue in storage config. But still I have added defensive check.","commit_id":"75c1ad896df6e4a6331f64718c66916dd895f6b2"}]}
