)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"1296c616d1bea8d419e1eed678e620b8c7a2843e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6e815788_cf6bcfb5","updated":"2023-01-13 02:14:37.000000000","message":"recheck","commit_id":"163b47a37e08661e18ec789db0875b7e6baf753b"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"2ff39ffbb174ca03a61ca51a6b184ed5e2f3c744","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4be9df3f_e26e7899","updated":"2023-01-13 09:32:06.000000000","message":"patchset2 is to fix error which is found out on Zuul is in unit test code.","commit_id":"558986bea043221419099162597a2c3ba6cdb9ad"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"3102d3bd675df26046018a17f8848e7866d5b33b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"842a001f_e3678d2b","updated":"2023-01-17 14:42:53.000000000","message":"run-storpoolci","commit_id":"54523305fe3aa70c4f7506ccabfd00d6cf5edacc"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"f1c6fdf1bc52f41135479b0c8518339784bc3f45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba51c6fe_426c1809","updated":"2024-01-26 00:39:27.000000000","message":"recheck tempest-integrated-storage and cinder-plugin-ceph-tempest by unexpected API error in nova","commit_id":"f99d4fe329cf37f9cf6914e8b455dc588888c8a8"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"49b4e539710646f2b013e416d8223572f4f514da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1b26bb0d_119c0e87","updated":"2024-02-22 15:27:58.000000000","message":"Looks like this needs a rebase to fix the releasenotes and sqlalchemy-2x jobs.","commit_id":"1057bc47dc0435a3a96a758ee7bfbe1f863881d1"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"c61ddf2df83d23d337f77bbd542f61b8eedd9634","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"be46f533_add43fac","updated":"2024-02-26 04:53:00.000000000","message":"recheck build-openstack-releasenotes and cinder-sqlalchemy-2x","commit_id":"1057bc47dc0435a3a96a758ee7bfbe1f863881d1"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"25e86e6e4dada55366485079453992aee063c338","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4f696d77_d5d91afa","updated":"2024-03-02 06:23:12.000000000","message":"Checked for safety, such as DB access and unintentional affects in core modules, found nothing. Looks good.","commit_id":"16f2c1a2f001c928b9e3adff925f4bf8d52ab8db"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"c2b0deec03fbd731ec2fd0ad2dc926803c4665e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"59426059_5ff15ed0","updated":"2024-02-28 01:32:29.000000000","message":"recheck cinder-tempest-plugin-lvm-lio-barbican failed by time out","commit_id":"16f2c1a2f001c928b9e3adff925f4bf8d52ab8db"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"8a3e44fefa27d6832e1366e60b0f560c0d30020c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"d69f8175_19c02e0f","updated":"2025-10-23 14:34:49.000000000","message":"Minor question and comments about release notes but otherwise LGTM. I\u0027m okay to +1 after those are looked at.","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"22bf17b4d9521bc54fe3de0d744715ff68ff21ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"65cae424_d9949f62","updated":"2025-10-24 05:48:58.000000000","message":"Thank you!  We\u0027ve updated the release notes according to your comments.","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"82523f0e450e8a4c708125b769e1e6061319607a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"dd2b6514_17e27793","updated":"2025-10-24 11:13:17.000000000","message":"Looks good to me. Thanks!","commit_id":"6e3cead95d49599c26292737917b75cc2ad7ce40"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ae5d474851ffaf0a205fbad6561da489193d1e22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"b83dd039_f0e34cca","updated":"2025-10-24 09:48:55.000000000","message":"Thanks for your review Sean!  I hope I\u0027ve addressed your concerns here.","commit_id":"6e3cead95d49599c26292737917b75cc2ad7ce40"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"45d41f9ec66d5e1c3d6b9502ad3e793a32622b43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"ca30cb0b_8dfd92b8","in_reply_to":"bd09865e_ddf641c1","updated":"2025-10-29 22:02:28.000000000","message":"Resolving this now as I think we\u0027re (hopefully) done with rebasing now.\n\nSean, if you could issue back your +2 it would be much appreciated 😊","commit_id":"6e3cead95d49599c26292737917b75cc2ad7ce40"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"3a452f657661f94b8c17dab2e77cf5e6a3cafa75","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":33,"id":"bd09865e_ddf641c1","in_reply_to":"dd2b6514_17e27793","updated":"2025-10-24 14:05:55.000000000","message":"Hi Sean!\n\nI had to create a new patch set because, while I tested the change locally, I hadn\u0027t run pep8 and it failed.  I ran it before uploading this time :-)\n\nIf you could be so kind as to issue us back our +2 once the gate passes I\u0027d be very grateful!  \n\nThank you!","commit_id":"6e3cead95d49599c26292737917b75cc2ad7ce40"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b5f531d989d9b6c389464d28a523dd16c397fa65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"06861910_e03a2102","updated":"2025-10-24 14:24:34.000000000","message":"Ah, I should have caught that pep8 issue. Looks good now.","commit_id":"566108eb18d704af872c1696cfa4123822f77823"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"8cac9308b982b0b3600a0db36d86b0682d609b8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"e5bbb7f8_c9e09725","updated":"2025-10-25 03:44:14.000000000","message":"Update indent size.  While I ran pep8 locally this time, the indent in the web edit apparently isn\u0027t large enough (lol).  Trying this again.","commit_id":"ab88774fe35a94942006d88d7056af5c1ff4d079"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"657db2c8fb99a5404c2ce94e4e070e7caa62819f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"3da6aa6c_47973310","updated":"2025-11-08 00:06:35.000000000","message":"Few questions inline but overall LGTM.\nHitachi CI is passing and I\u0027m sure this has been tested manually since CI jobs won\u0027t be enabling the replication parameters and also won\u0027t have a DR site to test this.\n\nhitachi_ci_fc https://github.com/gamboa-hitachi/Hitachi-CI-Results/blob/main/refs-changes-91-869991-36-fc: SUCCESS\nhitachi_ci_iscsi https://github.com/gamboa-hitachi/Hitachi-CI-Results/blob/main/refs-changes-91-869991-36-iscsi: SUCCESS","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"8ce73cc559dc44f690832246bc84830c33483361","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"3f0e509e_33700a27","updated":"2025-11-08 07:23:52.000000000","message":"Hi Rajat,\n\nThank you again for your review.  I have answered your questions inline!","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"45d41f9ec66d5e1c3d6b9502ad3e793a32622b43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"f13d8979_34a45175","updated":"2025-10-29 22:02:28.000000000","message":"Hopefully no more rebases!","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":37923,"name":"anthony gamboa","display_name":"Anthony Gamboa","email":"anthony.gamboa@hitachivantara.com","username":"anthonygamboa","status":"Hitachi Vantara Software Developer"},"change_message_id":"207c864a4201ac247961c2081020bee6a9bb5ffe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"f8c46aa7_89474d2c","updated":"2025-10-29 01:49:50.000000000","message":"recheck","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":37923,"name":"anthony gamboa","display_name":"Anthony Gamboa","email":"anthony.gamboa@hitachivantara.com","username":"anthonygamboa","status":"Hitachi Vantara Software Developer"},"change_message_id":"20bd58b1ca12b24c95b632b6ca2fe7964d3e06cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"76cf2255_83fef4b1","updated":"2025-10-29 02:25:02.000000000","message":"recheck tempest-integrated-storage","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"5fb589f1d47af052f81e15cfdcad2620542732e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"a4c032d2_8cdc4016","updated":"2025-11-13 19:00:02.000000000","message":"Restoring votes from earlier, merge conflict resolved, no functional changes.","commit_id":"a5643cdc5e2b69abecaff90b3984532295625969"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"7820d221e44a54dd605e5e6520017f1437097afe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"5c2ee4c7_6e491247","updated":"2025-11-13 22:25:15.000000000","message":"recheck timeout errors","commit_id":"a5643cdc5e2b69abecaff90b3984532295625969"}],"cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_replication_fc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"adef6995ca6cc71b7622a961f1ffe787ebbc4ec1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"930ce753_52874719","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"updated":"2025-10-24 08:22:37.000000000","message":"Just 2025?","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ad1b11ebebf217a336fa192072c579a99ae8dcfd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"5c87c3fe_685521f7","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"in_reply_to":"91fd8cfe_c89c97d4","updated":"2025-10-31 16:14:16.000000000","message":"There\u0027s also the argument that copyright lines are useless anyway, and shouldn\u0027t even be used. But the best legal advice I\u0027ve received, other than to not do it, is to just update the range. So it\u0027s a single line of `2022 - 2025`. The only reason to add another line to the file would be to denote another copyright holder.\n\nAlso a nit, but \"Copyright (C) 2022\" is saying \"Copyright copyright 2022\", so really only need the word or the symbol, not both. But that\u0027s something else entirely. :)","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ae5d474851ffaf0a205fbad6561da489193d1e22","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"f8073cd2_c7aa29a8","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"in_reply_to":"930ce753_52874719","updated":"2025-10-24 09:48:55.000000000","message":"I have updated the files to show 2025.","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"8506243d5b5d5b58e7f888bc81cb273e0e5b86cf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022, 2024, Hitachi, Ltd."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"91fd8cfe_c89c97d4","line":1,"range":{"start_line":1,"start_character":22,"end_line":1,"end_character":26},"in_reply_to":"f8073cd2_c7aa29a8","updated":"2025-10-31 16:07:09.000000000","message":"I think the right thing here is to add a line just below with 2025 and the new hitachi name, this way the lineage is clear and there is no copyright information being lost.","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"}],"cinder/volume/drivers/hitachi/hbsd_fc.py":[{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"61617cc7dd267b651fe4422a626f76b4535fea50","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        2.2.2 - Add Target Port Assignment."},{"line_number":77,"context_line":"        2.2.3 - Add port scheduler."},{"line_number":78,"context_line":"        2.3.0 - Add GAD volume support."},{"line_number":79,"context_line":"        2.3.0 - Add UR volume support."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"71e1bc32_7691ffe4","line":79,"updated":"2023-01-25 12:09:19.000000000","message":"Same version as before.","commit_id":"54523305fe3aa70c4f7506ccabfd00d6cf5edacc"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"71f26646f16b91addbf7a6c3576197c4159eed74","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        2.2.2 - Add Target Port Assignment."},{"line_number":77,"context_line":"        2.2.3 - Add port scheduler."},{"line_number":78,"context_line":"        2.3.0 - Add GAD volume support."},{"line_number":79,"context_line":"        2.3.0 - Add UR volume support."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2191f718_1f11a70b","line":79,"in_reply_to":"71e1bc32_7691ffe4","updated":"2024-01-24 05:11:43.000000000","message":"Excuse me to late reply.\nI\u0027ve updated the version in the new patchset 5.","commit_id":"54523305fe3aa70c4f7506ccabfd00d6cf5edacc"}],"cinder/volume/drivers/hitachi/hbsd_iscsi.py":[{"author":{"_account_id":28403,"name":"Naoki Saito","email":"nasaito@nec.com","username":"n-saito"},"change_message_id":"61617cc7dd267b651fe4422a626f76b4535fea50","unresolved":true,"context_lines":[{"line_number":76,"context_line":"        2.2.2 - Add Target Port Assignment."},{"line_number":77,"context_line":"        2.2.3 - Add port scheduler."},{"line_number":78,"context_line":"        2.3.0 - Add GAD volume support."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    VERSION \u003d utils.VERSION"}],"source_content_type":"text/x-python","patch_set":3,"id":"7967d81d_2beae43f","line":79,"updated":"2023-01-25 12:09:19.000000000","message":"You should update version.","commit_id":"54523305fe3aa70c4f7506ccabfd00d6cf5edacc"},{"author":{"_account_id":33473,"name":"Atsushi Kawai","display_name":"akawai","email":"atsushi.kawai.bu@hitachi.com","username":"akawai"},"change_message_id":"71f26646f16b91addbf7a6c3576197c4159eed74","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        2.2.2 - Add Target Port Assignment."},{"line_number":77,"context_line":"        2.2.3 - Add port scheduler."},{"line_number":78,"context_line":"        2.3.0 - Add GAD volume support."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    \"\"\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    VERSION \u003d utils.VERSION"}],"source_content_type":"text/x-python","patch_set":3,"id":"b70bd762_f885b22b","line":79,"in_reply_to":"7967d81d_2beae43f","updated":"2024-01-24 05:11:43.000000000","message":"Excuse me to late reply.\nI\u0027ve updated the version in the new patchset 5.","commit_id":"54523305fe3aa70c4f7506ccabfd00d6cf5edacc"}],"cinder/volume/drivers/hitachi/hbsd_replication.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"adef6995ca6cc71b7622a961f1ffe787ebbc4ec1","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder import exception"},{"line_number":27,"context_line":"from cinder.objects import fields"},{"line_number":28,"context_line":"from cinder.objects.volume import Volume"},{"line_number":29,"context_line":"from cinder.volume.drivers.hitachi import hbsd_common as common"},{"line_number":30,"context_line":"from cinder.volume.drivers.hitachi import hbsd_rest as rest"},{"line_number":31,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils as utils"}],"source_content_type":"text/x-python","patch_set":31,"id":"90e716eb_703cfc04","line":28,"updated":"2025-10-24 08:22:37.000000000","message":"Do not import objects directly, import the module instead: https://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"ae5d474851ffaf0a205fbad6561da489193d1e22","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from cinder import exception"},{"line_number":27,"context_line":"from cinder.objects import fields"},{"line_number":28,"context_line":"from cinder.objects.volume import Volume"},{"line_number":29,"context_line":"from cinder.volume.drivers.hitachi import hbsd_common as common"},{"line_number":30,"context_line":"from cinder.volume.drivers.hitachi import hbsd_rest as rest"},{"line_number":31,"context_line":"from cinder.volume.drivers.hitachi import hbsd_utils as utils"}],"source_content_type":"text/x-python","patch_set":31,"id":"cd870317_492e1071","line":28,"in_reply_to":"90e716eb_703cfc04","updated":"2025-10-24 09:48:55.000000000","message":"Thanks for catching this.\n\nI am now importing cinder.objects.volume as cinder_volume and I changed the one place where \u0027Volume\u0027 was used directly to cinder_volume.Volume.","commit_id":"2b9ecb32da3f07c026b6881613ccffc29262ab32"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"8cac9308b982b0b3600a0db36d86b0682d609b8d","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"                _SECONDARY):"},{"line_number":1017,"context_line":"            provider_location \u003d obj.get(\u0027provider_location\u0027)"},{"line_number":1018,"context_line":"            obj_name \u003d \u0027volume\u0027 if isinstance("},{"line_number":1019,"context_line":"              obj, cinder_volume.Volume) else \u0027snapshot\u0027"},{"line_number":1020,"context_line":"            if not self._active_backend_id:"},{"line_number":1021,"context_line":"                execution_site \u003d utils.PRIMARY_STR"},{"line_number":1022,"context_line":"                ldev_site \u003d utils.SECONDARY_STR"}],"source_content_type":"text/x-python","patch_set":34,"id":"7eed0ab4_2c9e0e64","line":1019,"in_reply_to":"d5b11b53_bef3a24d","updated":"2025-10-25 03:44:14.000000000","message":"\u003e pep8: E121 continuation line under-indented for hanging indent\n\nPlease fix.","commit_id":"566108eb18d704af872c1696cfa4123822f77823"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"657db2c8fb99a5404c2ce94e4e070e7caa62819f","unresolved":true,"context_lines":[{"line_number":361,"context_line":"        if volume in failover_success_volumes:"},{"line_number":362,"context_line":"            volume_update[\u0027updates\u0027] \u003d {"},{"line_number":363,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER}"},{"line_number":364,"context_line":"            for snapshot in volume.snapshots:"},{"line_number":365,"context_line":"                if _get_ldev_site(snapshot) \u003d\u003d _PRIMARY:"},{"line_number":366,"context_line":"                    snapshot.status \u003d fields.SnapshotStatus.ERROR"},{"line_number":367,"context_line":"                    snapshot.save()"},{"line_number":368,"context_line":"        else:"},{"line_number":369,"context_line":"            volume_update[\u0027updates\u0027] \u003d {\u0027status\u0027: \u0027error\u0027}"},{"line_number":370,"context_line":"            if volume.replication_status in ("}],"source_content_type":"text/x-python","patch_set":36,"id":"9fde09e0_dc461dce","line":367,"range":{"start_line":364,"start_character":0,"end_line":367,"end_character":35},"updated":"2025-11-08 00:06:35.000000000","message":"so when we failover a volume, we don\u0027t failover it\u0027s snapshots hence we are setting them to error here?\nIf i create a replicated volume snapshot and revert the volume to that snapshot, will that also revert the secondary volume to the snapshot state?\nAlso leaving the snapshots as it is can be used to create new volumes out of them right? I\u0027m unsure if we really need to set them to error","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"8ce73cc559dc44f690832246bc84830c33483361","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        if volume in failover_success_volumes:"},{"line_number":362,"context_line":"            volume_update[\u0027updates\u0027] \u003d {"},{"line_number":363,"context_line":"                \u0027replication_status\u0027: fields.ReplicationStatus.FAILED_OVER}"},{"line_number":364,"context_line":"            for snapshot in volume.snapshots:"},{"line_number":365,"context_line":"                if _get_ldev_site(snapshot) \u003d\u003d _PRIMARY:"},{"line_number":366,"context_line":"                    snapshot.status \u003d fields.SnapshotStatus.ERROR"},{"line_number":367,"context_line":"                    snapshot.save()"},{"line_number":368,"context_line":"        else:"},{"line_number":369,"context_line":"            volume_update[\u0027updates\u0027] \u003d {\u0027status\u0027: \u0027error\u0027}"},{"line_number":370,"context_line":"            if volume.replication_status in ("}],"source_content_type":"text/x-python","patch_set":36,"id":"f6a6ead4_cd10c35a","line":367,"range":{"start_line":364,"start_character":0,"end_line":367,"end_character":35},"in_reply_to":"9fde09e0_dc461dce","updated":"2025-11-08 07:23:52.000000000","message":"- Yeah, these arrays do not support failing over snapshots as well as the replication pair.  The idea in a disaster scenario should be to fail back once the primary storage is available again.\n- If the volume is still in pair state (which should be the case here), then yes it will also be reverted to the snapshot.\n- Yep, we can create new volumes from snapshots generally.  \n\nThis is from the functional specification from the other team that built this patch:\n    Note 6: Since snapshots created in the opposite system to the switching \n    destination system are inaccessible, set the status to error.\n    \nBasically, from our storage POV the primary system isn\u0027t accessible, which is why it\u0027s failed over and the snapshots are no longer available.","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"657db2c8fb99a5404c2ce94e4e070e7caa62819f","unresolved":true,"context_lines":[{"line_number":513,"context_line":"        self.rep_secondary.conf \u003d self._create_rep_conf(self.conf)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        rep_devs \u003d self.conf.safe_get(\u0027replication_device\u0027)"},{"line_number":516,"context_line":"        if len(rep_devs) \u003e 1:"},{"line_number":517,"context_line":"            msg \u003d utils.output_log("},{"line_number":518,"context_line":"                MSG.DRIVER_INITIALIZE_FAILED,"},{"line_number":519,"context_line":"                config_group\u003dself.conf.config_group,"},{"line_number":520,"context_line":"                param\u003d\u0027replication_device\u0027)"},{"line_number":521,"context_line":"            self.raise_error(msg)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        rep_dev \u003d dict(rep_devs[0])"},{"line_number":524,"context_line":"        if not rep_dev.get(\u0027backend_id\u0027):"}],"source_content_type":"text/x-python","patch_set":36,"id":"d8b7ccd3_d74a5297","line":521,"range":{"start_line":516,"start_character":0,"end_line":521,"end_character":33},"updated":"2025-11-08 00:06:35.000000000","message":"so currently we won\u0027t be able to set more than 1 replication device? I remember you mentioned the 3DC concept that hitachi support but maybe we are not adding support for it here.","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"8ce73cc559dc44f690832246bc84830c33483361","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        self.rep_secondary.conf \u003d self._create_rep_conf(self.conf)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        rep_devs \u003d self.conf.safe_get(\u0027replication_device\u0027)"},{"line_number":516,"context_line":"        if len(rep_devs) \u003e 1:"},{"line_number":517,"context_line":"            msg \u003d utils.output_log("},{"line_number":518,"context_line":"                MSG.DRIVER_INITIALIZE_FAILED,"},{"line_number":519,"context_line":"                config_group\u003dself.conf.config_group,"},{"line_number":520,"context_line":"                param\u003d\u0027replication_device\u0027)"},{"line_number":521,"context_line":"            self.raise_error(msg)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        rep_dev \u003d dict(rep_devs[0])"},{"line_number":524,"context_line":"        if not rep_dev.get(\u0027backend_id\u0027):"}],"source_content_type":"text/x-python","patch_set":36,"id":"3fc5b62b_3021dc49","line":521,"range":{"start_line":516,"start_character":0,"end_line":521,"end_character":33},"in_reply_to":"d8b7ccd3_d74a5297","updated":"2025-11-08 07:23:52.000000000","message":"Yeah, 3DC is a future support item -- I believe for Gazpacho, too.  So for the moment it\u0027s only one.","commit_id":"52c2001a806bfb19d9cfa4f017b67085d4f98e90"}],"releasenotes/notes/hitachi-fix-gad-vol-compatibility-e9c62c18f7a12bc7.yaml":[{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"8a3e44fefa27d6832e1366e60b0f560c0d30020c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":30,"id":"d45b5c9e_9b7830d9","line":8,"range":{"start_line":2,"start_character":0,"end_line":8,"end_character":1},"updated":"2025-10-23 14:34:49.000000000","message":"Why is this release note modified here?","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"22bf17b4d9521bc54fe3de0d744715ff68ff21ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"22c9ec4f_722300e0","line":8,"range":{"start_line":2,"start_character":0,"end_line":8,"end_character":1},"in_reply_to":"d45b5c9e_9b7830d9","updated":"2025-10-24 05:48:58.000000000","message":"\u003e Why is this release note modified here?\n\nGreat question!  I do not know the answer as this particular patch was inherited from another team.  As the other patch has already been merged, I will remove this edit.","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"}],"releasenotes/notes/hitachi-vsp-add-volume-replication-d8079621818cccec.yaml":[{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"8a3e44fefa27d6832e1366e60b0f560c0d30020c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"bf48f6c2_dd07393e","line":3,"range":{"start_line":3,"start_character":21,"end_line":3,"end_character":27},"updated":"2025-10-23 14:34:49.000000000","message":"Added","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"22bf17b4d9521bc54fe3de0d744715ff68ff21ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"bdd7fb75_f4c9d631","line":3,"range":{"start_line":3,"start_character":21,"end_line":3,"end_character":27},"in_reply_to":"bf48f6c2_dd07393e","updated":"2025-10-24 05:48:58.000000000","message":"\u003e Added\n\nThank you!  I reworded to fix these.","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"8a3e44fefa27d6832e1366e60b0f560c0d30020c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * Universal Replicator"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"6dc9479e_2be342e6","line":4,"updated":"2025-10-23 14:34:49.000000000","message":"the following","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38360,"name":"Zachary Mark Raines","display_name":"Zachary Raines","email":"zachary.raines@canonical.com","username":"raineszm","status":"Sustaining Engineer @ Canonical"},"change_message_id":"8a3e44fefa27d6832e1366e60b0f560c0d30020c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * Universal Replicator"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"1f3e2d59_3beab80a","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":18},"updated":"2025-10-23 14:34:49.000000000","message":"this","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"22bf17b4d9521bc54fe3de0d744715ff68ff21ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * Universal Replicator"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"07684c4b_7859cc07","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":18},"in_reply_to":"1f3e2d59_3beab80a","updated":"2025-10-24 05:48:58.000000000","message":"Thank you!  I reworded to fix these.","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"22bf17b4d9521bc54fe3de0d744715ff68ff21ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Hitachi driver:  Adding Volume Replication feature."},{"line_number":4,"context_line":"    When using the feature, it requires following software licenses"},{"line_number":5,"context_line":"    in ``Hitachi Remote Replication``:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * Universal Replicator"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"7cb4d705_6411a1d0","line":4,"in_reply_to":"6dc9479e_2be342e6","updated":"2025-10-24 05:48:58.000000000","message":"Thank you!  I reworded to fix these.","commit_id":"e321670e5d50c42ee527ae9d5ed3520948cb6da3"}]}
