)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2025-11-15 13:59:27 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Hitachi: Add Adaptive QoS setting based on volume size."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I23acdca291a310906c3e879db19ee778d3a3f89e"},{"line_number":10,"context_line":"Signed-off-by: Anthony Galica \u003canthony.galica@hitachivantara.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"c1b53e30_2535946b","line":8,"updated":"2025-11-21 15:06:56.000000000","message":"It is always helpful to have a summary of the changes being made. Adding this QoS initially seems straightforward, but since we are dealing with many specific stories, some context on how the storage interacts with and implements these changes would be beneficial.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2025-11-15 13:59:27 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Hitachi: Add Adaptive QoS setting based on volume size."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I23acdca291a310906c3e879db19ee778d3a3f89e"},{"line_number":10,"context_line":"Signed-off-by: Anthony Galica \u003canthony.galica@hitachivantara.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1e352bf8_2488693f","line":8,"in_reply_to":"c1b53e30_2535946b","updated":"2025-11-21 17:21:34.000000000","message":"Acknowledged","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"5b3c42d9a7abbcdb9b5e636defbefa5152b4ae11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ce2e7bd5_85cff9b1","updated":"2025-11-14 06:06:23.000000000","message":"Added release notes and a few UT adjustments.","commit_id":"20abb0a43f96f534aceec25cb3fa27378019ae5d"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca89ec9a9a35cf7fcfa3132959e412fb118d5e1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d2d6e468_23774754","in_reply_to":"ce2e7bd5_85cff9b1","updated":"2025-11-14 06:15:36.000000000","message":"I had to adjust some tests to include override_config, which is very bizarre since it wasn\u0027t working on the B20 patch (and now a small handful of tests are requiring it).","commit_id":"20abb0a43f96f534aceec25cb3fa27378019ae5d"},{"author":{"_account_id":38067,"name":"Sandip Rajbanshi","display_name":"Sandip27","email":"sandip.rajbanshi@ibm.com","username":"sandip-rajbanshi-27"},"change_message_id":"eb93382f40d987566b4c924e71deb9332ff16e7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6b13cc6f_44c14a05","updated":"2025-11-21 14:43:01.000000000","message":"LGTM","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"63f165ec_dc6d41e2","updated":"2025-11-26 12:07:15.000000000","message":"Added a few more comments, and you still need to remove the copyright changes from the files that were not modified.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7668c54e_48dff384","updated":"2025-11-21 17:21:34.000000000","message":"I updated the submission note to include more information.  I also replied to all of Erlon\u0027s concerns, as well as revert 2 files that only had copyright changes.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"3e808d260808858a4f09db08c5206fe6fbc8fef5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a502553b_81b604a0","updated":"2025-12-01 23:39:48.000000000","message":"Thanks for the reviews, Erlon.  I believe I have replied to all your comments.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"d690e590944b9ce3c52b35653cb140fa97ab92c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"df00859b_862878c8","in_reply_to":"63f165ec_dc6d41e2","updated":"2025-12-01 23:41:37.000000000","message":"Which files?  I removed them and no longer see them in the list.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"024d0fdcdf7f230b338c05ef98cf09dd07baa99f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"19c9c0c6_7cfc30a1","in_reply_to":"df00859b_862878c8","updated":"2025-12-12 13:05:20.000000000","message":"Never mind. They were fixed indeed.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96ea1a6a0d8085176fbc39d3d8bd3855e33632cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b6d9ee77_28879c2b","updated":"2025-12-04 14:34:48.000000000","message":"I won\u0027t downvote but would really like to hear your opinion on the below ask.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0f726cd3094e4a1923eb548edacf33ca6382fd6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2bf49b96_189da117","updated":"2025-12-12 13:08:06.000000000","message":"LGTM, CI is happy on ps5. ps6 doesnt add any relevant code changes.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9c254a87680a225baf50ade3bbf6a940cfa137ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8ec949c4_fb25daf3","updated":"2025-12-05 02:04:28.000000000","message":"Reply to Rajat\u0027s question about our retyping functionality.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"d749d9a1de1bcc6cf4679494f560c45af0a6e3bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9205a3e9_cbfd29c5","updated":"2026-01-12 22:37:39.000000000","message":"Resolve comment.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9c254a87680a225baf50ade3bbf6a940cfa137ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b6521fc1_9feb0746","in_reply_to":"b6d9ee77_28879c2b","updated":"2025-12-05 02:04:28.000000000","message":"Done!\n\nIf there\u0027s additional retyping ability you think is missing, we can certainly look into putting it on our roadmap.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"67bc2d32_ca84ca8e","updated":"2026-02-13 18:44:24.000000000","message":"Hi! I mentioned a few issues inline, but the code looks overall looks good. I don\u0027t see any Hitachi CI results yet. Can we confirm that it\u0027s passing the automated tests?","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9c82f23d_5a7fc0ee","updated":"2026-02-14 10:55:05.000000000","message":"Thanks for the review, Fernando!\n\nWe previously were asked to update copyrights, and then asked again (and told to do in later patch).  So we\u0027re doing it here.  If core wants us to move it out for an entirely new review process, I will.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9cd051ed2ac56d264b59fe229c5ed9cf787a8402","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1fc9de91_8ed31cb1","updated":"2026-02-11 12:48:53.000000000","message":"recheck several tests.  Looks like backend failures","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"cd99f6b5e2c0b563067298e8d2cbc8ef67e3c7de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"29a0a318_5e2484ed","updated":"2026-02-05 23:57:14.000000000","message":"recheck tempest grenade etc","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"112d4e11f0e968d3f3075231e04445490c301af0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e977c37c_3ffd911a","updated":"2026-02-10 00:53:50.000000000","message":"recheck tempest-slow-py3","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"52b367a20ed2526fb11c689f2a2848d4d5eed8fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fdbd244c_bdfd010f","updated":"2026-02-25 19:49:11.000000000","message":"Code looks good to me, CI results are good.","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f6011833fe1a95453db2434ffa979cc1d4f51d18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9fab730d_35ca96ed","updated":"2026-02-26 16:54:42.000000000","message":"Nit about a comment noted inline; otherwise LGTM.","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"15cb82cb6ba71eb7175ae98365804a2eef14492e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2687bc6a_715172c9","updated":"2026-02-26 22:57:44.000000000","message":"Since we have full workflow I will not give in to the nit for now, but will keep in mind for future.","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"28894de3647a7c823ebd3226db30827b764167e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"91258def_bfed7976","updated":"2026-02-20 14:12:21.000000000","message":"cinder-plugin-ceph-tempest seems to have some resource issues on backend","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2a9576b3867d72e5a489dd43e3ee86ffbcc54fc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1505d9fc_7ad1217f","updated":"2026-02-25 12:16:03.000000000","message":"code changes look good. Zuul and Hitachi CI have passed.","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"7a0e8e05c688b9244cf704d453b06fd26a311740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3988ccf1_074d26e8","updated":"2026-02-18 20:35:12.000000000","message":"recheck","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"98fec945e99c6e820d5d2a34c17077bafaec2e5b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"85a94f52_df05d559","updated":"2026-02-26 22:59:24.000000000","message":"recheck cinder-plugin-ceph-tempest hit a problem during cephadm install\nRuntimeError: Failed command: /usr/bin/podman run --rm --ipc\u003dhost --stop-signal\u003dSIGTERM --net\u003dhost --entrypoint /usr/bin/ceph --init -e CONTAINER_IMAGE\u003dquay.io/ceph/ceph:v20 -e NODE_NAME\u003dnp82395f81c14c4 -v /var/log/ceph/a98d59da-f882-4453-8d6d-e03810188f1a:/var/log/ceph:z -v /tmp/ceph-tmpysl1qbqe:/etc/ceph/ceph.client.admin.keyring:z -v /tmp/ceph-tmpelhar6tb:/etc/ceph/ceph.conf:z quay.io/ceph/ceph:v20 orch set backend cephadm: Error ENOTSUP: Warning: due to ceph-mgr restart, some PG states may not be up to date\nModule \u0027orchestrator\u0027 is not enabled/loaded (required by command \u0027orch set backend\u0027): use `ceph mgr module enable orchestrator` to enable it","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"7f9f353bb7e128b7d1f82e19ca510479ea0e46c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"90ae1279_8a36c42b","updated":"2026-02-20 14:12:41.000000000","message":"recheck cinder-plugin-ceph-tempest resource issues","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"339e592802c8677c8be0fce273059ad727a65b71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6d1c8702_21523ba2","updated":"2026-02-27 06:32:54.000000000","message":"recheck devstack-plugin-nfs-tempest-full timed out","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"}],"cinder/volume/drivers/hitachi/hbsd_common.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":753,"context_line":"        self.extend_ldev(ldev, volume[\u0027size\u0027], new_size)"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"        # If we have adaptive QoS, let\u0027s update our QoS now as well."},{"line_number":756,"context_line":"        old_qos \u003d utils.get_qos_specs_from_volume(volume)"},{"line_number":757,"context_line":"        new_qos \u003d utils.get_qos_specs_from_volume(volume, new_size)"},{"line_number":758,"context_line":"        if old_qos !\u003d new_qos:"},{"line_number":759,"context_line":"            self.change_qos_specs(ldev, old_qos, new_qos)"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"    def get_ldev_by_name(self, name):"},{"line_number":762,"context_line":"        \"\"\"Get the LDEV number from the given name.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"18b64b7b_a0c2572c","line":759,"range":{"start_line":756,"start_character":0,"end_line":759,"end_character":57},"updated":"2025-11-21 15:06:56.000000000","message":"We should only change the volume properties during a retype. Changing them here might cause unwanted effects. For example, if the new QoS is poorer than the old, the user will inadvertently experience an unwanted change in behavior.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        self.extend_ldev(ldev, volume[\u0027size\u0027], new_size)"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"        # If we have adaptive QoS, let\u0027s update our QoS now as well."},{"line_number":756,"context_line":"        old_qos \u003d utils.get_qos_specs_from_volume(volume)"},{"line_number":757,"context_line":"        new_qos \u003d utils.get_qos_specs_from_volume(volume, new_size)"},{"line_number":758,"context_line":"        if old_qos !\u003d new_qos:"},{"line_number":759,"context_line":"            self.change_qos_specs(ldev, old_qos, new_qos)"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"    def get_ldev_by_name(self, name):"},{"line_number":762,"context_line":"        \"\"\"Get the LDEV number from the given name.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9e8995b9_de48293e","line":759,"range":{"start_line":756,"start_character":0,"end_line":759,"end_character":57},"in_reply_to":"18b64b7b_a0c2572c","updated":"2025-11-21 17:21:34.000000000","message":"This is the entire premise of the patch, so removing it would render the patch pointless: when a volume is resized, the QoS is updated to match its adaptive value.  As this is not a storage feature, it must be done by the driver.  The cinder QoS configuration does not change here, only the configuration of the volume on the storage (and this QoS key is specifically saying to the driver that this is the intent).  \n\nIt is not possible for the QoS to become poorer as the volume can only be extended.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        self.extend_ldev(ldev, volume[\u0027size\u0027], new_size)"},{"line_number":754,"context_line":""},{"line_number":755,"context_line":"        # If we have adaptive QoS, let\u0027s update our QoS now as well."},{"line_number":756,"context_line":"        old_qos \u003d utils.get_qos_specs_from_volume(volume)"},{"line_number":757,"context_line":"        new_qos \u003d utils.get_qos_specs_from_volume(volume, new_size)"},{"line_number":758,"context_line":"        if old_qos !\u003d new_qos:"},{"line_number":759,"context_line":"            self.change_qos_specs(ldev, old_qos, new_qos)"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"    def get_ldev_by_name(self, name):"},{"line_number":762,"context_line":"        \"\"\"Get the LDEV number from the given name.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"75d25201_a98d0a4e","line":759,"range":{"start_line":756,"start_character":0,"end_line":759,"end_character":57},"in_reply_to":"9e8995b9_de48293e","updated":"2025-11-26 12:07:15.000000000","message":"Got it, makes much more sense now with the commit explaination. Thanks for adding that.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":true,"context_lines":[{"line_number":328,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":329,"context_line":"                           \u0027:drs\u0027)"},{"line_number":330,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":333,"context_line":"                           \u0027:drs\u0027)"},{"line_number":334,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":335,"context_line":"        extra_specs_csv \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":336,"context_line":"                           \u0027:capacity_saving\u0027)"},{"line_number":337,"context_line":"        capacity_saving \u003d extra_specs.get(extra_specs_csv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"70f88b02_1b810371","line":334,"range":{"start_line":331,"start_character":0,"end_line":334,"end_character":46},"updated":"2025-11-26 12:07:15.000000000","message":"-1: This is duplicated","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"3e808d260808858a4f09db08c5206fe6fbc8fef5","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":329,"context_line":"                           \u0027:drs\u0027)"},{"line_number":330,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":333,"context_line":"                           \u0027:drs\u0027)"},{"line_number":334,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":335,"context_line":"        extra_specs_csv \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":336,"context_line":"                           \u0027:capacity_saving\u0027)"},{"line_number":337,"context_line":"        capacity_saving \u003d extra_specs.get(extra_specs_csv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3036f5cb_27ce828f","line":334,"range":{"start_line":331,"start_character":0,"end_line":334,"end_character":46},"in_reply_to":"70f88b02_1b810371","updated":"2025-12-01 23:39:48.000000000","message":"Fixed, thanks.  I had removed it from a prior patch, but I guess it slipped in again.","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"96ea1a6a0d8085176fbc39d3d8bd3855e33632cd","unresolved":true,"context_lines":[{"line_number":1340,"context_line":"        return {\u0027_name_id\u0027: new_volume.name_id,"},{"line_number":1341,"context_line":"                \u0027provider_location\u0027: new_volume.provider_location}"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":1344,"context_line":"        \"\"\"Retype the specified volume.\"\"\""},{"line_number":1345,"context_line":"        return False"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def has_snap_pair(self, pvol, svol):"},{"line_number":1348,"context_line":"        \"\"\"Check if the volume have the pair of the snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"a2336cbf_722ad029","line":1345,"range":{"start_line":1343,"start_character":0,"end_line":1345,"end_character":20},"updated":"2025-12-04 14:34:48.000000000","message":"I know this is somewhat related and might not be in the scope but we should definitely handle the case when we are retyping from one type with QoS to another type without QoS (and, if possible, vice versa)\nThis will allow users to perform retype without migration to change QoS (performance improvement).","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9c254a87680a225baf50ade3bbf6a940cfa137ab","unresolved":true,"context_lines":[{"line_number":1340,"context_line":"        return {\u0027_name_id\u0027: new_volume.name_id,"},{"line_number":1341,"context_line":"                \u0027provider_location\u0027: new_volume.provider_location}"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":1344,"context_line":"        \"\"\"Retype the specified volume.\"\"\""},{"line_number":1345,"context_line":"        return False"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def has_snap_pair(self, pvol, svol):"},{"line_number":1348,"context_line":"        \"\"\"Check if the volume have the pair of the snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"be0f88ad_72a1b217","line":1345,"range":{"start_line":1343,"start_character":0,"end_line":1345,"end_character":20},"in_reply_to":"a2336cbf_722ad029","updated":"2025-12-05 02:04:28.000000000","message":"Hi Rajat!  Thanks so much for taking a look at our new patches!\n\nSo, the driver has some slightly confusing elements, and having said that, you\u0027re a victim of inheritance here :-).  \n\nThe common class section is overridden for the retype implementations.  Check out hbsd_rest.py and hbsd_replication.py for the actual implementations - retyping from different QoS or adding/removing is doable without migration.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"d749d9a1de1bcc6cf4679494f560c45af0a6e3bf","unresolved":false,"context_lines":[{"line_number":1340,"context_line":"        return {\u0027_name_id\u0027: new_volume.name_id,"},{"line_number":1341,"context_line":"                \u0027provider_location\u0027: new_volume.provider_location}"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def retype(self, ctxt, volume, new_type, diff, host):"},{"line_number":1344,"context_line":"        \"\"\"Retype the specified volume.\"\"\""},{"line_number":1345,"context_line":"        return False"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def has_snap_pair(self, pvol, svol):"},{"line_number":1348,"context_line":"        \"\"\"Check if the volume have the pair of the snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"450ec2fb_fd800cb1","line":1345,"range":{"start_line":1343,"start_character":0,"end_line":1345,"end_character":20},"in_reply_to":"be0f88ad_72a1b217","updated":"2026-01-12 22:37:39.000000000","message":"Hi @rajatdhasmana@gmail.com, resolving this comment at the moment!  Reopen it if necessary.","commit_id":"ae2b1311a06fcdbd3d2fd8743082fb421de786cf"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":329,"context_line":"                           \u0027:drs\u0027)"},{"line_number":330,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":333,"context_line":"                           \u0027:drs\u0027)"},{"line_number":334,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":335,"context_line":"        extra_specs_csv \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"}],"source_content_type":"text/x-python","patch_set":8,"id":"3c87edef_cc25a73c","line":332,"updated":"2026-02-13 18:44:24.000000000","message":"Code seems to be repeating itself, right? I saw another patch in the relation chain removing this as a duplicated -\u003e https://review.opendev.org/c/openstack/cinder/+/974973/3/cinder/volume/drivers/hitachi/hbsd_common.py#b332","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                           \u0027:drs\u0027)"},{"line_number":330,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        extra_specs_drs \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"},{"line_number":333,"context_line":"                           \u0027:drs\u0027)"},{"line_number":334,"context_line":"        drs \u003d extra_specs.get(extra_specs_drs)"},{"line_number":335,"context_line":"        extra_specs_csv \u003d (self.driver_info[\u0027driver_dir_name\u0027] +"}],"source_content_type":"text/x-python","patch_set":8,"id":"ed3a7076_ebebd2e5","line":332,"in_reply_to":"3c87edef_cc25a73c","updated":"2026-02-14 10:55:05.000000000","message":"Done.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_fc.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"65beaf22_89ba1676","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"updated":"2025-11-21 15:06:56.000000000","message":"This is not part of the change","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"f60a9d5e_b9d437f5","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"65beaf22_89ba1676","updated":"2025-11-21 17:21:34.000000000","message":"As this file was updated, we are keeping the copyright up to date.\n\nIn a prior patch review I was dinged by a Core for not doing so, so I am definitely leaving this!","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"e7432339_930954a3","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"f60a9d5e_b9d437f5","updated":"2025-11-26 12:07:15.000000000","message":"Ack","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"13dced14_da1da7f8","line":88,"range":{"start_line":87,"start_character":4,"end_line":88,"end_character":55},"updated":"2025-11-21 15:06:56.000000000","message":"Why is this version of changing on this patch?","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"a81a09d8_4defe4e1","line":88,"range":{"start_line":87,"start_character":4,"end_line":88,"end_character":55},"in_reply_to":"13dced14_da1da7f8","updated":"2025-11-21 17:21:34.000000000","message":"A prior patch that has been merged did not update the versioning numbers properly as the patches were swapped around due to the importance of the B20 support patch.  The patches themselves have the correct versioning as merged, but we failed to update it here in the version list (originally UR/extension were built long before B20). I noticed this when building the QoS patch and thus corrected the information.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        2.3.4 - Support data deduplication and compression."},{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."}],"source_content_type":"text/x-python","patch_set":8,"id":"4280e73f_24390577","line":86,"updated":"2026-02-13 18:44:24.000000000","message":"I\u0027m not sure rewriting the version history for previous changes should belong to this patch. To keep it as minimal as possible and focused on the adaptive qos implementation, I’d recommend moving the history cleanup to a separate patch.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        2.3.4 - Support data deduplication and compression."},{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."}],"source_content_type":"text/x-python","patch_set":8,"id":"34e84a29_20d243a2","line":86,"in_reply_to":"4280e73f_24390577","updated":"2026-02-14 10:55:05.000000000","message":"If core forces us to do this, we will, but I\u0027d rather have it be accurate with this commit.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_iscsi.py":[{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        2.3.4 - Support data deduplication and compression."},{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."}],"source_content_type":"text/x-python","patch_set":8,"id":"fd86e75c_f40cd60b","line":86,"updated":"2026-02-13 18:44:24.000000000","message":"I\u0027m not sure rewriting the version history for previous changes should belong to this patch. To keep it as minimal as possible and focused on the adaptive qos implementation, I’d recommend moving the history cleanup to a separate patch.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        2.3.4 - Support data deduplication and compression."},{"line_number":84,"context_line":"        2.3.5 - Fix key error when backend is down."},{"line_number":85,"context_line":"        2.4.0 - Add QoS support."},{"line_number":86,"context_line":"        2.5.0 - Add B20 support."},{"line_number":87,"context_line":"        2.6.0 - Add UR volume support."},{"line_number":88,"context_line":"        2.6.1 - Support extending volume with snapshot."},{"line_number":89,"context_line":"        2.6.2 - Support adaptive QoS upperIops setting."}],"source_content_type":"text/x-python","patch_set":8,"id":"3d424cf7_baf102ea","line":86,"in_reply_to":"fd86e75c_f40cd60b","updated":"2026-02-14 10:55:05.000000000","message":"Acknowledged","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_replication.py":[{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"dbee85d6_9712d53e","line":1,"updated":"2026-02-13 18:44:24.000000000","message":"This file has no changes other than this so I think we should keep it untouched as the review processs and later backuports would be easier.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"63422de6_c8bdd423","line":1,"in_reply_to":"dbee85d6_9712d53e","updated":"2026-02-14 10:55:05.000000000","message":"The copyright thing has been a bit of chaos.  The reason it was updated here is because a prior patch removed some of the copyright stuff.  So, we wanted to make the file accurate.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_rest.py":[{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":379,"context_line":"            \u0027isParallelExecutionEnabled\u0027: True,"},{"line_number":380,"context_line":"        }"},{"line_number":381,"context_line":"        capacity_saving \u003d None"},{"line_number":382,"context_line":"        drs \u003d None"},{"line_number":383,"context_line":"        has_drs \u003d False"},{"line_number":384,"context_line":"        if self.driver_info.get(\u0027driver_dir_name\u0027):"},{"line_number":385,"context_line":"            capacity_saving \u003d extra_specs.get("}],"source_content_type":"text/x-python","patch_set":8,"id":"6b9b0f07_401c4969","line":382,"updated":"2026-02-13 18:44:24.000000000","message":"Is this related to the Adaptive QoS implementation?","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            \u0027isParallelExecutionEnabled\u0027: True,"},{"line_number":380,"context_line":"        }"},{"line_number":381,"context_line":"        capacity_saving \u003d None"},{"line_number":382,"context_line":"        drs \u003d None"},{"line_number":383,"context_line":"        has_drs \u003d False"},{"line_number":384,"context_line":"        if self.driver_info.get(\u0027driver_dir_name\u0027):"},{"line_number":385,"context_line":"            capacity_saving \u003d extra_specs.get("}],"source_content_type":"text/x-python","patch_set":8,"id":"23d7a432_74e5c426","line":382,"in_reply_to":"6b9b0f07_401c4969","updated":"2026-02-14 10:55:05.000000000","message":"No, but I believe it was either causing a (new) pep8 failure, or something similar due to \u0027drs\u0027 not having the correct scope.  This one kind of confounds me, though, as I would not have expected it to ever work like this.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_rest_fc.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"0401742d_246fafe7","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"updated":"2025-11-21 15:06:56.000000000","message":"Same, this should be done in another patch.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"290064b1_5402e2d9","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":37},"in_reply_to":"0401742d_246fafe7","updated":"2025-11-21 17:21:34.000000000","message":"I will revert this as the file did not change.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"daad606c_90abe556","line":2,"updated":"2026-02-13 18:44:24.000000000","message":"This file has no changes other than this so I think we should keep it untouched as the review processs and later backuports would be easier. This can be addressed in another patch if needed.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"62fc73fd_53eb040c","line":2,"in_reply_to":"daad606c_90abe556","updated":"2026-02-14 10:55:05.000000000","message":"Acknowledged","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_rest_iscsi.py":[{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"6f5aa2f8_488797b5","line":2,"updated":"2026-02-13 18:44:24.000000000","message":"This file has no changes other than this so I think we should keep it untouched as the review processs and later backuports would be easier. This can be addressed in another patch if needed.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"# Copyright (C) 2025, Hitachi Vantara"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":8,"id":"4876e668_2813a84e","line":2,"in_reply_to":"6f5aa2f8_488797b5","updated":"2026-02-14 10:55:05.000000000","message":"Acknowledged","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"}],"cinder/volume/drivers/hitachi/hbsd_utils.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":956,"context_line":"    return wrap"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"def get_qos_specs_from_volume(target, check_volume_size\u003dNone):"},{"line_number":960,"context_line":"    \"\"\"Return a dictionary of the QoS specs of the target."},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    :param target: Volume or Snapshot whose QoS specs are queried."}],"source_content_type":"text/x-python","patch_set":4,"id":"8c0300d3_f9125ebe","line":959,"range":{"start_line":959,"start_character":30,"end_line":959,"end_character":36},"updated":"2025-11-21 15:06:56.000000000","message":"Can you change this naming. It is very confusing in this context since target means something else in the storage world.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"8a439fdd73fed0421958efb2b71849f6eed61958","unresolved":true,"context_lines":[{"line_number":956,"context_line":"    return wrap"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"def get_qos_specs_from_volume(target, check_volume_size\u003dNone):"},{"line_number":960,"context_line":"    \"\"\"Return a dictionary of the QoS specs of the target."},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    :param target: Volume or Snapshot whose QoS specs are queried."}],"source_content_type":"text/x-python","patch_set":4,"id":"d3dc1cc4_2ad81c6a","line":959,"range":{"start_line":959,"start_character":38,"end_line":959,"end_character":55},"updated":"2025-11-21 15:06:56.000000000","message":"check_volume_size -\u003e volume_size","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":false,"context_lines":[{"line_number":956,"context_line":"    return wrap"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"def get_qos_specs_from_volume(target, check_volume_size\u003dNone):"},{"line_number":960,"context_line":"    \"\"\"Return a dictionary of the QoS specs of the target."},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    :param target: Volume or Snapshot whose QoS specs are queried."}],"source_content_type":"text/x-python","patch_set":4,"id":"de13a89c_e9fa44a5","line":959,"range":{"start_line":959,"start_character":30,"end_line":959,"end_character":36},"in_reply_to":"35c40a03_06b17efb","updated":"2025-11-26 12:07:15.000000000","message":"yeah, this popped to my eyes in the first pass, but you are right about not having to change this through the code.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":956,"context_line":"    return wrap"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"def get_qos_specs_from_volume(target, check_volume_size\u003dNone):"},{"line_number":960,"context_line":"    \"\"\"Return a dictionary of the QoS specs of the target."},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    :param target: Volume or Snapshot whose QoS specs are queried."}],"source_content_type":"text/x-python","patch_set":4,"id":"35c40a03_06b17efb","line":959,"range":{"start_line":959,"start_character":30,"end_line":959,"end_character":36},"in_reply_to":"8c0300d3_f9125ebe","updated":"2025-11-21 17:21:34.000000000","message":"No, as this language is used extensively throughout the code that was built by a prior team, and this was not changed here (it was already like this).\n\nI\u0027m in agreement with you that it\u0027s poorly named, but I am not going to go through and rename it everywhere that it\u0027s used as that ship has sailed a long time ago, and it\u0027s out of the scope of this patch.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ca5b656a0989851ea853f81db4e6399850fe31e5","unresolved":false,"context_lines":[{"line_number":956,"context_line":"    return wrap"},{"line_number":957,"context_line":""},{"line_number":958,"context_line":""},{"line_number":959,"context_line":"def get_qos_specs_from_volume(target, check_volume_size\u003dNone):"},{"line_number":960,"context_line":"    \"\"\"Return a dictionary of the QoS specs of the target."},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    :param target: Volume or Snapshot whose QoS specs are queried."}],"source_content_type":"text/x-python","patch_set":4,"id":"7ded89ed_f2f3d924","line":959,"range":{"start_line":959,"start_character":38,"end_line":959,"end_character":55},"in_reply_to":"d3dc1cc4_2ad81c6a","updated":"2025-11-21 17:21:34.000000000","message":"I chose that name specifically as it\u0027s an override for the volume size if provided -- if not provided, the actual volume size is used.  This allows for checking QoS settings for a volume after a resize when the volume properties do not reflect that.\n\nI felt \u0027volume_size\u0027 was not descriptive enough as it\u0027s a volume size to check, not necessarily the actual volume size.","commit_id":"2d89cc13035cdf01bf77e7bfb3827a55ed3a54ee"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"e07720744c3028a0a7e433684ac3ecb5eeac4ff5","unresolved":true,"context_lines":[{"line_number":27,"context_line":"from cinder import utils as cinder_utils"},{"line_number":28,"context_line":"from cinder.volume import volume_types"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"VERSION \u003d \u00272.7.0\u0027"},{"line_number":32,"context_line":"CI_WIKI_NAME \u003d \u0027Hitachi_CI\u0027"},{"line_number":33,"context_line":"PARAM_PREFIX \u003d \u0027hitachi\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"891891e7_84e267dc","line":30,"updated":"2025-11-26 12:07:15.000000000","message":"nit: remove this extra line in a next version","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"3e808d260808858a4f09db08c5206fe6fbc8fef5","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from cinder import utils as cinder_utils"},{"line_number":28,"context_line":"from cinder.volume import volume_types"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"VERSION \u003d \u00272.7.0\u0027"},{"line_number":32,"context_line":"CI_WIKI_NAME \u003d \u0027Hitachi_CI\u0027"},{"line_number":33,"context_line":"PARAM_PREFIX \u003d \u0027hitachi\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"2ff55f9e_0782421b","line":30,"in_reply_to":"891891e7_84e267dc","updated":"2025-12-01 23:39:48.000000000","message":"Acknowledged","commit_id":"ff6da47dde28b549c55393332eac433d946c1332"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":27,"context_line":"from cinder import utils as cinder_utils"},{"line_number":28,"context_line":"from cinder.volume import volume_types"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"VERSION \u003d \u00272.7.0\u0027"},{"line_number":32,"context_line":"CI_WIKI_NAME \u003d \u0027Hitachi_CI\u0027"},{"line_number":33,"context_line":"PARAM_PREFIX \u003d \u0027hitachi\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"0de7cba0_c952f5da","line":30,"updated":"2026-02-13 18:44:24.000000000","message":"Sorry for being repetitive about this, but I would suggest removing this newline to avoid unnecessary merge conflicts during backports. I’d suggest only updating the VERSION value.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from cinder import utils as cinder_utils"},{"line_number":28,"context_line":"from cinder.volume import volume_types"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"VERSION \u003d \u00272.7.0\u0027"},{"line_number":32,"context_line":"CI_WIKI_NAME \u003d \u0027Hitachi_CI\u0027"},{"line_number":33,"context_line":"PARAM_PREFIX \u003d \u0027hitachi\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"80c46d9e_eb2203b2","line":30,"in_reply_to":"0de7cba0_c952f5da","updated":"2026-02-14 10:55:05.000000000","message":"Will do.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"8c727751b71482db6bc7c35666432482128cc2a8","unresolved":true,"context_lines":[{"line_number":1003,"context_line":"        return upperIops"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    # We should not get here normally."},{"line_number":1006,"context_line":"    return None"},{"line_number":1007,"context_line":""},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"def get_qos_specs_from_volume_type_and_size(volume_type, size):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9bf98a59_05dedcc1","line":1006,"updated":"2026-02-13 18:44:24.000000000","message":"Nit: Does the key check really makes sense considering this is only called if key is `upperIopsPerGB`[1]? I would consider just removing the key check and always return `upperIops`.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/967141/8/cinder/volume/drivers/hitachi/hbsd_utils.py#1051","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"6ea2d6c06aa360c4a7beedf945fb0f40c0cf1ed3","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"        return upperIops"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    # We should not get here normally."},{"line_number":1006,"context_line":"    return None"},{"line_number":1007,"context_line":""},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"def get_qos_specs_from_volume_type_and_size(volume_type, size):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a837932_f03154e7","line":1006,"in_reply_to":"9bf98a59_05dedcc1","updated":"2026-02-14 10:55:05.000000000","message":"It is there for future proofing.  If we add an additional dynamic value, it will need to be checked.  The other code revolving the dynamic value that calls into this uses a generic list of keys to check.","commit_id":"18bd064a43966b8c56046dc8208842371846bd93"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f6011833fe1a95453db2434ffa979cc1d4f51d18","unresolved":true,"context_lines":[{"line_number":1013,"context_line":"    :type volume_type: VolumeType"},{"line_number":1014,"context_line":"    :param size: The size of the volume whose QoS specs are queried for"},{"line_number":1015,"context_line":"    adaptive QoS."},{"line_number":1016,"context_line":"    :type size: long"},{"line_number":1017,"context_line":"    :return: QoS specs."},{"line_number":1018,"context_line":"    :rtype: dict"},{"line_number":1019,"context_line":"    The following is an example of the returned value:"}],"source_content_type":"text/x-python","patch_set":9,"id":"15a8f849_845cab93","line":1016,"range":{"start_line":1016,"start_character":16,"end_line":1016,"end_character":20},"updated":"2026-02-26 16:54:42.000000000","message":"nit: Python 3 only has \u0027int\u0027 (arbitrary precision).","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"15cb82cb6ba71eb7175ae98365804a2eef14492e","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"    :type volume_type: VolumeType"},{"line_number":1014,"context_line":"    :param size: The size of the volume whose QoS specs are queried for"},{"line_number":1015,"context_line":"    adaptive QoS."},{"line_number":1016,"context_line":"    :type size: long"},{"line_number":1017,"context_line":"    :return: QoS specs."},{"line_number":1018,"context_line":"    :rtype: dict"},{"line_number":1019,"context_line":"    The following is an example of the returned value:"}],"source_content_type":"text/x-python","patch_set":9,"id":"2956d5a0_330979b6","line":1016,"range":{"start_line":1016,"start_character":16,"end_line":1016,"end_character":20},"in_reply_to":"15a8f849_845cab93","updated":"2026-02-26 22:57:44.000000000","message":"Acknowledged","commit_id":"64904163939ba5275064a4a35f65ec712026fdee"}]}
