)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":31,"context_line":" - Volume compression"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Implements: blueprint hpe-alletramp-driver"},{"line_number":34,"context_line":"Depends-on: https://review.opendev.org/c/openstack/requirements/+/974322"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I1c8a6087a8cd213ea7fb51b398c2547d5c122baa"},{"line_number":37,"context_line":"Signed-off-by: Raghavendra Tilay \u003craghavendra-uddhav.tilay@hpe.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":71,"id":"7efb9e53_feecd5e8","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":72},"updated":"2026-06-23 19:49:33.000000000","message":"Since this is not a hard dependence for the CI to run, can you remove it so we can have Zuul running in your patch?","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":31,"context_line":" - Volume compression"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Implements: blueprint hpe-alletramp-driver"},{"line_number":34,"context_line":"Depends-on: https://review.opendev.org/c/openstack/requirements/+/974322"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Change-Id: I1c8a6087a8cd213ea7fb51b398c2547d5c122baa"},{"line_number":37,"context_line":"Signed-off-by: Raghavendra Tilay \u003craghavendra-uddhav.tilay@hpe.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":71,"id":"1764e691_a023aea9","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":72},"in_reply_to":"7efb9e53_feecd5e8","updated":"2026-06-26 09:01:00.000000000","message":"Not yet removed from commit message will check in case zuul doesnt work will remove the dependency.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35822,"name":"Senthil Vasudevan","display_name":"HPE AlletraMP FC CI","email":"senthil.vasudevan@hpe.com","username":"senthilv"},"change_message_id":"a4891dbd54fedd23c81aa4f6116eb494f5c5dd6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"766ca727_68c3fee3","updated":"2025-12-12 06:39:33.000000000","message":"run-HPE Storage CI","commit_id":"2baf3f717f014a3c2216f35487fe0c48e5d56c37"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a93d513ffd2cb72d3c11c52aed1318b766200983","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"147bfa8e_da2c22fa","updated":"2026-01-02 09:54:53.000000000","message":"run-HPE Storage CI","commit_id":"b9ca35457644fcd950a819389f8f2388955a57f1"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3fdca87c7da1a0ccdcce2a5401edd066db297d94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"2d244d9c_71b35f51","updated":"2026-01-02 15:34:59.000000000","message":"recheck tempest-integrated-storage","commit_id":"aac43c2a9c5350fb77c16bcdc563f803b4876e00"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7ee1dd69db55300fb943d5ec2c96df483177681f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"737b476c_d37ee1c7","updated":"2026-01-02 14:17:42.000000000","message":"run-HPE Storage CI","commit_id":"aac43c2a9c5350fb77c16bcdc563f803b4876e00"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9558b0b8b9d0c7afe7eeae09407927b9813b3783","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a527e101_23358a93","updated":"2026-01-03 09:26:09.000000000","message":"recheck cinder-plugin-ceph-tempest and devstack-plugin-nfs-tempest-full failed","commit_id":"a381c9363e8827195429bde62f4d11e75ea1da82"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c6aa6b12a78e883aab71a18d44446f0d63b6f21e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5315d61e_1fa29ae2","updated":"2026-01-05 06:31:22.000000000","message":"run-HPE Storage CI","commit_id":"a381c9363e8827195429bde62f4d11e75ea1da82"},{"author":{"_account_id":15439,"name":"Alexey Khodos","email":"akhodos@ddn.com","username":"Alexey"},"change_message_id":"5630ac95821eb5dcc1f76c942706c31315f738e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"17d2af36_071e8b5b","updated":"2026-01-03 20:20:38.000000000","message":"run-vmstore-ci","commit_id":"a381c9363e8827195429bde62f4d11e75ea1da82"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"0d01b89b_6e1c76ba","updated":"2026-01-07 12:51:12.000000000","message":"I\u0027ve added some inline comments, and overall, the driver needs the following corrections:\n\n- Consistent docstrings for the driver\u0027s functions.\n- Consistent logging for the driver\u0027s functions: Ensure that relevant parameter information is always printed at function entries, and, when possible or relevant, at function exits and related information processed in the function. Avoid multiple debug messages when a single message with relevant information will suffice.\n- Proper use of exceptions: Do not raise generic exceptions. Use specific Cinder exception classes like `exception.HostNotFound` or `exception.VolumeDriverException`. Also, try/except blocks should be as minimal as possible and only used for parts of the code that typically perform external interactions (e.g., API calls, file operations, etc.).","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9687140876ccb1b42e92f83e64d281896cfdd131","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"2992f162_9d443e2d","updated":"2026-01-07 14:07:04.000000000","message":"Thanks Erlon. will check review comments.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"d25fd5271228c411587e27ffe0b1a8f0e09fc4c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"3465c688_a123bf86","updated":"2026-01-05 14:34:28.000000000","message":"recheck cinder-plugin-ceph-tempest and devstack-plugin-nfs-tempest-full failed","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9d63899d9d75d12883aba58b044f05f18566ceaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"07491833_05851289","updated":"2026-01-05 09:30:32.000000000","message":"run-HPE Storage CI","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e4acadf4b63cee6dea33d02621815a3665ec10db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"73bfccc1_d3efdfc2","updated":"2026-01-07 04:42:00.000000000","message":"run-HPE Storage CI","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8903b7ad_0f144e83","updated":"2026-01-08 12:43:52.000000000","message":"hi Erlon,\ni tried to address review comments","commit_id":"43f1a211336aaeef66c25b96bb776e81eef5705e"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"60c516755d325d4d228fc54403ca09967ceb643a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"09b312e4_57c9b5b0","updated":"2026-01-10 05:50:44.000000000","message":"hi Erlon,\ni tried to address review comments.\nmay i request to please review again.\nThanks.","commit_id":"3b0def9d9a1f1c1ebce8a87d5df60d98497b40f7"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4a5f6f3e19e98943debd6b68904c166cbef0caf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"3d0fd7e2_90c2fa72","updated":"2026-01-12 05:08:31.000000000","message":"run-HPE Storage CI","commit_id":"3b0def9d9a1f1c1ebce8a87d5df60d98497b40f7"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"1c83b07ca23f0b2eeaa9ce4d49380e52c001b834","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"77cc662f_945b05d9","updated":"2026-01-13 05:14:01.000000000","message":"recheck cinder-plugin-ceph-tempest failed","commit_id":"c0d55fcbfcc99c5ede7d4236cedae55b433866af"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9fc7ed0745652a7643d82350efa911453fbf8c43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"f3ebe538_59f26b40","updated":"2026-01-12 16:13:33.000000000","message":"recheck tempest-ipv6-only failed","commit_id":"c0d55fcbfcc99c5ede7d4236cedae55b433866af"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"d04428af92f4a4fe045bc2e602c275de10101ba9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"08d10d4d_1f6096eb","updated":"2026-01-19 15:40:26.000000000","message":"Please find reply inline","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"870e4910edffb8c813b0f680458d817497ac1d51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"f840f87a_3800b4ad","updated":"2026-01-19 16:14:37.000000000","message":"Thanks Eric \u0026 Takashi. i will check","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b997c68f1825cbf18f0e7c46e65e5308059665dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"35a39497_c2ad42ed","updated":"2026-01-20 12:10:24.000000000","message":"Thanks Eric \u0026 Takashi. i tried to address review comments.\nFor one comment, i have query (mentioned inline).","commit_id":"7bad117f7a40882b1923c0f91ebfc93bcf8a19af"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b12585e38b19c3c953ef0cd776705689f3506dbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"f58a330d_ef167a86","updated":"2026-01-22 14:03:55.000000000","message":"Addressed review comments. Please find replies inline.","commit_id":"154e60a9ab4ee745a8f3165ceed0d967700f16c3"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4345fe62045c1903005325ed521cf113bb62496c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"37da607b_00d9c140","updated":"2026-01-23 04:28:23.000000000","message":"Thanks Takashi. Please find reply inline.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"edc8a759e3cb4860d1ac5f7e0e49c17f18956968","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"615c4be9_49120b12","updated":"2026-01-28 15:38:02.000000000","message":"Thanks Takashi. i will check comments.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c744099293a5693bfe9397eaa28ccc464a58f617","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"d2048ec7_df23f4fd","updated":"2026-01-27 05:04:14.000000000","message":"hi Eric/Erlon/Takashi,\nNow zuul has passed on both requirements patch \u0026 cinder patch.\nRequest to please revisit this patch \u0026 provide approval/comments.\nAs i understand Jan 30th is last date to submit new driver.\nSo, would like to get this patch in soon.\nAppreciate your help.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3929db1a92fa2207bb75a9da7e49308c9590b8d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"a52bce5c_704d403c","updated":"2026-01-29 04:59:06.000000000","message":"hi Takashi,\nPlease find reply to one comment. Will address other two comments soon.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"59c173d7c84b9087fd88e410a6035e15e7d4ca1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"78b03b86_bdd8e9cc","updated":"2026-01-24 04:34:44.000000000","message":"recheck","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7078329e9ce5aaebbac6d658e733c7cfae915084","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"b516a1c3_ab0d1e03","updated":"2026-01-29 10:41:29.000000000","message":"hi Takashi,\ni addressed remaining two comments. Thanks.","commit_id":"f5d64080748bb6e0f7ce0de56876e3a47ade7db3"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b6c1732b96b5e0d82e893ee1668d314dd78ddc2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"2ed15341_ea6176c6","updated":"2026-01-29 15:59:15.000000000","message":"recheck cinder-plugin-ceph-tempest failed","commit_id":"48f6c4b1eedd2b6dcdb243b4aad1a9b434078e67"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3ed9fd06c4c052f99ff87cdbc58d38fa59119876","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"32b24645_37211243","updated":"2026-01-30 14:28:14.000000000","message":"recheck grenade failed","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"4c1cc4acce4722ccc32a2ba72460e7b8ca43c412","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"b37d961a_d2536c7c","updated":"2026-02-04 13:55:39.000000000","message":"Hi, please consider my comments below. Also I didn\u0027t see the Allegra CI (iSCSI + FC) in the runs. That is a blocker to get this accepted.","commit_id":"6ad93c3cea58f987bd38e4e74ef8a939863e6f12"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"066fabab4cf6ce947c4590d674a8a8c66df239ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"7971f9da_2b99ab92","updated":"2026-02-04 15:36:22.000000000","message":"Thanks Erlon.\nThe iscsi CI did pass on Feb 03 at 01:12am India time (i.e UTC + 05:30).\nWe are working on FC CI. will run it soon.","commit_id":"6ad93c3cea58f987bd38e4e74ef8a939863e6f12"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"522f25743b06365bd322f157df5c46418d5cc762","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"463bfc8c_ded796fb","updated":"2026-02-02 17:13:06.000000000","message":"Thanks Takashi. Please find replies inline.","commit_id":"6ad93c3cea58f987bd38e4e74ef8a939863e6f12"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9e840081052d29f683f514bc4c8ff7f4f77b0e21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e7c91437_600d4033","updated":"2026-02-06 14:47:05.000000000","message":"Thanks Takashi","commit_id":"10cfbb886ef9f57dc4577d0b9dcdee8b92f77484"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"78760c15b4eafcd01f4c230592c1af95d8df2bda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"2dc33994_82040d4e","updated":"2026-02-05 12:10:49.000000000","message":"hi Erlon,\nTried to address review comments. Please find reply inline. Thanks.","commit_id":"10cfbb886ef9f57dc4577d0b9dcdee8b92f77484"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e6df776a698748cca3a2082a187dfd29c217b88f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"0be24da1_4bd2c427","updated":"2026-02-09 12:52:36.000000000","message":"hi Takashi,\ni tried to address review comment. Please find reply inline","commit_id":"a7e02f1ba070d217bab5a6e908a0a5a1a9cbdfb7"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a3b2f598aaff3dc7ec65ce62b4e19703b8641960","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"49f27c11_29e8039c","updated":"2026-02-09 16:01:54.000000000","message":"recheck openstack-tox-py313 and openstack-tox-docs failed","commit_id":"a7e02f1ba070d217bab5a6e908a0a5a1a9cbdfb7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bc2cd15ef080f62209b5a94bf20c42aadab33793","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"73ff5e99_0cfdb4f4","updated":"2026-02-10 14:54:54.000000000","message":"I don\u0027t see third-party CI for HPE Alletra MP responding on this patch?  Am I just missing it?  Please let us know the CI situation, because it\u0027s going to be difficult to get people to dedicate review time to a big patch like this if the CI isn\u0027t ready, since the patch cannot be merged without third-party CI.","commit_id":"605d166061d7410353b52d78e5297b5a9cf9255d"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e0d5e413e1c402c122b51dc4b905adb9ac7ac95f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"3fea88c9_a0de9700","updated":"2026-02-11 13:53:43.000000000","message":"CI logs available at:\nhttps://github.com/hpe-storage/hpe_cinder_logs/blob/master/new_logs/969373\nhttps://github.com/hpe-storage/hpe_cinder_logs/blob/master/new_logs/969373/etc/tempest_log.log","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5050f30e203ba1c19888a994910b75a799346689","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"ec6e78e1_01082f35","updated":"2026-02-11 13:54:30.000000000","message":"Thanks Brian.\nThe HPE Storage CI (iscsi) got passed (latest today) at 18:48 hours India time.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9b769d349f840078a8e4b9e891c376315400b80e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"926f6c42_040a492c","updated":"2026-02-12 09:40:31.000000000","message":"Thanks Eric. i addressed review comment.","commit_id":"7c81173b136a6614dff89c5eae24f5ca11cc7c8b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"b8e72832_83d07496","updated":"2026-02-13 12:21:10.000000000","message":"Hi folks,\n\nPlease consider my comments inline. I would also like to ask you to search through the code for similar occurrences of the errors I’m pointing out. For example, if I mention duplicate debug messages, ensure there are no instances of that error in the remaining code. This way, we can avoid multiple reviews addressing the same kind of issues. And we speed up the process.","commit_id":"cc5a56454455ff9d4be204ea87fe3ccf018f9c99"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"e7248e1b_20f08552","updated":"2026-02-13 13:41:05.000000000","message":"Thanks a lot Erlon for detailed review.\ni tried to address comments. Please find replies inline.","commit_id":"c5792c3fac7195825c9e4974901498428b5efeb6"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a15cbf7079dcb2e219c95d860ea9d25eb0665f85","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"97a0d6b8_96ddb6a5","updated":"2026-02-13 16:03:38.000000000","message":"Please find additional two replies inline.\nCode review comments addressed in latest patchset i.e PS 37","commit_id":"1abd26c259b237e0083f8d66a24fad44a8f753aa"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"1a98e6a89b297d8823869ce66b64b00f9e6165de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"cc725410_fc6fcda1","updated":"2026-02-17 07:01:46.000000000","message":"Thanks Eric. i tried to address review comment","commit_id":"a2ccc13a209a36d9c6c21a1854a029861292433b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"193e09fdb5423ff0e6ea43345c89b5485fa72ecd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"d953e545_76723d1e","updated":"2026-02-18 12:31:08.000000000","message":"run-HPE NVMeTCP CI","commit_id":"9b6ef7aa448402ff401f842c667924355167232a"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a83117860127ba6a5e8b8bb3077026a0310b7b8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"685b17f4_e6133467","updated":"2026-02-18 15:16:38.000000000","message":"CI names are: HPE STORAGE CI (3par-iscsi-driver), HPE Storage FC CI (hpe-fc-driver) and HPE NVMeTCP CI (hpe-nvmetcp-driver).\nUpdated the same in etherpad also.","commit_id":"68826890979cf4ae51950182fd3c77ee4e4c2f2b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"d15e72bb852894f71bc2ed4556a780ca1c8fde72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"1134853b_b32ae44b","updated":"2026-02-20 14:26:32.000000000","message":"As per comments in requirements patch [1], the flowkit library should be opensource.\n[1] https://review.opendev.org/c/openstack/requirements/+/974322\n\nWe are checking internally for approvals to make flowkit library as opensource.\nSo holding the patch for sometime.","commit_id":"044db1b04b7af4b5e7d44e184b24fb4969889cad"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"55c1e51145b37f5140e03d9e6cf32fae21858580","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"65150597_87f24365","updated":"2026-02-20 04:03:37.000000000","message":"hi team,\nreally sorry. we have to hold this patch.\nThanks a lot for all the reviews.","commit_id":"044db1b04b7af4b5e7d44e184b24fb4969889cad"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3b0f14dfd484887f615bc0ef380d17654fe21137","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":47,"id":"be928653_34b68a63","updated":"2026-03-31 07:35:45.000000000","message":"recheck - zuul has now passed on requirements patch","commit_id":"1ca31735226ee2d4b9fdc972eb76bd37e9ea1515"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"6f640aa2db00d442fd8c4e99ada5270407d6e279","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"96175048_0a4ec3e1","updated":"2026-04-04 08:44:24.000000000","message":"recheck devstack-plugin-nfs-tempest-full","commit_id":"16ec85ebb1c8ba2dd22c32cdb8ead40d41b64b5e"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"41e3e8109ea244574f4026d2a3fd71731ae42b47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"ccfd360f_e4daa34c","updated":"2026-04-09 06:32:08.000000000","message":"FC CI log:\nhttps://github.com/hpe-storage/hpe-ci-log/blob/main/logs/969373/etc/tempest_log.log","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"dc0f22d5_d6d4a7d7","updated":"2026-04-10 03:56:37.000000000","message":"Just got started reviewing, but there are a few things you can address.  I\u0027m not sure that the driver options are being handled correctly.","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"29b56ecf29749980dbb085c8ff5abdd4f02c028b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"08d56b1f_3fbfd6db","updated":"2026-04-09 06:34:11.000000000","message":"NVMe CI log:\nhttps://github.com/hpe-storage/hpe-nvmetcp-ci-logs/blob/main/new_logs/969373/etc/tempest_log.log","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"404b0f58f2959494b2d114d6a29ed5e483d49a2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"48f9e763_e1275768","updated":"2026-04-09 16:11:00.000000000","message":"The dependency is a change to the requirements repo; it has not been merged yet, but it looks like all the requirements reviewers\u0027 questions/comments have been addressed, so I don\u0027t think it\u0027s a reason to delay reviewing this new driver patch.","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c35496c4441614fa01b62ef78c1f8aa06ca3802f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"3e45fa31_70952277","updated":"2026-04-09 03:37:13.000000000","message":"iSCSI CI log:\nhttps://github.com/hpe-storage/hpe_cinder_logs/blob/master/new_logs/969373/etc/tempest_log.log","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"6d5127d5a3c6b436155210a421314f71399645ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"0de7c904_82e7c4fb","updated":"2026-04-08 14:24:05.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"51ae1320a8fbdc24d0752abb0750f195f474c708","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"1bbf9626_99edc2ee","updated":"2026-04-07 11:06:14.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"697692d3aad7730cc7e2fb44889353a9d3fa5be1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"2638f6fa_46dd2d8c","updated":"2026-04-08 12:42:59.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9e74b19de2565353db3deee57007def0de0167a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"2f3554cc_dabb2a4c","updated":"2026-04-07 04:33:32.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e764f5c4ee2c9178bff6604d50380bd1ecfc9882","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"3bbe398a_00548c81","updated":"2026-04-09 04:22:02.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"f6c87bb07d65001392762c1a1e06c2daa8b08f54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"5d78db74_48dc276a","updated":"2026-04-07 11:54:20.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"89c191ad43f0b369e491ac680a0003933312370e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"85f71e34_d0f1c3be","updated":"2026-04-09 03:41:30.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a9d6f2e130f31a1b18f7db794725c0e237bb963a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"a223075d_9e4a9300","updated":"2026-04-08 11:28:56.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"bd1c29f7dfe689c9755503b5e7a8478add9bac6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"c6f1ed6e_9d2d0864","updated":"2026-04-07 09:38:51.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a7d5448f9eb40f1d1dbb24d6883f6401bb3e6790","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"fdea6502_d32ea9b1","updated":"2026-04-08 06:24:38.000000000","message":"run-HPE FC Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"6b4400cc21461b30028ba2e785120c7bbf62375b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"50b29484_97b076c4","updated":"2026-04-08 09:03:58.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"879f3ccd71443633d12541acea90ab1dc4a63fe4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"9f971eab_985b7034","updated":"2026-04-08 15:37:38.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3b3fdcdfce4bbd99a44ca5a350e3222b7ec06484","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"ae4064ad_dbd9125c","updated":"2026-04-09 04:45:30.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a0ddb40e8655eec8068b67149e2ca60516d05d10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"16aa99f6_1543f78d","updated":"2026-04-07 09:48:07.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e3355b96445f4d6d6015efbc17d0e9f1a00befa9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"1ed2e889_3b09f8d2","updated":"2026-04-08 12:34:38.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"309942c24c363da137e6cdf07351a1d19e708458","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"4a042c4e_7f618539","updated":"2026-04-08 08:09:35.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fa2c43b03f64310cf76225fc3fa77344db971b5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"61e0c2d8_30948422","updated":"2026-04-08 14:11:43.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"04c0a19f8d299f3160123a982cb2d5688df69fc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"b0782898_df2d8690","updated":"2026-04-08 10:22:49.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"1260a12dbbd2a354faf7335c15fd5e0bd766acf2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":52,"id":"b5feb9a8_e8785384","updated":"2026-04-07 11:26:26.000000000","message":"run-HPE Storage CI","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c959c18f65fd64c4a0fd73dc2029d4637a097716","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"e4d49825_faea0ad6","updated":"2026-04-14 15:47:01.000000000","message":"FC CI log:\nhttps://github.com/hpe-storage/hpe-ci-log/blob/main/logs/969373/etc/tempest_log.log","commit_id":"a6de1861b4ac3418371a799d5dd5d9ee90e3ca96"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"58febc3ba64857edaca513cc681d0900b4e899e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"b762f239_6ce6ef65","updated":"2026-04-15 12:36:47.000000000","message":"FYI this patchset will no longer pass pep8 checks after https://review.opendev.org/c/openstack/cinder/+/977147 merges shortly, and will need an update.  (You can rebase on top of that patch to test this.)","commit_id":"a6de1861b4ac3418371a799d5dd5d9ee90e3ca96"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"8a6e88b7_79878355","updated":"2026-04-10 06:17:25.000000000","message":"Thank you Brian for review.\ni tried to address comments. Please find replies inline","commit_id":"a6de1861b4ac3418371a799d5dd5d9ee90e3ca96"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"81c67889ce36dcb7f589f42e3aac15d40280e958","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"2b74c40f_2d603d05","updated":"2026-04-16 16:21:51.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"a6de1861b4ac3418371a799d5dd5d9ee90e3ca96"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"926848d5e2aaea86e8851c8ea25eff8705dfe58b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":55,"id":"a63895cf_fdc7f800","updated":"2026-04-17 13:46:32.000000000","message":"recheck tempest-integrated-storage failed","commit_id":"71fe5fa404d0312d0f998fb478bb5eae67aa38a4"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5e2e9b04325e267cb20ea0803d7a48e8ef4d1149","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":56,"id":"272adb44_4a894bd0","updated":"2026-04-22 17:05:27.000000000","message":"Looks like most of this driver is simply a shim for the real code existing in an external library.  I\u0027d like to see a better separation of the client and the driver such that the majority of the work being done is in the driver and the client is only an exposure of the main APIs of the storage backend.","commit_id":"395b68ea2f3249dd8807b892a0f799ab55d69432"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"ecd5ee904d1cc4c946e18acc2cadd763cd48058e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":56,"id":"4c32055a_a2e4b2a8","in_reply_to":"272adb44_4a894bd0","updated":"2026-04-29 12:15:47.000000000","message":"Apologies for delayed response. We were not aware of the design, that we cannot move the cinder specific code in external lib/sdk. But we have now understood the reason for same from all the reviewers during PTG meeting. We are working on it and will update on this in next week. Thanks for your feedback.","commit_id":"395b68ea2f3249dd8807b892a0f799ab55d69432"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"7a7672d7b0088260ab96ca659dafd846ad32537a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":58,"id":"66b6b75d_1c23e3cb","updated":"2026-05-13 14:24:38.000000000","message":"recheck","commit_id":"beb620cb8648d5dee4644a13a77f1be5a5c1f48a"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"35cce0f35b2d8ab95a87e4760ae2cfa155e644f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":59,"id":"23cad9dc_39a2d5a9","updated":"2026-05-14 10:41:48.000000000","message":"recheck","commit_id":"020ba6d60672a1a892238ea31d735d92d7e258b5"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"76bf0182e408c68e9b554e6d2f43751ba0610ca5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":59,"id":"5c4a4052_f3e9e475","updated":"2026-05-15 11:37:58.000000000","message":"recheck","commit_id":"020ba6d60672a1a892238ea31d735d92d7e258b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7573b8c9e02711e3c7f0bbc6893f532b4955226f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":59,"id":"830fceba_ca9c1cb5","updated":"2026-05-19 09:23:38.000000000","message":"run-HPE FC Storage CI","commit_id":"020ba6d60672a1a892238ea31d735d92d7e258b5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"be6243c12e096997cdbc50480e3aafe6c0b80ab8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":60,"id":"ec786bdd_b72d774c","updated":"2026-05-21 18:09:07.000000000","message":"The openstack-tox-docs job failure is related to the changes made here:\n   No module named \u0027hpe_storage_flowkit_py\u0027","commit_id":"7ba1d335b052761e416cf14f0bf04f3382d87a89"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"76618d104cdc26b82a9c9d919a89d403062c9b9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":61,"id":"af81f610_c3fa3c89","updated":"2026-05-22 06:29:22.000000000","message":"Fix for openstack-tox-docs job failure","commit_id":"4e7c8588448b6ce209817cc8998863b3dceaca34"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"ed49d29661b07a39732c377e5ea53baa4a4f1aee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"d9c39cc2_dd5e98ff","updated":"2026-06-01 16:55:12.000000000","message":"@eharney@redhat.com @rosmaita.fossdev@gmail.com @waboring@hemna.com May I request all the core reviewers to provide feedback on the new driver patch.","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"f1fe132c071a954af32ca35e5b8828f06f8d6cd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"5777f9cd_a52912af","updated":"2026-05-25 08:49:42.000000000","message":"Hi Eric/reviewers, the below tests have passed:\nopenstack-tox-pep8\nopenstack-tox-py311 \nopenstack-tox-py313 \nopenstack-tox-py314\nopenstack-tox-docs\n\nMay i request to please review. Thanks.","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f90437c4378b50a03ab94d34235e9640a0e944b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"d0ef6d9a_d591d555","updated":"2026-06-02 21:48:08.000000000","message":"recheck recheck tempest-slow-py3 - tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerMigrationWithHost.test_server_connectivity_live_migration : something bad happened to the instance","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"682a1543fead75239aaa2fccbb833515ccb56707","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"532c27ce_f3ebf254","updated":"2026-05-27 13:33:47.000000000","message":"run-HPE FC Storage CI","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"2237e62a05df7a63fab33538b5f271eb68369f0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"829b7cd0_4b20e2b8","updated":"2026-05-27 16:04:12.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"5924f8dd96b1bd65eba6ec5e0006ecddb80bda49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"0ec18bd9_9bc81fa6","updated":"2026-05-27 07:22:49.000000000","message":"run-HPE Storage CI","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"dac4ff57602fc0df981b130e8c6563aabf1469fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"b06e67fc_f8799750","updated":"2026-05-27 12:14:07.000000000","message":"run-HPE Storage CI","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"ea2a8750cbb817de6fc58a301d73c1c154d46903","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"b0ca21fb_a7a9551b","updated":"2026-05-26 07:33:13.000000000","message":"run-HPE Storage CI","commit_id":"1d9d02d69d11921a16abacec94b39b6396c86a02"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"95c4a34687414555eadb4339c6f92573bb79b658","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"c8c85b94_98071cd5","updated":"2026-06-03 10:51:33.000000000","message":"Updated patch with hpe-storage-flowkit-py version to 0.9.1","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"49c16282a13a4a516ad47fc1ec2230559065387c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"45d586ca_06dbf322","updated":"2026-06-04 07:34:42.000000000","message":"@jayaanand.borra@netapp.com Addressed all the review comments","commit_id":"6ee1afd7ce43dd1e3306e8a96983d8a6b699cd41"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2d200e19e30a34ba8ebeb0d4a9e18698ebf35fb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":66,"id":"4990187a_64cc0ffd","updated":"2026-06-09 07:03:51.000000000","message":"Addressed review comments. Request @eharney@redhat.com and @jayaanand.borra@netapp.com to re-review the patch and provide feedback","commit_id":"946800196f69a2fec17455b94a97849c04dee997"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8f776eb98cd56099558fde25b5ceb05c7e5cf608","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":67,"id":"3b8a75d5_96d9862d","updated":"2026-06-09 09:04:04.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"e9a22837445daa6fae97101dbe172a0370f9b1af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":67,"id":"6b464396_ff6f8e0c","updated":"2026-06-11 05:05:03.000000000","message":"run-HPE Storage CI","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"54146404d1fcfa55015e130cb8d1dea491973570","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":68,"id":"56e47c27_b65e3947","updated":"2026-06-16 07:08:44.000000000","message":"@eharney@redhat.com thanks for feedback. We have addressed the comments","commit_id":"7f0d930dec4fc3cff9b4e4faa5ed11562881bfee"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"38cd5f9a1f18de942d1e1bbd84ec67f07b0f192e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":68,"id":"176e188b_e9e1e7c7","updated":"2026-06-16 10:27:38.000000000","message":"We would like to address the changes in subsequent later PRs","commit_id":"7f0d930dec4fc3cff9b4e4faa5ed11562881bfee"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8c89bc5dc4073b123d487713600fe95020d7ea72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":69,"id":"ec59532e_d85f6e95","updated":"2026-06-17 15:01:06.000000000","message":"Raising the priority to make sure this patch gets some visibility.","commit_id":"f22046b1899607631b28f167a3c0ce76d3089409"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"c8a56a84c8167b70255a7ba3d96d09e6fbf886a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":69,"id":"48bada77_6ed6cfef","updated":"2026-06-16 11:08:34.000000000","message":"We understand the distinction regarding what follows the osv prefix. However, our application logic only requires validating that the string starts with the specified prefixes. The current implementation has been in place for over a decade, both in 3PAR and the newer Alletra MP driver, and has undergone extensive testing in production environments.\nGiven its long-standing stability and proven behavior, we prefer not to introduce changes at this stage. That said, we will certainly keep this consideration in mind for future enhancements or refactoring efforts.","commit_id":"f22046b1899607631b28f167a3c0ce76d3089409"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"c2bfc2890364ffd46530ab0065e88ded5b86c5f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":71,"id":"4a81d20d_0ed79b13","updated":"2026-06-18 06:02:02.000000000","message":"Addressed merge conflict","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":71,"id":"67c4759c_7f68c91d","updated":"2026-06-23 19:49:33.000000000","message":"Hi folks,\n\nI\u0027m giving this driver another round of review. The major concern here is that the alettra_service.py doesn\u0027t have any unit tests. We need to fix that. I placed some other comments through the driver. For each comment, please verify throughout the code to make sure that there\u0027s no other occurrences of that issue!\n\nIn summary this is what I believe it\u0027s needed for this driver to be ready:\n\n- address the comments I mentioned, especially the unit tests;\n- have zuul running;\n- have your 3rd party CI running in *all* protocols you support (FC, iSCSI, NVME);\n\nErlon","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"3ada297c4963d58fcd7052949b1b8869ec13ea6e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":71,"id":"70a07753_d6e5f870","updated":"2026-06-24 12:29:51.000000000","message":"Thanks Erlon for your valuable feedback and sharing consolidated feedback. Much Appreciated!! We have acknowledged your feedback and will update the patchset soon.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"87c323a4833af2a3aad9e0cc2137036253994807","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":71,"id":"b368dfa3_674ec852","in_reply_to":"70a07753_d6e5f870","updated":"2026-06-24 12:35:04.000000000","message":"We have 2 queries regarding feedback: 1) The number of characters on the titles should match (rst file) do you mean to match the title with commit message title? 2) \"Since this is not a hard dependence for the CI to run, can you remove it so we can have Zuul running in your patch?\" - Earlier we had received comment from reviwers (Takashi) to add dependnecy in commit message. We have Zuul and CI run earlier and passed even if we have dependency on requirements patch.So can you confirm if you still think we should remove it? Please confirm","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"bb85dabfe4845efc9e0cce2f88eaa685fc7bbfa1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":71,"id":"d7221e8a_b67ba2c2","in_reply_to":"b368dfa3_674ec852","updated":"2026-06-24 15:50:53.000000000","message":"Yes, that should be:\n```\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nHPE Alletra MP Driver\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n```\nJust a nit, but it breaks the rst building.\nThe end goal is to get the Zuul to pass, since I was seing this error: This change depends on a change that failed to merge.\n\nI assume that, removing the dependency would solve the problem. Honestly I don\u0027t understand why that message is showing up since that patch seems correct, and doesn\u0027t have any more conflicts.\n\nSo, you can keep the dependency if you can figure out other ways to get Zuul to +1.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2683e7809d8d1726c46d5c7dc1378be2a16941f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"1b63ad6b_8824db3e","updated":"2026-07-13 14:23:49.000000000","message":"Addressed review comments from Brian","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"57289768c1a0d2b5d53f34eb84c3305c03c2e26f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"b1e09dcb_d25818e3","updated":"2026-06-26 08:56:56.000000000","message":"Addressed the review feedback from Erlon","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0e9b49b02a5dec81f6e1defbf0588d630995083e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":72,"id":"5a4e7a66_49483d02","updated":"2026-07-10 22:14:29.000000000","message":"Can you please sort out the CI situation?  There are 6 different HPE AlletraMP responses, with a mix of success and failure, and it\u0027s not clear what we should be paying attention to.  On Patch Set 72:\n\n```\n1. HPE AlletraMP iSCSI CI ... failed\n2. HPE AlletraMP CI\n   in comment: HPE AlletraMP Jenkins iSCSI CI ... succeeded\n3. HPE AlletraMP CI\n   in comment: HPE AlletraMP Jenkins NVMe/TCP CI ... succeeded\n4. HPE AlletraMP FC CI ... build succeeded\n5. HPE AlletraMP CI\n   in comment: HPE AlletraMP Jenkins FC CI ... build succeeded\n6. HPE AlletraMP NVMeTCP CI ... failed\n```","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2e92f944f3b8faa74fbe617d9ba91b5dbfd8d64d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"b24f14c3_f894fa7c","updated":"2026-07-10 22:45:27.000000000","message":"I think the code and tests are basically OK; the -1 is for confusing multiple CI responses and the lack of wiki pages for them (see comment inline).","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"9673b2789c45537e20ba54338f1f77886fc4bd98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"67127d08_d89ec3c3","updated":"2026-07-15 04:41:52.000000000","message":"May I request @erlon.rodrigues.cruz@canonical.com / @eharney@redhat.com to provide +2 and bless new driver to get merged. Thanks and appreciate your patience and support in reviews.","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ecc45a37e5d453d244a455fad77944f320adca4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"1b000f21_fb509c9c","updated":"2026-07-14 16:11:27.000000000","message":"My concerns have been addressed.","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"d03ccee725d7d9aa207e98a50d2b3acf6528f995","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"67023d4c_545416a9","updated":"2026-07-15 04:39:51.000000000","message":"Thanks Brian for giving +2. Its been long way and would like to appreciate your patence and support during reviews.","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9b7499afdd78a010606cf7cf6a3a6fb213271584","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"5a608912_e0e690e2","updated":"2026-07-20 15:00:18.000000000","message":"recheck\n\nget code-coverage results","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"4ea4642a1d06af1b53b7716cc881811e0acf11d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"84a6bd8a_095a47f5","updated":"2026-07-13 10:35:57.000000000","message":"run-HPE FC Storage CI","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"740c2580a5618e34f1958d386c92b9040e824d5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"d798543c_13d7ad08","updated":"2026-07-13 12:35:32.000000000","message":"run-HPE NVMeTCP Storage CI","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"1d12c62ae9da1a1137c5b578d1310c106a95c66f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"59823fa1_82e8a707","updated":"2026-07-13 11:34:20.000000000","message":"run-HPE Storage CI","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2683e7809d8d1726c46d5c7dc1378be2a16941f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":72,"id":"f44cb66c_0e75977a","in_reply_to":"5a4e7a66_49483d02","updated":"2026-07-13 14:23:49.000000000","message":"We are now running only 3 CI\u0027s namely HPE AlletraMP FC CI, HPE AlletraMP iSCSI CI and HPE AlletraMP NVMeTCP CI now. Earlier we had 6 CIs as 3 were old CIs running on using Zuul and node pool where as now we have transitioned the CIs to Jenkins pipline and decommissioned the old ones. So going forward we will be running only 3 CIs as mentioned. We have retriggered the CI again and all are running fine.","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2d6a10bfd3fbc8f0d9937e8dcd9bcf8eeda41cca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"b6aa0553_9c2870a1","updated":"2026-07-21 04:54:07.000000000","message":"@eharney@redhat.com can you please take a look, we have addressed your feedback.","commit_id":"4b6962f07417f96927036c43fd2a04d785008233"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"41324b2590f91577273cae643f197a730473bb3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"b15843aa_eac9d703","updated":"2026-07-23 03:34:19.000000000","message":"@erlon.rodrigues.cruz@canonical.com I have responded to your query, Please have a look.","commit_id":"4b6962f07417f96927036c43fd2a04d785008233"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"6d90fdcfd08382eb0440306576fd4d7961f189d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"16912911_b4c627a4","updated":"2026-07-22 15:47:49.000000000","message":"Hi folks,\n\nEverything looks good from my perspective. I just have a question regarding the cinder/opts.py changes that were removed in patchset 71. Can you explain why it was there, what its purpose was, and why it was removed?\n\nErlon","commit_id":"4b6962f07417f96927036c43fd2a04d785008233"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"bcee7a0d560a430ef8529a0b646cbb6d11b610bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"522b545f_0d46f634","updated":"2026-07-21 14:14:58.000000000","message":"Thanks a lot Eric Harney for quickly responding with feedback and +2. \nMay I request Brian as well to provide +2 once again we lost the previous feedback from you.","commit_id":"4b6962f07417f96927036c43fd2a04d785008233"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"fa7313898ddfebeed52ce0fa3bc0b5872d88c46d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":73,"id":"e5c10dfb_8a2b59dc","updated":"2026-07-21 08:14:23.000000000","message":"We need attention from reviewers now, after addressing Eric\u0027s feedback we have lost previous reviews +2 from Brian and +1 from Jayannand. I request reviewers to please provide review points to this patch again.","commit_id":"4b6962f07417f96927036c43fd2a04d785008233"}],"cinder/opts.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"6d90fdcfd08382eb0440306576fd4d7961f189d1","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    cinder_volume_drivers_hitachi_hbsdrest"},{"line_number":113,"context_line":"from cinder.volume.drivers.hitachi import hbsd_rest_fc as \\"},{"line_number":114,"context_line":"    cinder_volume_drivers_hitachi_hbsdrestfc"},{"line_number":115,"context_line":"from cinder.volume.drivers.hpe import alletramp_service as \\"},{"line_number":116,"context_line":"    cinder_volume_drivers_hpe_alletrampservice"},{"line_number":117,"context_line":"from cinder.volume.drivers.hpe import hpe_3par_common as \\"},{"line_number":118,"context_line":"    cinder_volume_drivers_hpe_hpe3parcommon"},{"line_number":119,"context_line":"from cinder.volume.drivers.hpe import nimble as \\"}],"source_content_type":"text/x-python","patch_set":71,"id":"dad41dac_253eb627","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":46},"updated":"2026-07-22 15:47:49.000000000","message":"Is there any reason why you remove these in patchset 71?","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"41324b2590f91577273cae643f197a730473bb3f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    cinder_volume_drivers_hitachi_hbsdrest"},{"line_number":113,"context_line":"from cinder.volume.drivers.hitachi import hbsd_rest_fc as \\"},{"line_number":114,"context_line":"    cinder_volume_drivers_hitachi_hbsdrestfc"},{"line_number":115,"context_line":"from cinder.volume.drivers.hpe import alletramp_service as \\"},{"line_number":116,"context_line":"    cinder_volume_drivers_hpe_alletrampservice"},{"line_number":117,"context_line":"from cinder.volume.drivers.hpe import hpe_3par_common as \\"},{"line_number":118,"context_line":"    cinder_volume_drivers_hpe_hpe3parcommon"},{"line_number":119,"context_line":"from cinder.volume.drivers.hpe import nimble as \\"}],"source_content_type":"text/x-python","patch_set":71,"id":"8b8b5bd5_ac706bab","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":46},"in_reply_to":"dad41dac_253eb627","updated":"2026-07-23 03:34:19.000000000","message":"The cinder/opts.py change was initially added as we thought that it was needed for driver registration- but later we understood that it was not required, as the Alletra MP driver already registers and reports its options through its own do_setup and get_driver_options() methods. We removed it to avoid duplicate/global option registration and to keep the driver-specific option handling local to the Alletra MP driver","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"}],"cinder/tests/unit/volume/drivers/hpe/fake_hpe_flowkit_exceptions.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"\"\"\"Fake HPE Storage exception to use when mocking HPE stroage flowkit.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class HPEStorageException(Exception):"}],"source_content_type":"text/x-python","patch_set":15,"id":"2b909416_6905f136","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":61},"updated":"2026-01-07 12:51:12.000000000","message":"storage","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"\"\"\"Fake HPE Storage exception to use when mocking HPE stroage flowkit.\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class HPEStorageException(Exception):"}],"source_content_type":"text/x-python","patch_set":15,"id":"0f8eed0f_6f8b4c2a","line":16,"range":{"start_line":16,"start_character":54,"end_line":16,"end_character":61},"in_reply_to":"2b909416_6905f136","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"}],"cinder/tests/unit/volume/drivers/hpe/fake_hpe_storage_flowkit.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":45,"context_line":"flowkit_src \u003d mock.Mock()"},{"line_number":46,"context_line":"flowkit_src.cinder_client \u003d hpecommon"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"print(\"fake_hpecommon: \", fake_hpecommon) # noqa"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"flowkit_src_core \u003d mock.Mock()"},{"line_number":51,"context_line":"flowkit_src_core.exceptions \u003d flowkit_exceptions"}],"source_content_type":"text/x-python","patch_set":15,"id":"69e7528a_4c591a50","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":48},"updated":"2026-01-07 12:51:12.000000000","message":"Remove these prints","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":true,"context_lines":[{"line_number":45,"context_line":"flowkit_src \u003d mock.Mock()"},{"line_number":46,"context_line":"flowkit_src.cinder_client \u003d hpecommon"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"print(\"fake_hpecommon: \", fake_hpecommon) # noqa"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"flowkit_src_core \u003d mock.Mock()"},{"line_number":51,"context_line":"flowkit_src_core.exceptions \u003d flowkit_exceptions"}],"source_content_type":"text/x-python","patch_set":15,"id":"a1adadfe_b26e3575","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":48},"in_reply_to":"69e7528a_4c591a50","updated":"2026-01-08 12:43:52.000000000","message":"If i remove this print, then zuul reports error. So kept it.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0674b2a1771fab07f26ac2affa9e6f786f298fdd","unresolved":true,"context_lines":[{"line_number":45,"context_line":"flowkit_src \u003d mock.Mock()"},{"line_number":46,"context_line":"flowkit_src.cinder_client \u003d hpecommon"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"print(\"fake_hpecommon: \", fake_hpecommon) # noqa"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"flowkit_src_core \u003d mock.Mock()"},{"line_number":51,"context_line":"flowkit_src_core.exceptions \u003d flowkit_exceptions"}],"source_content_type":"text/x-python","patch_set":15,"id":"f0eb7ed9_fdb9adb0","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":48},"in_reply_to":"a1adadfe_b26e3575","updated":"2026-01-19 15:53:16.000000000","message":"What is the error you see ? If it is required to silence unused import error then add noqa there or drop that import.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b997c68f1825cbf18f0e7c46e65e5308059665dd","unresolved":false,"context_lines":[{"line_number":45,"context_line":"flowkit_src \u003d mock.Mock()"},{"line_number":46,"context_line":"flowkit_src.cinder_client \u003d hpecommon"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"print(\"fake_hpecommon: \", fake_hpecommon) # noqa"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"flowkit_src_core \u003d mock.Mock()"},{"line_number":51,"context_line":"flowkit_src_core.exceptions \u003d flowkit_exceptions"}],"source_content_type":"text/x-python","patch_set":15,"id":"27565953_944f063d","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":48},"in_reply_to":"f0eb7ed9_fdb9adb0","updated":"2026-01-20 12:10:24.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"}],"cinder/tests/unit/volume/drivers/hpe/test_alletramp.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        self.driver \u003d alletramp.HPEAlletraMPDriverBase("},{"line_number":100,"context_line":"            configuration\u003dself.configuration)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def test_create_volume(self, *args, **keywargs):"},{"line_number":103,"context_line":"        with mock.patch.object(self.driver.common, \u0027create_volume\u0027) as \\"},{"line_number":104,"context_line":"                mock_create:"},{"line_number":105,"context_line":"            mock_create.return_value \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":15,"id":"2a82454b_9abd5d40","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":50},"updated":"2026-01-07 12:51:12.000000000","message":"kwargs","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        self.driver \u003d alletramp.HPEAlletraMPDriverBase("},{"line_number":100,"context_line":"            configuration\u003dself.configuration)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def test_create_volume(self, *args, **keywargs):"},{"line_number":103,"context_line":"        with mock.patch.object(self.driver.common, \u0027create_volume\u0027) as \\"},{"line_number":104,"context_line":"                mock_create:"},{"line_number":105,"context_line":"            mock_create.return_value \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":15,"id":"fad34f60_f85ae375","line":102,"range":{"start_line":102,"start_character":42,"end_line":102,"end_character":50},"in_reply_to":"2a82454b_9abd5d40","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"}],"cinder/volume/drivers/hpe/alletramp.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":126,"context_line":"        common.client_logout()"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _check_flags(self, common):"},{"line_number":129,"context_line":"        \"\"\"Sanity check to ensure we have required options set.\"\"\""},{"line_number":130,"context_line":"        required_flags \u003d [\u0027hpe3par_api_url\u0027, \u0027hpe3par_username\u0027,"},{"line_number":131,"context_line":"                          \u0027hpe3par_password\u0027, \u0027san_ip\u0027, \u0027san_login\u0027,"},{"line_number":132,"context_line":"                          \u0027san_password\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"5d9fb900_d7e05ce0","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":66},"updated":"2026-01-07 12:51:12.000000000","message":"Please add the space between the docstrings and the code.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        common.client_logout()"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _check_flags(self, common):"},{"line_number":129,"context_line":"        \"\"\"Sanity check to ensure we have required options set.\"\"\""},{"line_number":130,"context_line":"        required_flags \u003d [\u0027hpe3par_api_url\u0027, \u0027hpe3par_username\u0027,"},{"line_number":131,"context_line":"                          \u0027hpe3par_password\u0027, \u0027san_ip\u0027, \u0027san_login\u0027,"},{"line_number":132,"context_line":"                          \u0027san_password\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"d7ef859e_0a468c94","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":66},"in_reply_to":"5d9fb900_d7e05ce0","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":133,"context_line":"        common.check_flags(self.configuration, required_flags)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    @volume_utils.trace"},{"line_number":136,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":137,"context_line":"        LOG.debug(\"inside get_volume_stats\")"},{"line_number":138,"context_line":"        if not refresh:"},{"line_number":139,"context_line":"            return self._stats"}],"source_content_type":"text/x-python","patch_set":15,"id":"5b0cf896_269d6d83","line":136,"range":{"start_line":136,"start_character":7,"end_line":136,"end_character":46},"updated":"2026-01-07 12:51:12.000000000","message":"You should add minimum dog strings to the driver functions.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        common.check_flags(self.configuration, required_flags)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    @volume_utils.trace"},{"line_number":136,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":137,"context_line":"        LOG.debug(\"inside get_volume_stats\")"},{"line_number":138,"context_line":"        if not refresh:"},{"line_number":139,"context_line":"            return self._stats"}],"source_content_type":"text/x-python","patch_set":15,"id":"e8ecbad2_0693569c","line":136,"range":{"start_line":136,"start_character":7,"end_line":136,"end_character":46},"in_reply_to":"5b0cf896_269d6d83","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    @volume_utils.trace"},{"line_number":136,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":137,"context_line":"        LOG.debug(\"inside get_volume_stats\")"},{"line_number":138,"context_line":"        if not refresh:"},{"line_number":139,"context_line":"            return self._stats"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"cd875838_1aeb7155","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":44},"updated":"2026-01-07 12:51:12.000000000","message":"Also, when you print a debug in a function also make sure to print meaningful data for debugging, in this function for example, it would be nice to know if refresh is set and the data returned in the stats.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    @volume_utils.trace"},{"line_number":136,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":137,"context_line":"        LOG.debug(\"inside get_volume_stats\")"},{"line_number":138,"context_line":"        if not refresh:"},{"line_number":139,"context_line":"            return self._stats"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"36e4bfc6_5399dbe9","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":44},"in_reply_to":"cd875838_1aeb7155","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        common \u003d self._init_common()"},{"line_number":159,"context_line":"        common.do_setup(context)"},{"line_number":160,"context_line":"        self._check_flags(common)"},{"line_number":161,"context_line":"        self._do_setup(common)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _do_setup(self, common):"},{"line_number":164,"context_line":"        pass"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @volume_utils.trace"},{"line_number":167,"context_line":"    def create_volume(self, volume, perform_replica\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":15,"id":"737dcf4a_263176f8","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":12},"updated":"2026-01-07 12:51:12.000000000","message":"You don\u0027t need this function","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        common \u003d self._init_common()"},{"line_number":159,"context_line":"        common.do_setup(context)"},{"line_number":160,"context_line":"        self._check_flags(common)"},{"line_number":161,"context_line":"        self._do_setup(common)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _do_setup(self, common):"},{"line_number":164,"context_line":"        pass"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @volume_utils.trace"},{"line_number":167,"context_line":"    def create_volume(self, volume, perform_replica\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":15,"id":"82c00210_1d238b2f","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":12},"in_reply_to":"737dcf4a_263176f8","updated":"2026-01-08 12:43:52.000000000","message":"Line 161: let me check this\n\nLines 163, 164: the function _do_setup is overridden later. so i think it should be present","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"25ea50e9e1702a5f5e6c4f04e27a9a55ab01d0a0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        common \u003d self._init_common()"},{"line_number":159,"context_line":"        common.do_setup(context)"},{"line_number":160,"context_line":"        self._check_flags(common)"},{"line_number":161,"context_line":"        self._do_setup(common)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _do_setup(self, common):"},{"line_number":164,"context_line":"        pass"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    @volume_utils.trace"},{"line_number":167,"context_line":"    def create_volume(self, volume, perform_replica\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9422daf0_146a09b8","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":12},"in_reply_to":"82c00210_1d238b2f","updated":"2026-01-21 12:35:42.000000000","message":"Acknowledged","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027in-use\u0027:"},{"line_number":333,"context_line":"            protocol \u003d host[\u0027capabilities\u0027][\u0027storage_protocol\u0027]"},{"line_number":334,"context_line":"            if protocol !\u003d self.protocol:"},{"line_number":335,"context_line":"                LOG.debug(\"Alletra MP %(protocol)s driver cannot migrate \""},{"line_number":336,"context_line":"                          \"in-use volume to a host with \""},{"line_number":337,"context_line":"                          \"storage_protocol\u003d%(storage_protocol)s\","},{"line_number":338,"context_line":"                          {\u0027protocol\u0027: self.protocol,"},{"line_number":339,"context_line":"                           \u0027storage_protocol\u0027: protocol})"},{"line_number":340,"context_line":"                return False, None"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        return self.common.migrate_volume(volume, host)"}],"source_content_type":"text/x-python","patch_set":15,"id":"4c38b624_2a520b70","line":339,"range":{"start_line":335,"start_character":0,"end_line":339,"end_character":57},"updated":"2026-01-07 12:51:12.000000000","message":"This should be an error message not a debug","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"25ea50e9e1702a5f5e6c4f04e27a9a55ab01d0a0","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027in-use\u0027:"},{"line_number":333,"context_line":"            protocol \u003d host[\u0027capabilities\u0027][\u0027storage_protocol\u0027]"},{"line_number":334,"context_line":"            if protocol !\u003d self.protocol:"},{"line_number":335,"context_line":"                LOG.debug(\"Alletra MP %(protocol)s driver cannot migrate \""},{"line_number":336,"context_line":"                          \"in-use volume to a host with \""},{"line_number":337,"context_line":"                          \"storage_protocol\u003d%(storage_protocol)s\","},{"line_number":338,"context_line":"                          {\u0027protocol\u0027: self.protocol,"},{"line_number":339,"context_line":"                           \u0027storage_protocol\u0027: protocol})"},{"line_number":340,"context_line":"                return False, None"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        return self.common.migrate_volume(volume, host)"}],"source_content_type":"text/x-python","patch_set":15,"id":"28d6caa4_7beb5925","line":339,"range":{"start_line":335,"start_character":0,"end_line":339,"end_character":57},"in_reply_to":"1d109c0a_9acd584c","updated":"2026-01-21 12:35:42.000000000","message":"ack","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027in-use\u0027:"},{"line_number":333,"context_line":"            protocol \u003d host[\u0027capabilities\u0027][\u0027storage_protocol\u0027]"},{"line_number":334,"context_line":"            if protocol !\u003d self.protocol:"},{"line_number":335,"context_line":"                LOG.debug(\"Alletra MP %(protocol)s driver cannot migrate \""},{"line_number":336,"context_line":"                          \"in-use volume to a host with \""},{"line_number":337,"context_line":"                          \"storage_protocol\u003d%(storage_protocol)s\","},{"line_number":338,"context_line":"                          {\u0027protocol\u0027: self.protocol,"},{"line_number":339,"context_line":"                           \u0027storage_protocol\u0027: protocol})"},{"line_number":340,"context_line":"                return False, None"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        return self.common.migrate_volume(volume, host)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1d109c0a_9acd584c","line":339,"range":{"start_line":335,"start_character":0,"end_line":339,"end_character":57},"in_reply_to":"4c38b624_2a520b70","updated":"2026-01-08 12:43:52.000000000","message":"i changed this to LOG.warning","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("}],"source_content_type":"text/x-python","patch_set":15,"id":"e70e0f06_fdbb0013","line":667,"range":{"start_line":667,"start_character":7,"end_line":667,"end_character":12},"updated":"2026-01-07 12:51:12.000000000","message":"This try/catch block is way too long! You should put in the try block only things that can potentially fail, like interagtions with other entities (storage, apis, etc).","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("}],"source_content_type":"text/x-python","patch_set":15,"id":"6ea9b803_8837f11b","line":667,"range":{"start_line":667,"start_character":7,"end_line":667,"end_character":12},"in_reply_to":"e70e0f06_fdbb0013","updated":"2026-01-08 12:43:52.000000000","message":"it is try/finally block.\nthis function can return info from multiple locations (depending of if-else).\nAfter returning info, we need to logout.\nSo introduced try at beginning of function \u0026 finally at end.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":661,"context_line":"          * Create a VLUN for that HOST with the volume we want to export."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        \"\"\""},{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":671,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":15,"id":"f54f988a_774c7367","line":668,"range":{"start_line":664,"start_character":0,"end_line":668,"end_character":65},"updated":"2026-01-07 12:51:12.000000000","message":"You can consolidate the information of these two debug messages into one.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"78760c15b4eafcd01f4c230592c1af95d8df2bda","unresolved":false,"context_lines":[{"line_number":661,"context_line":"          * Create a VLUN for that HOST with the volume we want to export."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        \"\"\""},{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":671,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":15,"id":"2abb5cb3_15b6a341","line":668,"range":{"start_line":664,"start_character":0,"end_line":668,"end_character":65},"in_reply_to":"3148b1b6_02dc7fa2","updated":"2026-02-05 12:10:49.000000000","message":"1. Now single try except block is split into multiple small try except blocks.\nIn each except block, appropriate error message is mentioned.\nResource clean up is done.\n\n2. In our tests, we observed that if initialize_connection fails,\nthen terminate_connection is automatically called by OpenStack; \nthis function reverts things as desired (eg. delete host, etc).","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"4c1cc4acce4722ccc32a2ba72460e7b8ca43c412","unresolved":false,"context_lines":[{"line_number":661,"context_line":"          * Create a VLUN for that HOST with the volume we want to export."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        \"\"\""},{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":671,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3148b1b6_02dc7fa2","line":668,"range":{"start_line":664,"start_character":0,"end_line":668,"end_character":65},"in_reply_to":"99f622d3_f9a37ba5","updated":"2026-02-04 13:55:39.000000000","message":"Hi Raghavendra. you still haven\u0027t addressed my concerns related to how you are handling the try/except blocks (this one in initialize connection is the most appearance but there might be others through your drivers). I\u0027ll try to be a little bit more descriptive on why I\u0027m concerned with this and how you could address the problem.\n\n1. The try block encompasses the entire initialization logic - host creation, target mapping, replication setup, etc. If anything fails, you get the same generic error mesage regardless of what actually went wrong.\n2. When an exception ocurs deep in the logic (lets say, during replication client creation), the generic error message doesn\u0027t tell you where it failed. This makes debugging much harder.\n3.if remote_client (or other resources) is created but a later operation fails, the exception handler doesn\u0027t guarantee cleanup (in fact, it\u0027s not cleaning up anything). You\u0027re relying on Python\u0027s garbage collection rather than explicit resource management + you might have things left over in your storage.\n4. The try block handles both the main volume connection logic AND the optional peer persistence replication logic. These are conceptually different operations that might fail for different reasons.\n\nSo a new patchset refactoring will:\n\n- Use smaller, targeted try-catch blocks around specific risky operations (API calls, network operations)\n- Use try-finally or context managers for resource cleanup (like remote_client)\n- Provide more specific error messages based on which operation failed","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":661,"context_line":"          * Create a VLUN for that HOST with the volume we want to export."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        \"\"\""},{"line_number":664,"context_line":"        LOG.debug(\"volume id: %(volume_id)s\","},{"line_number":665,"context_line":"                  {\u0027volume_id\u0027: volume[\u0027id\u0027]})"},{"line_number":666,"context_line":"        common \u003d self._init_common()"},{"line_number":667,"context_line":"        try:"},{"line_number":668,"context_line":"            LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":669,"context_line":"            # we have to make sure we have a host"},{"line_number":670,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":671,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":15,"id":"99f622d3_f9a37ba5","line":668,"range":{"start_line":664,"start_character":0,"end_line":668,"end_character":65},"in_reply_to":"f54f988a_774c7367","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":707,"context_line":"            if replication_mode \u003d\u003d 1:"},{"line_number":708,"context_line":"                LOG.debug(\u0027replication_mode is sync\u0027)"},{"line_number":709,"context_line":"                if quorum_witness_ip:"},{"line_number":710,"context_line":"                    LOG.debug(\u0027quorum_witness_ip is present\u0027)"},{"line_number":711,"context_line":"                    LOG.debug(\u0027Peer Persistence has been configured\u0027)"},{"line_number":712,"context_line":"                else:"},{"line_number":713,"context_line":"                    LOG.debug(\u0027Since quorum_witness_ip is absent, \u0027"},{"line_number":714,"context_line":"                              \u0027considering this as Active/Passive \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"318c29a9_cae29486","line":711,"range":{"start_line":710,"start_character":20,"end_line":711,"end_character":69},"updated":"2026-01-07 12:51:12.000000000","message":"Always aim to consolidate the debug message, ensuring you have the necessary information in one line.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":707,"context_line":"            if replication_mode \u003d\u003d 1:"},{"line_number":708,"context_line":"                LOG.debug(\u0027replication_mode is sync\u0027)"},{"line_number":709,"context_line":"                if quorum_witness_ip:"},{"line_number":710,"context_line":"                    LOG.debug(\u0027quorum_witness_ip is present\u0027)"},{"line_number":711,"context_line":"                    LOG.debug(\u0027Peer Persistence has been configured\u0027)"},{"line_number":712,"context_line":"                else:"},{"line_number":713,"context_line":"                    LOG.debug(\u0027Since quorum_witness_ip is absent, \u0027"},{"line_number":714,"context_line":"                              \u0027considering this as Active/Passive \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1309cdea_dc389d09","line":711,"range":{"start_line":710,"start_character":20,"end_line":711,"end_character":69},"in_reply_to":"318c29a9_cae29486","updated":"2026-01-08 12:43:52.000000000","message":"Done","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"ff49de8ae8a5799ae5e9c7d9b005cce19a477826","unresolved":true,"context_lines":[{"line_number":1420,"context_line":"                msg \u003d \"Create iSCSI host caught HTTP conflict code: %s\""},{"line_number":1421,"context_line":"                LOG.exception(msg, path_conflict.get_code())"},{"line_number":1422,"context_line":"                with save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":1423,"context_line":"                    if path_conflict.get_code() is EXISTENT_PATH:"},{"line_number":1424,"context_line":"                        # Handle exception : EXISTENT_PATH - host WWN/iSCSI"},{"line_number":1425,"context_line":"                        # name already used by another host"},{"line_number":1426,"context_line":"                        hosts \u003d client_obj.query_host(iqns\u003discsi_iqn)"}],"source_content_type":"text/x-python","patch_set":15,"id":"27ae624b_2ae8d30f","line":1423,"updated":"2026-01-07 12:51:12.000000000","message":"Using \u0027is\u0027 for integer comparison is incorrect. Should use \u0027\u003d\u003d\u0027 instead of \u0027is\u0027 when comparing with EXISTENT_PATH (73).\nThe \u0027is\u0027 operator checks object identity, not value equality.","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"5ae9f51944e7ba94046e314d90fb7f2f61d53434","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"                msg \u003d \"Create iSCSI host caught HTTP conflict code: %s\""},{"line_number":1421,"context_line":"                LOG.exception(msg, path_conflict.get_code())"},{"line_number":1422,"context_line":"                with save_and_reraise_exception(reraise\u003dFalse) as ctxt:"},{"line_number":1423,"context_line":"                    if path_conflict.get_code() is EXISTENT_PATH:"},{"line_number":1424,"context_line":"                        # Handle exception : EXISTENT_PATH - host WWN/iSCSI"},{"line_number":1425,"context_line":"                        # name already used by another host"},{"line_number":1426,"context_line":"                        hosts \u003d client_obj.query_host(iqns\u003discsi_iqn)"}],"source_content_type":"text/x-python","patch_set":15,"id":"db4302d2_41db53e3","line":1423,"in_reply_to":"27ae624b_2ae8d30f","updated":"2026-01-08 12:43:52.000000000","message":"Acknowledged","commit_id":"efbbef52f7f5d898a0624ce4be8ab8e0d2c6c1b5"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"25ea50e9e1702a5f5e6c4f04e27a9a55ab01d0a0","unresolved":true,"context_lines":[{"line_number":657,"context_line":"        LOG.debug(\"volume id: %(id)s, connector: %(conn)s\","},{"line_number":658,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":659,"context_line":"        common \u003d self._init_common()"},{"line_number":660,"context_line":"        try:"},{"line_number":661,"context_line":"            # we have to make sure we have a host"},{"line_number":662,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":663,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":19,"id":"8a661d0e_50895ceb","line":660,"range":{"start_line":660,"start_character":5,"end_line":660,"end_character":12},"updated":"2026-01-21 12:35:42.000000000","message":"You still need to fix this. Please check my previous comment.","commit_id":"c588a2865db838729934b34865ce1d1145d987d5"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b12585e38b19c3c953ef0cd776705689f3506dbd","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        LOG.debug(\"volume id: %(id)s, connector: %(conn)s\","},{"line_number":658,"context_line":"                  {\u0027id\u0027: volume[\u0027id\u0027], \u0027conn\u0027: connector})"},{"line_number":659,"context_line":"        common \u003d self._init_common()"},{"line_number":660,"context_line":"        try:"},{"line_number":661,"context_line":"            # we have to make sure we have a host"},{"line_number":662,"context_line":"            host, cpg \u003d common._create_host_fc("},{"line_number":663,"context_line":"                self.configuration, volume, connector)"}],"source_content_type":"text/x-python","patch_set":19,"id":"230f910a_ddad555b","line":660,"range":{"start_line":660,"start_character":5,"end_line":660,"end_character":12},"in_reply_to":"8a661d0e_50895ceb","updated":"2026-01-22 14:03:55.000000000","message":"Done. Reduced length of try finally blocks","commit_id":"c588a2865db838729934b34865ce1d1145d987d5"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"189cc631e83af8ff744de05d4b3846540ba6a097","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"ca22a644_cff04020","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"updated":"2026-01-19 15:20:12.000000000","message":"How is this library distributed?","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b997c68f1825cbf18f0e7c46e65e5308059665dd","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"33de58f5_e74534c2","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"23ea42ed_df98e29d","updated":"2026-01-20 12:10:24.000000000","message":"The user is expected to manually install the library hpe_storage_flowkit.\nIt need not be part of devstack/openstack installation.\nEven then, should it be added in requirements.txt ?","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b12585e38b19c3c953ef0cd776705689f3506dbd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"85f573a8_f9aca0eb","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"241cbd31_7b750e71","updated":"2026-01-22 14:03:55.000000000","message":"Done.\nhttps://review.opendev.org/c/openstack/requirements/+/974322","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e3b25bc80b3b9d5718b546474898ad5945964e23","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"5dde1d96_dd97c6df","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"33de58f5_e74534c2","updated":"2026-01-20 14:29:32.000000000","message":"No it should NOT be added to requirements.txt but should be added to to a few other files(which I mentioned in my previous comments) so that it is listed and maintained as an extra dependency.","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"4345fe62045c1903005325ed521cf113bb62496c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"8e33fb01_effe465d","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"355a6317_4e386099","updated":"2026-01-23 04:28:23.000000000","message":"Added entry of hpe-storage-flowkit in driver-requirements.txt and pyproject.toml.\n\nChecked test-requirements.txt. It has common packages like flake8, stestr, mypy, doc8, etc.\nLooks like, updating this file is not required.\n\nIn commit message, added Depends-on.","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"25ea50e9e1702a5f5e6c4f04e27a9a55ab01d0a0","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"241cbd31_7b750e71","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"5dde1d96_dd97c6df","updated":"2026-01-21 12:35:42.000000000","message":"need to fix those","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1a1f9d64faa9536e074783cd62d3db9e6decb887","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"355a6317_4e386099","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"85f573a8_f9aca0eb","updated":"2026-01-22 14:41:05.000000000","message":"I\u0027m afraid you still have to address the remaining two points.\n * Add the library to driver-requirements.txt and test-requirements.txt\n * Add it to optinal dependencies in pyproject.toml\n \nNote that these may need adding `Depends-on: https://review.opendev.org/c/openstack/requirements/+/974322` to this commit.","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0cffa3d1891df7cb6cae6519037192c9703db4af","unresolved":false,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"a22274af_c25f9d24","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"8e33fb01_effe465d","updated":"2026-01-28 14:01:04.000000000","message":"\u003e Checked test-requirements.txt. It has common packages like flake8, stestr, mypy, doc8, etc. Looks like, updating this file is not required.\n\nOK probably I was looking at old stuff to install these for tests.\n\nI think the update about requirements part looks good now. Thanks.","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0674b2a1771fab07f26ac2affa9e6f786f298fdd","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"23ea42ed_df98e29d","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"ad5d963d_a1c1999c","updated":"2026-01-19 15:53:16.000000000","message":"If this is a new dependency for volume driver then you may have to\n - Add it to blobal requirements (See https://review.opendev.org/c/openstack/requirements/+/903099 for example)\n - Add the library to driver-requirements.txt and test-requirements.txt\n - Add it to optinal dependencies in pyproject.toml","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"d04428af92f4a4fe045bc2e602c275de10101ba9","unresolved":true,"context_lines":[{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"try:"},{"line_number":40,"context_line":"    from hpe_storage_flowkit.src import cinder_client as hpecommon"},{"line_number":41,"context_line":"    from hpe_storage_flowkit.src.core import exceptions as flowkit_exceptions"},{"line_number":42,"context_line":"    from hpe_storage_flowkit.src.workflows.host import HostWorkflow"},{"line_number":43,"context_line":"    from hpe_storage_flowkit.src.workflows.vlun import VLUNWorkflow"}],"source_content_type":"text/x-python","patch_set":21,"id":"ad5d963d_a1c1999c","line":40,"range":{"start_line":40,"start_character":9,"end_line":40,"end_character":28},"in_reply_to":"ca22a644_cff04020","updated":"2026-01-19 15:40:26.000000000","message":"As mentioned in hpe-alletramp-driver.rst, the library hpe_storage_flowkit is distributed via PyPI","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0674b2a1771fab07f26ac2affa9e6f786f298fdd","unresolved":true,"context_lines":[{"line_number":143,"context_line":"                                              self.__class__.__name__)"},{"line_number":144,"context_line":"        return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def check_for_setup_error(self):"},{"line_number":147,"context_line":"        \"\"\"Setup errors are already checked for in do_setup so return pass"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"f54b8e12_3ed49dcf","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":29},"updated":"2026-01-19 15:53:16.000000000","message":"Because import of hpe_storage_flowkit is optional, you should check whether the library is actually available here.","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"b997c68f1825cbf18f0e7c46e65e5308059665dd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                              self.__class__.__name__)"},{"line_number":144,"context_line":"        return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def check_for_setup_error(self):"},{"line_number":147,"context_line":"        \"\"\"Setup errors are already checked for in do_setup so return pass"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":21,"id":"f70a9ab0_293496d7","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":29},"in_reply_to":"f54b8e12_3ed49dcf","updated":"2026-01-20 12:10:24.000000000","message":"Done","commit_id":"7085ff3a3fd19cc0f5f778f0a1e87a5664a5fccb"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0cffa3d1891df7cb6cae6519037192c9703db4af","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        return self.common"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _login(self, timeout\u003dNone, array_id\u003dNone):"},{"line_number":93,"context_line":"        self.common \u003d self._init_common()"},{"line_number":94,"context_line":"        # If replication is enabled and we cannot login, we do not want to"},{"line_number":95,"context_line":"        # raise an exception so a failover can still be executed."},{"line_number":96,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":24,"id":"b06f2852_f9f9bc34","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":41},"updated":"2026-01-28 14:01:04.000000000","message":"(nit)\n\nThe usage here looks quite redundant because self.common is set twice (at L88 and here).\nProbably you don\u0027t have to return anything by _init_common ?\n\nAlso I see _init_common is called in many places. Can we just call it at do_setup then drop the other calls ?","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7078329e9ce5aaebbac6d658e733c7cfae915084","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        return self.common"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _login(self, timeout\u003dNone, array_id\u003dNone):"},{"line_number":93,"context_line":"        self.common \u003d self._init_common()"},{"line_number":94,"context_line":"        # If replication is enabled and we cannot login, we do not want to"},{"line_number":95,"context_line":"        # raise an exception so a failover can still be executed."},{"line_number":96,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":24,"id":"63daa74e_5224656c","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":41},"in_reply_to":"b06f2852_f9f9bc34","updated":"2026-01-29 10:41:29.000000000","message":"Done. now self.common is re-used \u0026 _init_common is not called multiple times.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0cffa3d1891df7cb6cae6519037192c9703db4af","unresolved":true,"context_lines":[{"line_number":147,"context_line":"                    \u0027 Alletra MP drivers. Please execute\u0027"},{"line_number":148,"context_line":"                    \u0027 \"pip install hpe_storage_flowkit\" to\u0027"},{"line_number":149,"context_line":"                    \u0027 install the hpe_storage_flowkit package.\u0027)"},{"line_number":150,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def do_setup(self, context):"},{"line_number":153,"context_line":"        self.check_for_setup_error()"}],"source_content_type":"text/x-python","patch_set":24,"id":"36058eb2_bd779dea","line":150,"range":{"start_line":150,"start_character":28,"end_line":150,"end_character":53},"updated":"2026-01-28 14:01:04.000000000","message":"Looking at check_for_setup error in the other drivers, I think `exception.VolumeDriverException` is preferred here","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"7078329e9ce5aaebbac6d658e733c7cfae915084","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                    \u0027 Alletra MP drivers. Please execute\u0027"},{"line_number":148,"context_line":"                    \u0027 \"pip install hpe_storage_flowkit\" to\u0027"},{"line_number":149,"context_line":"                    \u0027 install the hpe_storage_flowkit package.\u0027)"},{"line_number":150,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def do_setup(self, context):"},{"line_number":153,"context_line":"        self.check_for_setup_error()"}],"source_content_type":"text/x-python","patch_set":24,"id":"aaf1a639_52eafaa2","line":150,"range":{"start_line":150,"start_character":28,"end_line":150,"end_character":53},"in_reply_to":"36058eb2_bd779dea","updated":"2026-01-29 10:41:29.000000000","message":"Done","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"da5dc82fc9bd89b84c106d35d1eaeb93d71112db","unresolved":true,"context_lines":[{"line_number":106,"context_line":"        try:"},{"line_number":107,"context_line":"            self.common.do_setup(None, timeout\u003dtimeout, stats\u003dself._stats,"},{"line_number":108,"context_line":"                                 array_id\u003darray_id)"},{"line_number":109,"context_line":"        except Exception:"},{"line_number":110,"context_line":"            if self.common._replication_enabled:"},{"line_number":111,"context_line":"                LOG.warning(\"The primary array is not reachable at this \""},{"line_number":112,"context_line":"                            \"time. Since replication is enabled, \""}],"source_content_type":"text/x-python","patch_set":27,"id":"aff951b9_4bc09b94","line":109,"range":{"start_line":109,"start_character":15,"end_line":109,"end_character":24},"updated":"2026-02-02 14:42:42.000000000","message":"(nit) If we could use a more explicit exception (in case the library provides the base exception), that would be probably better.","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"522f25743b06365bd322f157df5c46418d5cc762","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        try:"},{"line_number":107,"context_line":"            self.common.do_setup(None, timeout\u003dtimeout, stats\u003dself._stats,"},{"line_number":108,"context_line":"                                 array_id\u003darray_id)"},{"line_number":109,"context_line":"        except Exception:"},{"line_number":110,"context_line":"            if self.common._replication_enabled:"},{"line_number":111,"context_line":"                LOG.warning(\"The primary array is not reachable at this \""},{"line_number":112,"context_line":"                            \"time. Since replication is enabled, \""}],"source_content_type":"text/x-python","patch_set":27,"id":"08bb15c9_f5b20f71","line":109,"range":{"start_line":109,"start_character":15,"end_line":109,"end_character":24},"in_reply_to":"aff951b9_4bc09b94","updated":"2026-02-02 17:13:06.000000000","message":"Done","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"da5dc82fc9bd89b84c106d35d1eaeb93d71112db","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        if not refresh:"},{"line_number":144,"context_line":"            return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        common \u003d self._login()"},{"line_number":147,"context_line":"        self._stats \u003d common.get_volume_stats("},{"line_number":148,"context_line":"            refresh,"},{"line_number":149,"context_line":"            self.get_filter_function(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"938444de_cd62626e","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"updated":"2026-02-02 14:42:42.000000000","message":"IIUC this assumes that get_volume_stats is called before any other volume driver API is called, but IMO it is too much tricky. Can we call this in do_setup (or somewhere doing initialization) instead ?","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a03d8f84409467b857eb7d3fb66a8845a68c3db8","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        if not refresh:"},{"line_number":144,"context_line":"            return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        common \u003d self._login()"},{"line_number":147,"context_line":"        self._stats \u003d common.get_volume_stats("},{"line_number":148,"context_line":"            refresh,"},{"line_number":149,"context_line":"            self.get_filter_function(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"ce50ff5f_e09d2a1e","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"in_reply_to":"679068f3_bd642241","updated":"2026-02-06 13:37:24.000000000","message":"May main point is not this specific usage but the other direct usage of self.common, which assumes that self._login is called somewhere else earlier.\n\nI think we should\n\n- call _login and set self.common only in a single place and use self.common directly in the other places\n\nor\n\n- Use _login in all places.","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"522f25743b06365bd322f157df5c46418d5cc762","unresolved":true,"context_lines":[{"line_number":143,"context_line":"        if not refresh:"},{"line_number":144,"context_line":"            return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        common \u003d self._login()"},{"line_number":147,"context_line":"        self._stats \u003d common.get_volume_stats("},{"line_number":148,"context_line":"            refresh,"},{"line_number":149,"context_line":"            self.get_filter_function(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"679068f3_bd642241","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"in_reply_to":"938444de_cd62626e","updated":"2026-02-02 17:13:06.000000000","message":"In _login(), at line 100 there is \"if\" condition to check whether self.common is already created (via do_setup function defined at line 171). In such case, self.common is returned (as is).\nOtherwise (i.e when self.common is None), further steps are performed.","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"e6df776a698748cca3a2082a187dfd29c217b88f","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        if not refresh:"},{"line_number":144,"context_line":"            return self._stats"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        common \u003d self._login()"},{"line_number":147,"context_line":"        self._stats \u003d common.get_volume_stats("},{"line_number":148,"context_line":"            refresh,"},{"line_number":149,"context_line":"            self.get_filter_function(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"d029400f_0c2237d3","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"in_reply_to":"ce50ff5f_e09d2a1e","updated":"2026-02-09 12:52:36.000000000","message":"Done. Now self.common is set only in _login() function","commit_id":"fb66ad2cd3cc6f78c296fcb4eacb0e800941d292"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":303,"context_line":"            self._active_backend_id \u003d active_backend_id"},{"line_number":304,"context_line":"            return active_backend_id, volume_updates, group_update_list"},{"line_number":305,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":306,"context_line":"            msg \u003d (_(\"Initialize connection failed: %(err)s\") %"},{"line_number":307,"context_line":"                   {\u0027err\u0027: str(e)})"},{"line_number":308,"context_line":"            LOG.error(msg)"},{"line_number":309,"context_line":"            raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":33,"id":"a02961d7_faa5d7b1","line":306,"range":{"start_line":306,"start_character":21,"end_line":306,"end_character":52},"updated":"2026-02-13 12:21:10.000000000","message":"This is the failover function not initialize connection","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            self._active_backend_id \u003d active_backend_id"},{"line_number":304,"context_line":"            return active_backend_id, volume_updates, group_update_list"},{"line_number":305,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":306,"context_line":"            msg \u003d (_(\"Initialize connection failed: %(err)s\") %"},{"line_number":307,"context_line":"                   {\u0027err\u0027: str(e)})"},{"line_number":308,"context_line":"            LOG.error(msg)"},{"line_number":309,"context_line":"            raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":33,"id":"fd0a214e_7adccf5f","line":306,"range":{"start_line":306,"start_character":21,"end_line":306,"end_character":52},"in_reply_to":"a02961d7_faa5d7b1","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":993,"context_line":"                zone_remove \u003d False"},{"line_number":994,"context_line":"            else:"},{"line_number":995,"context_line":"                hostname \u003d common._safe_hostname(connector, self.configuration)"},{"line_number":996,"context_line":"                if not self._is_multiattach(volume, hostname):"},{"line_number":997,"context_line":"                    common.terminate_connection(volume, hostname,"},{"line_number":998,"context_line":"                                                wwn\u003dconnector[\u0027wwpns\u0027],"},{"line_number":999,"context_line":"                                                remote_client\u003dremote_client)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"                zone_remove \u003d True"},{"line_number":1002,"context_line":"                vlun_wf \u003d VLUNWorkflow(common.session_mgr)"}],"source_content_type":"text/x-python","patch_set":33,"id":"bc8fbb8d_a0cec922","line":999,"range":{"start_line":996,"start_character":15,"end_line":999,"end_character":76},"updated":"2026-02-13 12:21:10.000000000","message":"What happens if the volume is multi-attach and the user wants to remove the last volume attachment? If I understood correctly, in that scenario the connection will leak.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a15cbf7079dcb2e219c95d860ea9d25eb0665f85","unresolved":false,"context_lines":[{"line_number":993,"context_line":"                zone_remove \u003d False"},{"line_number":994,"context_line":"            else:"},{"line_number":995,"context_line":"                hostname \u003d common._safe_hostname(connector, self.configuration)"},{"line_number":996,"context_line":"                if not self._is_multiattach(volume, hostname):"},{"line_number":997,"context_line":"                    common.terminate_connection(volume, hostname,"},{"line_number":998,"context_line":"                                                wwn\u003dconnector[\u0027wwpns\u0027],"},{"line_number":999,"context_line":"                                                remote_client\u003dremote_client)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"                zone_remove \u003d True"},{"line_number":1002,"context_line":"                vlun_wf \u003d VLUNWorkflow(common.session_mgr)"}],"source_content_type":"text/x-python","patch_set":33,"id":"128aeb81_49141ab6","line":999,"range":{"start_line":996,"start_character":15,"end_line":999,"end_character":76},"in_reply_to":"bc8fbb8d_a0cec922","updated":"2026-02-13 16:03:38.000000000","message":"thanks for catching this.\nNow added if else to handle this.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1107,"context_line":"        try:"},{"line_number":1108,"context_line":"            self.initialize_iscsi_ports(self.common)"},{"line_number":1109,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1110,"context_line":"            msg \u003d (_(\"Initialize nvme ips and ports failed: %(err)s\") %"},{"line_number":1111,"context_line":"                   {\u0027err\u0027: str(e)})"},{"line_number":1112,"context_line":"            LOG.error(msg)"},{"line_number":1113,"context_line":"            raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":33,"id":"d23d214f_92ffb60b","line":1110,"range":{"start_line":1110,"start_character":22,"end_line":1110,"end_character":42},"updated":"2026-02-13 12:21:10.000000000","message":"Initialize iSCSI ips...","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1107,"context_line":"        try:"},{"line_number":1108,"context_line":"            self.initialize_iscsi_ports(self.common)"},{"line_number":1109,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1110,"context_line":"            msg \u003d (_(\"Initialize nvme ips and ports failed: %(err)s\") %"},{"line_number":1111,"context_line":"                   {\u0027err\u0027: str(e)})"},{"line_number":1112,"context_line":"            LOG.error(msg)"},{"line_number":1113,"context_line":"            raise exception.VolumeBackendAPIException(msg)"}],"source_content_type":"text/x-python","patch_set":33,"id":"c3552415_57bf998e","line":1110,"range":{"start_line":1110,"start_character":22,"end_line":1110,"end_character":42},"in_reply_to":"d23d214f_92ffb60b","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1484,"context_line":"                    \u0027encrypted\u0027: False,"},{"line_number":1485,"context_line":"                    \u0027target_discovered\u0027: True,"},{"line_number":1486,"context_line":"                    \u0027target_iqn\u0027: \u0027iqn.2010-10.org.openstack:volume-00000001\u0027,"},{"line_number":1487,"context_line":"                    \u0027target_protal\u0027: \u0027127.0.0.1:3260\u0027,"},{"line_number":1488,"context_line":"                    \u0027volume_id\u0027: 1,"},{"line_number":1489,"context_line":"                }"},{"line_number":1490,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":33,"id":"170f9184_6330a6ba","line":1487,"range":{"start_line":1487,"start_character":21,"end_line":1487,"end_character":34},"updated":"2026-02-13 12:21:10.000000000","message":"portal","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1484,"context_line":"                    \u0027encrypted\u0027: False,"},{"line_number":1485,"context_line":"                    \u0027target_discovered\u0027: True,"},{"line_number":1486,"context_line":"                    \u0027target_iqn\u0027: \u0027iqn.2010-10.org.openstack:volume-00000001\u0027,"},{"line_number":1487,"context_line":"                    \u0027target_protal\u0027: \u0027127.0.0.1:3260\u0027,"},{"line_number":1488,"context_line":"                    \u0027volume_id\u0027: 1,"},{"line_number":1489,"context_line":"                }"},{"line_number":1490,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":33,"id":"fbf6636e_ee72732a","line":1487,"range":{"start_line":1487,"start_character":21,"end_line":1487,"end_character":34},"in_reply_to":"170f9184_6330a6ba","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1588,"context_line":"                        hostname,"},{"line_number":1589,"context_line":"                        iqn\u003dconnector[\u0027initiator\u0027],"},{"line_number":1590,"context_line":"                        remote_client\u003dremote_client)"},{"line_number":1591,"context_line":"            common._clear_chap_3par(volume)"},{"line_number":1592,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1593,"context_line":"            msg \u003d (_(\"Terminate connection failed: %(err)s\") %"},{"line_number":1594,"context_line":"                   {\u0027err\u0027: str(e)})"}],"source_content_type":"text/x-python","patch_set":33,"id":"e5f98377_32677151","line":1591,"range":{"start_line":1591,"start_character":12,"end_line":1591,"end_character":43},"updated":"2026-02-13 12:21:10.000000000","message":"In the multi-attach case, I am still trying to understand what would happen when the last volume from the attachment is detached.\n\nRegardless, it seems there is a bug here since you are clearing the CHAP secret whether or not this is the last attachment.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"a15cbf7079dcb2e219c95d860ea9d25eb0665f85","unresolved":false,"context_lines":[{"line_number":1588,"context_line":"                        hostname,"},{"line_number":1589,"context_line":"                        iqn\u003dconnector[\u0027initiator\u0027],"},{"line_number":1590,"context_line":"                        remote_client\u003dremote_client)"},{"line_number":1591,"context_line":"            common._clear_chap_3par(volume)"},{"line_number":1592,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1593,"context_line":"            msg \u003d (_(\"Terminate connection failed: %(err)s\") %"},{"line_number":1594,"context_line":"                   {\u0027err\u0027: str(e)})"}],"source_content_type":"text/x-python","patch_set":33,"id":"363beb79_7c26eeee","line":1591,"range":{"start_line":1591,"start_character":12,"end_line":1591,"end_character":43},"in_reply_to":"e5f98377_32677151","updated":"2026-02-13 16:03:38.000000000","message":"1] regarding last volume attachment - replied above.\n2] now _clear_chap_3par() function is called only on last attachment.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1599,"context_line":"    # update volume metadata"},{"line_number":1600,"context_line":"    def _do_export(self, common, volume, connector):"},{"line_number":1601,"context_line":"        \"\"\"Gets the associated account, generates CHAP info and updates.\"\"\""},{"line_number":1602,"context_line":"        LOG.debug(\"_do_export enter\")"},{"line_number":1603,"context_line":"        vlun_wf \u003d VLUNWorkflow(common.session_mgr)"},{"line_number":1604,"context_line":"        host_wf \u003d HostWorkflow(common.session_mgr)"},{"line_number":1605,"context_line":"        vol_wf \u003d VolumeWorkflow(common.session_mgr)"}],"source_content_type":"text/x-python","patch_set":33,"id":"d08d0abe_e46313cc","line":1602,"range":{"start_line":1602,"start_character":8,"end_line":1602,"end_character":37},"updated":"2026-02-13 12:21:10.000000000","message":"Please review my initial feedback on debugging message patterns and implement these changes throughout the entire driver.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1599,"context_line":"    # update volume metadata"},{"line_number":1600,"context_line":"    def _do_export(self, common, volume, connector):"},{"line_number":1601,"context_line":"        \"\"\"Gets the associated account, generates CHAP info and updates.\"\"\""},{"line_number":1602,"context_line":"        LOG.debug(\"_do_export enter\")"},{"line_number":1603,"context_line":"        vlun_wf \u003d VLUNWorkflow(common.session_mgr)"},{"line_number":1604,"context_line":"        host_wf \u003d HostWorkflow(common.session_mgr)"},{"line_number":1605,"context_line":"        vol_wf \u003d VolumeWorkflow(common.session_mgr)"}],"source_content_type":"text/x-python","patch_set":33,"id":"8ce59673_29942b02","line":1602,"range":{"start_line":1602,"start_character":8,"end_line":1602,"end_character":37},"in_reply_to":"d08d0abe_e46313cc","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"            # key assigned to one of them.  Use that CHAP key if present,"},{"line_number":1638,"context_line":"            # otherwise create a new one.  Skip any VLUNs that are missing"},{"line_number":1639,"context_line":"            # CHAP credentials in metadata."},{"line_number":1640,"context_line":"            msg \u003d \"Get a list of all iSCSI VLUNs and see if there is \""},{"line_number":1641,"context_line":"            msg \u003d msg + \"already a CHAP key assigned to one of them\""},{"line_number":1642,"context_line":"            LOG.debug(\"msg: %(msg)s\", {\u0027msg\u0027: msg})"},{"line_number":1643,"context_line":"            chap_exists \u003d False"},{"line_number":1644,"context_line":"            active_vluns \u003d 0"},{"line_number":1645,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"6ec2d635_f649e3ca","line":1642,"range":{"start_line":1640,"start_character":0,"end_line":1642,"end_character":51},"updated":"2026-02-13 12:21:10.000000000","message":"!!","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"1a98e6a89b297d8823869ce66b64b00f9e6165de","unresolved":false,"context_lines":[{"line_number":1637,"context_line":"            # key assigned to one of them.  Use that CHAP key if present,"},{"line_number":1638,"context_line":"            # otherwise create a new one.  Skip any VLUNs that are missing"},{"line_number":1639,"context_line":"            # CHAP credentials in metadata."},{"line_number":1640,"context_line":"            msg \u003d \"Get a list of all iSCSI VLUNs and see if there is \""},{"line_number":1641,"context_line":"            msg \u003d msg + \"already a CHAP key assigned to one of them\""},{"line_number":1642,"context_line":"            LOG.debug(\"msg: %(msg)s\", {\u0027msg\u0027: msg})"},{"line_number":1643,"context_line":"            chap_exists \u003d False"},{"line_number":1644,"context_line":"            active_vluns \u003d 0"},{"line_number":1645,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"f15b403b_b32de724","line":1642,"range":{"start_line":1640,"start_character":0,"end_line":1642,"end_character":51},"in_reply_to":"2cd65db6_99553f3d","updated":"2026-02-17 07:01:46.000000000","message":"now i removed this debug message","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"            # key assigned to one of them.  Use that CHAP key if present,"},{"line_number":1638,"context_line":"            # otherwise create a new one.  Skip any VLUNs that are missing"},{"line_number":1639,"context_line":"            # CHAP credentials in metadata."},{"line_number":1640,"context_line":"            msg \u003d \"Get a list of all iSCSI VLUNs and see if there is \""},{"line_number":1641,"context_line":"            msg \u003d msg + \"already a CHAP key assigned to one of them\""},{"line_number":1642,"context_line":"            LOG.debug(\"msg: %(msg)s\", {\u0027msg\u0027: msg})"},{"line_number":1643,"context_line":"            chap_exists \u003d False"},{"line_number":1644,"context_line":"            active_vluns \u003d 0"},{"line_number":1645,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"ccde247f_f3f9e168","line":1642,"range":{"start_line":1640,"start_character":0,"end_line":1642,"end_character":51},"in_reply_to":"6ec2d635_f649e3ca","updated":"2026-02-13 13:41:05.000000000","message":"sorry. did not understand this comment.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1b09e68ba4b46978fb2eb05caec13960e90f5d47","unresolved":true,"context_lines":[{"line_number":1637,"context_line":"            # key assigned to one of them.  Use that CHAP key if present,"},{"line_number":1638,"context_line":"            # otherwise create a new one.  Skip any VLUNs that are missing"},{"line_number":1639,"context_line":"            # CHAP credentials in metadata."},{"line_number":1640,"context_line":"            msg \u003d \"Get a list of all iSCSI VLUNs and see if there is \""},{"line_number":1641,"context_line":"            msg \u003d msg + \"already a CHAP key assigned to one of them\""},{"line_number":1642,"context_line":"            LOG.debug(\"msg: %(msg)s\", {\u0027msg\u0027: msg})"},{"line_number":1643,"context_line":"            chap_exists \u003d False"},{"line_number":1644,"context_line":"            active_vluns \u003d 0"},{"line_number":1645,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"2cd65db6_99553f3d","line":1642,"range":{"start_line":1640,"start_character":0,"end_line":1642,"end_character":51},"in_reply_to":"ccde247f_f3f9e168","updated":"2026-02-16 20:53:06.000000000","message":"What\u0027s the intent of this message? Does it provide useful info to someone reading the logs?","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1781,"context_line":"        LOG.debug(\"nvme_port_list: %(ports)s\", {\u0027ports\u0027: nvme_port_list})"},{"line_number":1782,"context_line":""},{"line_number":1783,"context_line":"    @volume_utils.trace"},{"line_number":1784,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":1785,"context_line":"        \"\"\"Assigns the volume to a server."},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        Steps to export a volume on array:"}],"source_content_type":"text/x-python","patch_set":33,"id":"8f20d4d4_0805c32e","line":1784,"range":{"start_line":1784,"start_character":0,"end_line":1784,"end_character":52},"updated":"2026-02-13 12:21:10.000000000","message":"@coordination.synchronized? Also check terminate connection for the mvme","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1781,"context_line":"        LOG.debug(\"nvme_port_list: %(ports)s\", {\u0027ports\u0027: nvme_port_list})"},{"line_number":1782,"context_line":""},{"line_number":1783,"context_line":"    @volume_utils.trace"},{"line_number":1784,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":1785,"context_line":"        \"\"\"Assigns the volume to a server."},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        Steps to export a volume on array:"}],"source_content_type":"text/x-python","patch_set":33,"id":"e22b6aad_dc83c5fb","line":1784,"range":{"start_line":1784,"start_character":0,"end_line":1784,"end_character":52},"in_reply_to":"8f20d4d4_0805c32e","updated":"2026-02-13 13:41:05.000000000","message":"Your comment was on patchset 33. This was addressed in patchset 35","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1807,"context_line":"                LOG.error(\"Host with nqn %(nqn)s not found. \""},{"line_number":1808,"context_line":"                          \"Please create new host with name %(name)s and \""},{"line_number":1809,"context_line":"                          \"nqn %(nqn)s\", {\u0027name\u0027: hostname, \u0027nqn\u0027: host_nqn})"},{"line_number":1810,"context_line":"                raise Exception("},{"line_number":1811,"context_line":"                    # HTTPNotFound"},{"line_number":1812,"context_line":"                    \"Host not found with nqn: %s\" % host_nqn)"},{"line_number":1813,"context_line":"            storage_system_id \u003d common._client_conf[\u0027hpe3par_api_url\u0027]"},{"line_number":1814,"context_line":"            nvme_ips \u003d self.nvme_ips[storage_system_id]"},{"line_number":1815,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"6c2e693f_65fefc22","line":1812,"range":{"start_line":1810,"start_character":0,"end_line":1812,"end_character":61},"updated":"2026-02-13 12:21:10.000000000","message":"Please check my previous comment regarding bare exceptions raising.","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1807,"context_line":"                LOG.error(\"Host with nqn %(nqn)s not found. \""},{"line_number":1808,"context_line":"                          \"Please create new host with name %(name)s and \""},{"line_number":1809,"context_line":"                          \"nqn %(nqn)s\", {\u0027name\u0027: hostname, \u0027nqn\u0027: host_nqn})"},{"line_number":1810,"context_line":"                raise Exception("},{"line_number":1811,"context_line":"                    # HTTPNotFound"},{"line_number":1812,"context_line":"                    \"Host not found with nqn: %s\" % host_nqn)"},{"line_number":1813,"context_line":"            storage_system_id \u003d common._client_conf[\u0027hpe3par_api_url\u0027]"},{"line_number":1814,"context_line":"            nvme_ips \u003d self.nvme_ips[storage_system_id]"},{"line_number":1815,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"42ea9fa3_e629bc4e","line":1812,"range":{"start_line":1810,"start_character":0,"end_line":1812,"end_character":61},"in_reply_to":"6c2e693f_65fefc22","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1839,"context_line":"            raise exception.VolumeBackendAPIException(msg)"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    @volume_utils.trace"},{"line_number":1842,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":1843,"context_line":"        \"\"\"Driver entry point to detach a volume from an instance.\"\"\""},{"line_number":1844,"context_line":"        LOG.debug(\"volume id: %(id)s\", {\u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"}],"source_content_type":"text/x-python","patch_set":33,"id":"b11fa4b7_21b3ecde","line":1842,"range":{"start_line":1842,"start_character":8,"end_line":1842,"end_character":28},"updated":"2026-02-13 12:21:10.000000000","message":"why you were not handling the force_detach scenario here as well?","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1839,"context_line":"            raise exception.VolumeBackendAPIException(msg)"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"    @volume_utils.trace"},{"line_number":1842,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":1843,"context_line":"        \"\"\"Driver entry point to detach a volume from an instance.\"\"\""},{"line_number":1844,"context_line":"        LOG.debug(\"volume id: %(id)s\", {\u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"}],"source_content_type":"text/x-python","patch_set":33,"id":"76264f2b_b4cc8bd6","line":1842,"range":{"start_line":1842,"start_character":8,"end_line":1842,"end_character":28},"in_reply_to":"b11fa4b7_21b3ecde","updated":"2026-02-13 13:41:05.000000000","message":"Done. Now handled force_detach scenario","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fff934437451ef1a5db40d2b9482300cb69d36b7","unresolved":true,"context_lines":[{"line_number":1841,"context_line":"    @volume_utils.trace"},{"line_number":1842,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":1843,"context_line":"        \"\"\"Driver entry point to detach a volume from an instance.\"\"\""},{"line_number":1844,"context_line":"        LOG.debug(\"volume id: %(id)s\", {\u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        if self._is_multiattach(volume, connector[\u0027host\u0027]):"},{"line_number":1848,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":33,"id":"7d91824b_b3e54ce2","line":1845,"range":{"start_line":1844,"start_character":0,"end_line":1845,"end_character":61},"updated":"2026-02-13 12:21:10.000000000","message":"You don\u0027t need 2 log lines to log this information","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"c020d507bd0c82a12dcabfabbc1d208898f808cc","unresolved":false,"context_lines":[{"line_number":1841,"context_line":"    @volume_utils.trace"},{"line_number":1842,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":1843,"context_line":"        \"\"\"Driver entry point to detach a volume from an instance.\"\"\""},{"line_number":1844,"context_line":"        LOG.debug(\"volume id: %(id)s\", {\u0027id\u0027: volume[\u0027id\u0027]})"},{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        if self._is_multiattach(volume, connector[\u0027host\u0027]):"},{"line_number":1848,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":33,"id":"5e3ec0a0_ec3bc96a","line":1845,"range":{"start_line":1844,"start_character":0,"end_line":1845,"end_character":61},"in_reply_to":"7d91824b_b3e54ce2","updated":"2026-02-13 13:41:05.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79dcc9d0220451ae1b7f13c05d3b48e593d2a962","unresolved":true,"context_lines":[{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        if self._is_multiattach(volume, connector[\u0027host\u0027]):"},{"line_number":1848,"context_line":"            return"},{"line_number":1849,"context_line":""},{"line_number":1850,"context_line":"        common \u003d self.common"},{"line_number":1851,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":33,"id":"b9ed88d7_9f5641b6","line":1848,"updated":"2026-02-11 16:42:55.000000000","message":"I think the assumption here is that _is_multiattach() returning True means you don\u0027t want to do the teardown flow below.\n\nThis will race if there are two connections and terminate_connection() is called for both at the same time, since this method doesn\u0027t have a synchronized() lock on it.  (Like the FC driver above has.)","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"9b769d349f840078a8e4b9e891c376315400b80e","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"        LOG.debug(\"connector: %(conn)s\", {\u0027conn\u0027: connector})"},{"line_number":1846,"context_line":""},{"line_number":1847,"context_line":"        if self._is_multiattach(volume, connector[\u0027host\u0027]):"},{"line_number":1848,"context_line":"            return"},{"line_number":1849,"context_line":""},{"line_number":1850,"context_line":"        common \u003d self.common"},{"line_number":1851,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":33,"id":"6b41f2fb_d912d980","line":1848,"in_reply_to":"b9ed88d7_9f5641b6","updated":"2026-02-12 09:40:31.000000000","message":"Done","commit_id":"ab3f2b880e3ef3df120b14ba2ec768fefa10d6f4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#    (c) Copyright 2025 Hewlett Packard Enterprise Development LP"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Copyright 2012 OpenStack Foundation"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":52,"id":"11f4785e_694dbd2f","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":40},"updated":"2026-04-10 03:56:37.000000000","message":"Please remove, it\u0027s not correct for this file.","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    (c) Copyright 2025 Hewlett Packard Enterprise Development LP"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Copyright 2012 OpenStack Foundation"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":52,"id":"8a4c6ec7_09d7d06e","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":40},"in_reply_to":"11f4785e_694dbd2f","updated":"2026-04-10 06:17:25.000000000","message":"Done","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    @staticmethod"},{"line_number":85,"context_line":"    def get_driver_options():"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            return hpeflowkit.CinderClient.get_driver_options()"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            return None"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"b831e1ea_21a29cb2","line":87,"range":{"start_line":87,"start_character":19,"end_line":87,"end_character":63},"updated":"2026-04-10 03:56:37.000000000","message":"What exactly does this return?  It\u0027s supposed to be a list of the oslo_config options specific to the driver","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    @staticmethod"},{"line_number":85,"context_line":"    def get_driver_options():"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            return hpeflowkit.CinderClient.get_driver_options()"},{"line_number":88,"context_line":"        except Exception:"},{"line_number":89,"context_line":"            return None"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"1ce5c22b_b7465771","line":87,"range":{"start_line":87,"start_character":19,"end_line":87,"end_character":63},"in_reply_to":"b831e1ea_21a29cb2","updated":"2026-04-10 06:17:25.000000000","message":"It returns below two set of options:\n\n\u0027hpe3par_api_url\u0027, \u0027hpe3par_username\u0027, \u0027hpe3par_password\u0027,\n\u0027hpe3par_cpg\u0027, \u0027hpe3par_debug\u0027, \u0027hpe3par_iscsi_ips\u0027, \u0027hpe3par_nvme_ips\u0027,\n\n+\n\n\u0027san_ip\u0027, \u0027san_login\u0027, \u0027san_password\u0027, \u0027reserved_percentage\u0027,\n\u0027max_over_subscription_ratio\u0027, \u0027replication_device\u0027, \u0027target_port\u0027,\n\u0027san_ssh_port\u0027, \u0027ssh_conn_timeout\u0027, \u0027san_private_key\u0027,\n\u0027target_ip_address\u0027, \u0027unique_fqdn_network\u0027","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":true,"context_lines":[{"line_number":130,"context_line":"        \"\"\"Sanity check to ensure we have required options set"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        required_flags \u003d [\u0027hpe3par_api_url\u0027, \u0027hpe3par_username\u0027,"},{"line_number":134,"context_line":"                          \u0027hpe3par_password\u0027, \u0027san_ip\u0027, \u0027san_login\u0027,"},{"line_number":135,"context_line":"                          \u0027san_password\u0027]"},{"line_number":136,"context_line":"        self.common.check_flags(self.configuration, required_flags)"}],"source_content_type":"text/x-python","patch_set":52,"id":"b2fcdc6b_2efc1faa","line":133,"updated":"2026-04-10 03:56:37.000000000","message":"where are the hpe3par options defined and where are they being registered?","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        \"\"\"Sanity check to ensure we have required options set"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        required_flags \u003d [\u0027hpe3par_api_url\u0027, \u0027hpe3par_username\u0027,"},{"line_number":134,"context_line":"                          \u0027hpe3par_password\u0027, \u0027san_ip\u0027, \u0027san_login\u0027,"},{"line_number":135,"context_line":"                          \u0027san_password\u0027]"},{"line_number":136,"context_line":"        self.common.check_flags(self.configuration, required_flags)"}],"source_content_type":"text/x-python","patch_set":52,"id":"8f10c7c6_e29be311","line":133,"in_reply_to":"b2fcdc6b_2efc1faa","updated":"2026-04-10 06:17:25.000000000","message":"The hpe3par options are defined and registered from hpe_storage_flowkit_py library.","commit_id":"484d154949212add2be236ddd370852c97a1c481"}],"cinder/volume/drivers/hpe/alletramp_driver.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"dbecc397542edf987fd745d056cfce506b8420b3","unresolved":true,"context_lines":[{"line_number":70,"context_line":"    @staticmethod"},{"line_number":71,"context_line":"    def get_driver_options():"},{"line_number":72,"context_line":"        if alletramp_service is None:"},{"line_number":73,"context_line":"            return None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            return alletramp_service.AlletraMPService.get_driver_options()"}],"source_content_type":"text/x-python","patch_set":63,"id":"0aecc13b_076faf6a","line":73,"updated":"2026-06-03 14:22:09.000000000","message":"fake_hpeflowkit.py same get_driver_options returns empty [] hear it is none hear and other places.","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"81a7a6fb37bdd1e2b727adae7893cbda6b0e2c3e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    @staticmethod"},{"line_number":71,"context_line":"    def get_driver_options():"},{"line_number":72,"context_line":"        if alletramp_service is None:"},{"line_number":73,"context_line":"            return None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            return alletramp_service.AlletraMPService.get_driver_options()"}],"source_content_type":"text/x-python","patch_set":63,"id":"8d1d82c4_bb7f64df","line":73,"in_reply_to":"0aecc13b_076faf6a","updated":"2026-06-04 07:35:05.000000000","message":"Done","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":79,"context_line":"        # crashes with KeyError: \u0027pools\u0027 when the driver fails to initialize."},{"line_number":80,"context_line":"        self._stats \u003d {\u0027pools\u0027: {}}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    # Retrieve driver configuration options from the HPE flowkit client"},{"line_number":83,"context_line":"    @staticmethod"},{"line_number":84,"context_line":"    def get_driver_options():"},{"line_number":85,"context_line":"        if alletramp_service is None:"}],"source_content_type":"text/x-python","patch_set":71,"id":"49464cc5_c2dfebef","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":71},"updated":"2026-06-23 19:49:33.000000000","message":"Almost every method is preceded by a leading \"# ...\" comment instead of a\nproper docstring, while a handful of methods (failover_host, retype, ...) do\nuse docstrings. This is inconsistent with the rest of the Cinder drivers,\nwhich use docstrings. Please convert these descriptive comments to docstrings\n(or drop them where self-explanatory) for consistency.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # crashes with KeyError: \u0027pools\u0027 when the driver fails to initialize."},{"line_number":80,"context_line":"        self._stats \u003d {\u0027pools\u0027: {}}"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    # Retrieve driver configuration options from the HPE flowkit client"},{"line_number":83,"context_line":"    @staticmethod"},{"line_number":84,"context_line":"    def get_driver_options():"},{"line_number":85,"context_line":"        if alletramp_service is None:"}],"source_content_type":"text/x-python","patch_set":71,"id":"c26f3e6a_4d92aa0e","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":71},"in_reply_to":"49464cc5_c2dfebef","updated":"2026-06-26 09:01:00.000000000","message":"Done","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":473,"context_line":"            \"HPE:AlletraMP:hpe3par:persona\","},{"line_number":474,"context_line":"            \"Host Persona Extra-specs.\","},{"line_number":475,"context_line":"            _(\"Specifies the host persona property for a volume type. It \""},{"line_number":476,"context_line":"              \"overrides the hpe3par_cpg_snap setting. Defaults to the \""},{"line_number":477,"context_line":"              \"hpe3par_cpg_snap setting in the cinder.conf file. \""},{"line_number":478,"context_line":"              \"If hpe3par_cpg_snap is not set, \""},{"line_number":479,"context_line":"              \"it defaults to the hpe3par_cpg setting.\"),"}],"source_content_type":"text/x-python","patch_set":71,"id":"57e3b893_11c97b6c","line":476,"range":{"start_line":476,"start_character":29,"end_line":476,"end_character":45},"updated":"2026-06-23 19:49:33.000000000","message":"Copy-paste error: this is the *persona* property but the description talks\nabout hpe3par_cpg_snap / hpe3par_cpg defaults (copied from the snap_cpg\nproperty above). The persona description should explain the host persona\nand its default (\"2 - Generic-ALUA\").","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":473,"context_line":"            \"HPE:AlletraMP:hpe3par:persona\","},{"line_number":474,"context_line":"            \"Host Persona Extra-specs.\","},{"line_number":475,"context_line":"            _(\"Specifies the host persona property for a volume type. It \""},{"line_number":476,"context_line":"              \"overrides the hpe3par_cpg_snap setting. Defaults to the \""},{"line_number":477,"context_line":"              \"hpe3par_cpg_snap setting in the cinder.conf file. \""},{"line_number":478,"context_line":"              \"If hpe3par_cpg_snap is not set, \""},{"line_number":479,"context_line":"              \"it defaults to the hpe3par_cpg setting.\"),"}],"source_content_type":"text/x-python","patch_set":71,"id":"87f12707_f963cc53","line":476,"range":{"start_line":476,"start_character":29,"end_line":476,"end_character":45},"in_reply_to":"57e3b893_11c97b6c","updated":"2026-06-26 09:01:00.000000000","message":"Addressed","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2e92f944f3b8faa74fbe617d9ba91b5dbfd8d64d","unresolved":true,"context_lines":[{"line_number":1073,"context_line":"    VERSION \u003d \"1.0\""},{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":"    # The name of the CI wiki page."},{"line_number":1076,"context_line":"    CI_WIKI_NAME \u003d \"HPE_AlletraMP_NVMeTCP_CI\""},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":1079,"context_line":"        \"\"\"Initialize the HPE Alletra MP NVMe-oF TCP driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":72,"id":"4a43eb73_b7299aa5","line":1076,"updated":"2026-07-10 22:45:27.000000000","message":"I don\u0027t think any of the third-party CI pages that are the values\nof CI_WIKI_NAME for the various alletramp drivers exist, and there are no\nentries for them on\n   https://wiki.openstack.org/wiki/ThirdPartySystems\n(see the bottom of that page for instructions on how to create the pages)","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2683e7809d8d1726c46d5c7dc1378be2a16941f3","unresolved":false,"context_lines":[{"line_number":1073,"context_line":"    VERSION \u003d \"1.0\""},{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":"    # The name of the CI wiki page."},{"line_number":1076,"context_line":"    CI_WIKI_NAME \u003d \"HPE_AlletraMP_NVMeTCP_CI\""},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":1079,"context_line":"        \"\"\"Initialize the HPE Alletra MP NVMe-oF TCP driver.\"\"\""}],"source_content_type":"text/x-python","patch_set":72,"id":"c885ac9e_1f7ac19b","line":1076,"in_reply_to":"4a43eb73_b7299aa5","updated":"2026-07-13 14:23:49.000000000","message":"We have updated the wiki with the additional names for CI (HPE AlletraMP FC CI,HPE AlletraMP iSCSI CI and HPE AlletraMP NVMeTCP CI) and added details as well.","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b57fb0d28966f79dc00daba94e8dd9f5ca234452","unresolved":true,"context_lines":[{"line_number":1164,"context_line":"            alletra_mp_service.terminate_nvme_connection("},{"line_number":1165,"context_line":"                volume,"},{"line_number":1166,"context_line":"                connector,"},{"line_number":1167,"context_line":"                lambda vol_name,"},{"line_number":1168,"context_line":"                hostname: self._is_multiattach("},{"line_number":1169,"context_line":"                    volume,"},{"line_number":1170,"context_line":"                    hostname))"},{"line_number":1171,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1172,"context_line":"            msg \u003d (_(\"Terminate connection failed: %(err)s\") %"},{"line_number":1173,"context_line":"                   {\u0027err\u0027: str(e)})"}],"source_content_type":"text/x-python","patch_set":72,"id":"2e2c45dc_55136a47","line":1170,"range":{"start_line":1167,"start_character":0,"end_line":1170,"end_character":30},"updated":"2026-07-20 15:12:06.000000000","message":"Indentation makes this lambda parameter pretty confusing \n\n```suggestion\n                (lambda vol_name,\n                    hostname: self._is_multiattach(\n                        volume,\n                        hostname))\n```","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2d6a10bfd3fbc8f0d9937e8dcd9bcf8eeda41cca","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"            alletra_mp_service.terminate_nvme_connection("},{"line_number":1165,"context_line":"                volume,"},{"line_number":1166,"context_line":"                connector,"},{"line_number":1167,"context_line":"                lambda vol_name,"},{"line_number":1168,"context_line":"                hostname: self._is_multiattach("},{"line_number":1169,"context_line":"                    volume,"},{"line_number":1170,"context_line":"                    hostname))"},{"line_number":1171,"context_line":"        except flowkit_exceptions.HPEStorageException as e:"},{"line_number":1172,"context_line":"            msg \u003d (_(\"Terminate connection failed: %(err)s\") %"},{"line_number":1173,"context_line":"                   {\u0027err\u0027: str(e)})"}],"source_content_type":"text/x-python","patch_set":72,"id":"73f08498_36716919","line":1170,"range":{"start_line":1167,"start_character":0,"end_line":1170,"end_character":30},"in_reply_to":"2e2c45dc_55136a47","updated":"2026-07-21 04:54:07.000000000","message":"Addressed review comment and submitted patch","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"}],"cinder/volume/drivers/hpe/alletramp_service.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"dbecc397542edf987fd745d056cfce506b8420b3","unresolved":true,"context_lines":[{"line_number":386,"context_line":"                    \u0027remote_api_url\u0027: remote_api_url})"},{"line_number":387,"context_line":"            LOG.debug(\"remote_username: %(remote_username)s\","},{"line_number":388,"context_line":"                      {\u0027remote_username\u0027: remote_username})"},{"line_number":389,"context_line":"            LOG.debug(\"remote_password: %(remote_password)s\","},{"line_number":390,"context_line":"                      {\u0027remote_password\u0027: remote_password})"},{"line_number":391,"context_line":"            repl_session_mgr \u003d SessionManager("},{"line_number":392,"context_line":"                remote_api_url, remote_username, remote_password)"}],"source_content_type":"text/x-python","patch_set":63,"id":"fd4c2e6d_073cbb4d","line":389,"updated":"2026-06-03 14:22:09.000000000","message":"looks like remote pass in plain text is printed in logs","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"81a7a6fb37bdd1e2b727adae7893cbda6b0e2c3e","unresolved":false,"context_lines":[{"line_number":386,"context_line":"                    \u0027remote_api_url\u0027: remote_api_url})"},{"line_number":387,"context_line":"            LOG.debug(\"remote_username: %(remote_username)s\","},{"line_number":388,"context_line":"                      {\u0027remote_username\u0027: remote_username})"},{"line_number":389,"context_line":"            LOG.debug(\"remote_password: %(remote_password)s\","},{"line_number":390,"context_line":"                      {\u0027remote_password\u0027: remote_password})"},{"line_number":391,"context_line":"            repl_session_mgr \u003d SessionManager("},{"line_number":392,"context_line":"                remote_api_url, remote_username, remote_password)"}],"source_content_type":"text/x-python","patch_set":63,"id":"1fb1b796_81e11540","line":389,"in_reply_to":"fd4c2e6d_073cbb4d","updated":"2026-06-04 07:35:05.000000000","message":"Done","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"dbecc397542edf987fd745d056cfce506b8420b3","unresolved":true,"context_lines":[{"line_number":3037,"context_line":"                        \"Could not log in to Alletra MP array (%s) with the \""},{"line_number":3038,"context_line":"                        \"provided credentials.\", array_name)"},{"line_number":3039,"context_line":"                finally:"},{"line_number":3040,"context_line":"                    self._destroy_replication_client(repl_session_mgr)"},{"line_number":3041,"context_line":""},{"line_number":3042,"context_line":"            self._replication_targets \u003d replication_targets"},{"line_number":3043,"context_line":"            if self._is_replication_configured_correct():"}],"source_content_type":"text/x-python","patch_set":63,"id":"653af4ab_7c65bf43","line":3040,"updated":"2026-06-03 14:22:09.000000000","message":"can you initialize repl_session_mgr out side try block to ba available in finally block.","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"81a7a6fb37bdd1e2b727adae7893cbda6b0e2c3e","unresolved":false,"context_lines":[{"line_number":3037,"context_line":"                        \"Could not log in to Alletra MP array (%s) with the \""},{"line_number":3038,"context_line":"                        \"provided credentials.\", array_name)"},{"line_number":3039,"context_line":"                finally:"},{"line_number":3040,"context_line":"                    self._destroy_replication_client(repl_session_mgr)"},{"line_number":3041,"context_line":""},{"line_number":3042,"context_line":"            self._replication_targets \u003d replication_targets"},{"line_number":3043,"context_line":"            if self._is_replication_configured_correct():"}],"source_content_type":"text/x-python","patch_set":63,"id":"59b4dc44_55418173","line":3040,"in_reply_to":"653af4ab_7c65bf43","updated":"2026-06-04 07:35:05.000000000","message":"Done","commit_id":"64dacacfdaeae60b1ce901b9c1b116625ea04951"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"63694ac4d8b93c039a9798a16222b8bb591f8cf3","unresolved":true,"context_lines":[{"line_number":477,"context_line":"            constants.AVG_BUSY_PERC: None,"},{"line_number":478,"context_line":"        }"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _get_cpg_capacity_stats(self, cpg_name, mib_to_gib):"},{"line_number":481,"context_line":"        stat_capabilities \u003d self._get_default_cpg_stat_capabilities()"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":64,"id":"789ba120_98b8dc00","line":480,"range":{"start_line":480,"start_character":48,"end_line":480,"end_character":58},"updated":"2026-06-05 14:33:57.000000000","message":"Why is this an argument passed in?  It looks like it should be a constant.","commit_id":"6ee1afd7ce43dd1e3306e8a96983d8a6b699cd41"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2d200e19e30a34ba8ebeb0d4a9e18698ebf35fb7","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            constants.AVG_BUSY_PERC: None,"},{"line_number":478,"context_line":"        }"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def _get_cpg_capacity_stats(self, cpg_name, mib_to_gib):"},{"line_number":481,"context_line":"        stat_capabilities \u003d self._get_default_cpg_stat_capabilities()"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":64,"id":"e53a9d46_a8474bb7","line":480,"range":{"start_line":480,"start_character":48,"end_line":480,"end_character":58},"in_reply_to":"789ba120_98b8dc00","updated":"2026-06-09 07:03:51.000000000","message":"Done","commit_id":"6ee1afd7ce43dd1e3306e8a96983d8a6b699cd41"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"33147f8b750234926c9d081e32cae675f8069572","unresolved":true,"context_lines":[{"line_number":799,"context_line":"            vol_encoded \u003d base64.encode_as_text(name.encode(\u0027utf-8\u0027))"},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        # 3par doesn\u0027t allow +, nor /"},{"line_number":802,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027+\u0027, \u0027.\u0027)"},{"line_number":803,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027/\u0027, \u0027-\u0027)"},{"line_number":804,"context_line":"        # strip off the \u003d\u003d as 3par doesn\u0027t like those."},{"line_number":805,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027\u003d\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":67,"id":"d2666af8_1cd3c975","line":802,"updated":"2026-06-12 14:15:22.000000000","message":"This is almost base64.urlsafe_b64encode(), any chance to just use that?","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"54146404d1fcfa55015e130cb8d1dea491973570","unresolved":false,"context_lines":[{"line_number":799,"context_line":"            vol_encoded \u003d base64.encode_as_text(name.encode(\u0027utf-8\u0027))"},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        # 3par doesn\u0027t allow +, nor /"},{"line_number":802,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027+\u0027, \u0027.\u0027)"},{"line_number":803,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027/\u0027, \u0027-\u0027)"},{"line_number":804,"context_line":"        # strip off the \u003d\u003d as 3par doesn\u0027t like those."},{"line_number":805,"context_line":"        vol_encoded \u003d vol_encoded.replace(\u0027\u003d\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":67,"id":"ec1b772e_0ebb9234","line":802,"in_reply_to":"d2666af8_1cd3c975","updated":"2026-06-16 07:08:44.000000000","message":"Acknowledged. We will fix it later with subsequent PR.","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"33147f8b750234926c9d081e32cae675f8069572","unresolved":true,"context_lines":[{"line_number":2567,"context_line":"                                                              is_snapshot\u003dTrue)"},{"line_number":2568,"context_line":""},{"line_number":2569,"context_line":"        # Make sure the reference is not in use."},{"line_number":2570,"context_line":"        if re.match(\u0027osv-*|oss-*|vvs-*|unm-*\u0027, target_snap_name):"},{"line_number":2571,"context_line":"            reason \u003d _(\"Reference must be for an unmanaged snapshot.\")"},{"line_number":2572,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":2573,"context_line":"                existing_ref\u003dtarget_snap_name,"}],"source_content_type":"text/x-python","patch_set":67,"id":"3821229e_494d71a0","line":2570,"updated":"2026-06-12 14:15:22.000000000","message":"Should this regex be\n\n    \u0027^osv-*|^oss-*|^vvs-*|^unm-*\n?\n\nThis looks like it might match unintended names.","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"54146404d1fcfa55015e130cb8d1dea491973570","unresolved":false,"context_lines":[{"line_number":2567,"context_line":"                                                              is_snapshot\u003dTrue)"},{"line_number":2568,"context_line":""},{"line_number":2569,"context_line":"        # Make sure the reference is not in use."},{"line_number":2570,"context_line":"        if re.match(\u0027osv-*|oss-*|vvs-*|unm-*\u0027, target_snap_name):"},{"line_number":2571,"context_line":"            reason \u003d _(\"Reference must be for an unmanaged snapshot.\")"},{"line_number":2572,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":2573,"context_line":"                existing_ref\u003dtarget_snap_name,"}],"source_content_type":"text/x-python","patch_set":67,"id":"55ac1bdf_01caaf97","line":2570,"in_reply_to":"3821229e_494d71a0","updated":"2026-06-16 07:08:44.000000000","message":"We addressed the review comment, but we preferred using startswith() as better option then regex as we want to specifically look for names starting with the prefix where as regex still has chance of matching with zero or more hyphens bcz of -*.","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"38cd5f9a1f18de942d1e1bbd84ec67f07b0f192e","unresolved":false,"context_lines":[{"line_number":2567,"context_line":"                                                              is_snapshot\u003dTrue)"},{"line_number":2568,"context_line":""},{"line_number":2569,"context_line":"        # Make sure the reference is not in use."},{"line_number":2570,"context_line":"        if re.match(\u0027osv-*|oss-*|vvs-*|unm-*\u0027, target_snap_name):"},{"line_number":2571,"context_line":"            reason \u003d _(\"Reference must be for an unmanaged snapshot.\")"},{"line_number":2572,"context_line":"            raise exception.ManageExistingInvalidReference("},{"line_number":2573,"context_line":"                existing_ref\u003dtarget_snap_name,"}],"source_content_type":"text/x-python","patch_set":67,"id":"43c94467_ac607746","line":2570,"in_reply_to":"55ac1bdf_01caaf97","updated":"2026-06-16 10:27:38.000000000","message":"re.match(\u0027osv-|oss-|vvs-|unm-\u0027, target_snap_name) already tries to match only at the start of the string, so adding ^ to each alternative is redundant. This is existing driver code and has been tested by QA already, now making any change at last moment will reiterate the testing cycles. So for this merge we woul like to go ahead with as it is.","commit_id":"fc569c6316bf2e4b10ceb0d91386bb0bc7d7300d"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"\"\"\"Volume driver common utilities for HPE Alletra MP Storage array."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The drivers requires the use of the san_ip, san_login,"},{"line_number":19,"context_line":"san_password settings for ssh connections into the Alletra MP"}],"source_content_type":"text/x-python","patch_set":71,"id":"701c2f0d_0fed2a7b","line":16,"range":{"start_line":16,"start_character":2,"end_line":16,"end_character":46},"updated":"2026-06-23 19:49:33.000000000","message":"Most tests in the test_file patch the service method (e.g. mock.patch.object(self.service,\n\u0027create_volume\u0027)) and only assert that the thin driver layer delegates to it.\nThat validates alletramp_driver.py wiring but leaves the ~8000-line\nalletramp_service.py (volume/snapshot/replication/QoS logic) almost entirely\nuncovered. For a new driver please add tests that exercise the service logic\nitself against the fake flowkit, not just the delegation.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"\"\"\"Volume driver common utilities for HPE Alletra MP Storage array."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The drivers requires the use of the san_ip, san_login,"},{"line_number":19,"context_line":"san_password settings for ssh connections into the Alletra MP"}],"source_content_type":"text/x-python","patch_set":71,"id":"7497a537_6bc9c033","line":16,"range":{"start_line":16,"start_character":2,"end_line":16,"end_character":46},"in_reply_to":"701c2f0d_0fed2a7b","updated":"2026-06-26 09:01:00.000000000","message":"Addressed.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":215,"context_line":"                default\u003dFalse,"},{"line_number":216,"context_line":"                help\u003d\"Enable CHAP authentication for iSCSI connections.\"),"},{"line_number":217,"context_line":"    cfg.BoolOpt(\u0027hpe3par_hostseesvlun\u0027,"},{"line_number":218,"context_line":"                deprecated_name\u003d\u0027hpe3par_hostseesvlun\u0027,"},{"line_number":219,"context_line":"                default\u003dTrue,"},{"line_number":220,"context_line":"                help\u003d\"When enabled, iSCSI VLUNs are created as \u0027host sees\u0027 \""},{"line_number":221,"context_line":"                \"type (without port matching) instead of the default \""}],"source_content_type":"text/x-python","patch_set":71,"id":"1047001e_58cdd638","line":218,"updated":"2026-06-23 19:49:33.000000000","message":"Why this option have a deprecated name? If you are just adding this new driver it should not have anything deprecated right? Furthermore if you were using a deprecation, those two values should be different.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                default\u003dFalse,"},{"line_number":216,"context_line":"                help\u003d\"Enable CHAP authentication for iSCSI connections.\"),"},{"line_number":217,"context_line":"    cfg.BoolOpt(\u0027hpe3par_hostseesvlun\u0027,"},{"line_number":218,"context_line":"                deprecated_name\u003d\u0027hpe3par_hostseesvlun\u0027,"},{"line_number":219,"context_line":"                default\u003dTrue,"},{"line_number":220,"context_line":"                help\u003d\"When enabled, iSCSI VLUNs are created as \u0027host sees\u0027 \""},{"line_number":221,"context_line":"                \"type (without port matching) instead of the default \""}],"source_content_type":"text/x-python","patch_set":71,"id":"bcb483d0_9eaec2bb","line":218,"in_reply_to":"1047001e_58cdd638","updated":"2026-06-26 09:01:00.000000000","message":"Done","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":639,"context_line":"                LOG.error(err)"},{"line_number":640,"context_line":"                raise exception.InvalidInput(reason\u003derr) from ex"},{"line_number":641,"context_line":"            except Exception:"},{"line_number":642,"context_line":"                raise"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"            pools.append(self._build_pool_stats("},{"line_number":645,"context_line":"                cpg_name, info, backend_state,"}],"source_content_type":"text/x-python","patch_set":71,"id":"1ce085a6_f21d6f54","line":642,"updated":"2026-06-23 19:49:33.000000000","message":"The `except Exception: raise` clause is a no-op (it just re-raises) and can\nbe removed entirely, unless you want to log something or take any action. It only adds noise. The same dead clause appears in\nget_cpg() above - please drop both.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                LOG.error(err)"},{"line_number":640,"context_line":"                raise exception.InvalidInput(reason\u003derr) from ex"},{"line_number":641,"context_line":"            except Exception:"},{"line_number":642,"context_line":"                raise"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"            pools.append(self._build_pool_stats("},{"line_number":645,"context_line":"                cpg_name, info, backend_state,"}],"source_content_type":"text/x-python","patch_set":71,"id":"58ad3f36_c12c2d80","line":642,"in_reply_to":"1ce085a6_f21d6f54","updated":"2026-06-26 09:01:00.000000000","message":"Addressed. Added log statement before raising exception","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":647,"context_line":"                capacity_stats, qos_support, thin_support,"},{"line_number":648,"context_line":"                compression_support, remotecopy_support))"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        self.stats \u003d {\u0027driver_version\u0027: \u00274.0\u0027,"},{"line_number":651,"context_line":"                      \u0027storage_protocol\u0027: None,"},{"line_number":652,"context_line":"                      \u0027vendor_name\u0027: \u0027Hewlett Packard Enterprise\u0027,"},{"line_number":653,"context_line":"                      \u0027volume_backend_name\u0027: None,"}],"source_content_type":"text/x-python","patch_set":71,"id":"4e589873_5a53d853","line":650,"range":{"start_line":650,"start_character":23,"end_line":650,"end_character":46},"updated":"2026-06-23 19:49:33.000000000","message":"does this really start on version 4?","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                capacity_stats, qos_support, thin_support,"},{"line_number":648,"context_line":"                compression_support, remotecopy_support))"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        self.stats \u003d {\u0027driver_version\u0027: \u00274.0\u0027,"},{"line_number":651,"context_line":"                      \u0027storage_protocol\u0027: None,"},{"line_number":652,"context_line":"                      \u0027vendor_name\u0027: \u0027Hewlett Packard Enterprise\u0027,"},{"line_number":653,"context_line":"                      \u0027volume_backend_name\u0027: None,"}],"source_content_type":"text/x-python","patch_set":71,"id":"b58562ea_8bc1fba1","line":650,"range":{"start_line":650,"start_character":23,"end_line":650,"end_character":46},"in_reply_to":"4e589873_5a53d853","updated":"2026-06-26 09:01:00.000000000","message":"Old driver was using 4.0 so to maintain the continuity changed it to 5.0","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":1609,"context_line":"                   and self._do_volume_replication_setup(volume)):"},{"line_number":1610,"context_line":"                    replication_flag \u003d True"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"        except Exception as ex:"},{"line_number":1613,"context_line":"            LOG.error(\"Exception: %s\", ex)"},{"line_number":1614,"context_line":"            raise exception.CinderException(ex) from ex"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"        return self._get_model_update(volume[\u0027host\u0027], cpg,"},{"line_number":1617,"context_line":"                                      replication\u003dreplication_flag,"}],"source_content_type":"text/x-python","patch_set":71,"id":"2ca94261_e6ac6501","line":1614,"range":{"start_line":1612,"start_character":8,"end_line":1614,"end_character":55},"updated":"2026-06-23 19:49:33.000000000","message":"This wraps a very large block in a bare `except Exception` and then re-raises\nas the generic `exception.CinderException`.\n  - the try/except should be narrowed to only the parts performing external\n    (array/REST) interaction, not the whole method body which includes local\n    bookkeeping that should never raise array errors;\n  - re-raising a generic CinderException loses information - prefer a specific\n    class such as exception.VolumeBackendAPIException(data\u003d...).\nPlease apply the same correction to every occurrence of this pattern.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":1609,"context_line":"                   and self._do_volume_replication_setup(volume)):"},{"line_number":1610,"context_line":"                    replication_flag \u003d True"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"        except Exception as ex:"},{"line_number":1613,"context_line":"            LOG.error(\"Exception: %s\", ex)"},{"line_number":1614,"context_line":"            raise exception.CinderException(ex) from ex"},{"line_number":1615,"context_line":""},{"line_number":1616,"context_line":"        return self._get_model_update(volume[\u0027host\u0027], cpg,"},{"line_number":1617,"context_line":"                                      replication\u003dreplication_flag,"}],"source_content_type":"text/x-python","patch_set":71,"id":"9097431e_66a2bb7c","line":1614,"range":{"start_line":1612,"start_character":8,"end_line":1614,"end_character":55},"in_reply_to":"2ca94261_e6ac6501","updated":"2026-06-26 09:01:00.000000000","message":"Addressed at all places.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":1778,"context_line":"            try:"},{"line_number":1779,"context_line":"                volume_wf.delete_volume(volume_name)"},{"line_number":1780,"context_line":"            except Exception:"},{"line_number":1781,"context_line":"                msg \u003d _(\"The volume is currently busy on the 3PAR \""},{"line_number":1782,"context_line":"                        \"and cannot be deleted at this time. \""},{"line_number":1783,"context_line":"                        \"You can try again later.\")"},{"line_number":1784,"context_line":"                raise exception.VolumeIsBusy(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":71,"id":"5159f67e_df7ae04d","line":1781,"range":{"start_line":1781,"start_character":61,"end_line":1781,"end_character":65},"updated":"2026-06-23 19:49:33.000000000","message":"Alletra? Please also remove other leftovers from the 3PAR driver.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":1778,"context_line":"            try:"},{"line_number":1779,"context_line":"                volume_wf.delete_volume(volume_name)"},{"line_number":1780,"context_line":"            except Exception:"},{"line_number":1781,"context_line":"                msg \u003d _(\"The volume is currently busy on the 3PAR \""},{"line_number":1782,"context_line":"                        \"and cannot be deleted at this time. \""},{"line_number":1783,"context_line":"                        \"You can try again later.\")"},{"line_number":1784,"context_line":"                raise exception.VolumeIsBusy(message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":71,"id":"44efb456_68c2fc3b","line":1781,"range":{"start_line":1781,"start_character":61,"end_line":1781,"end_character":65},"in_reply_to":"5159f67e_df7ae04d","updated":"2026-06-26 09:01:00.000000000","message":"Renamed all occurances of 3PAR to AlletraMP.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"}],"doc/source/configuration/block-storage/drivers/hpe-alletramp-driver.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":true,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* ``hpe3par:compression`` -  volume compression, which can be turned on and"},{"line_number":88,"context_line":"  off (default) by setting the value to ``true`` or ``false`` (default)."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* While creating volume on HPE Alletra MP storage system,"},{"line_number":91,"context_line":"  only below two combinations are supported. If any other combination is used,"},{"line_number":92,"context_line":"  then volume is not created."}],"source_content_type":"text/x-rst","patch_set":52,"id":"f74cc493_3d95d632","line":89,"updated":"2026-04-10 03:56:37.000000000","message":"Lines 90-95 are pretty important, you might want to put them in a \"warning\" box.  There\u0027s one in the ceph driver doc if you want to see an example.","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* ``hpe3par:compression`` -  volume compression, which can be turned on and"},{"line_number":88,"context_line":"  off (default) by setting the value to ``true`` or ``false`` (default)."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* While creating volume on HPE Alletra MP storage system,"},{"line_number":91,"context_line":"  only below two combinations are supported. If any other combination is used,"},{"line_number":92,"context_line":"  then volume is not created."}],"source_content_type":"text/x-rst","patch_set":52,"id":"63908dbf_27fe1ea5","line":89,"in_reply_to":"f74cc493_3d95d632","updated":"2026-04-10 06:17:25.000000000","message":"Done","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"fc065f8600f9db3a9dd4456b22e86d2555c02aa5","unresolved":true,"context_lines":[{"line_number":92,"context_line":"  then volume is not created."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  * thin volume: provisioning \u003d ``thin`` and compression \u003d ``false``"},{"line_number":95,"context_line":"  * deco volume: provisioning \u003d ``dedup`` and compression \u003d ``true``"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configure Alletra MP driver"}],"source_content_type":"text/x-rst","patch_set":52,"id":"70deed71_d0d99e2d","line":95,"range":{"start_line":95,"start_character":4,"end_line":95,"end_character":8},"updated":"2026-04-10 03:56:37.000000000","message":"should this be DECO (all caps)?","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"fc31d2a3e47d8cb97893c6f6945fbb3e165fe8fe","unresolved":false,"context_lines":[{"line_number":92,"context_line":"  then volume is not created."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  * thin volume: provisioning \u003d ``thin`` and compression \u003d ``false``"},{"line_number":95,"context_line":"  * deco volume: provisioning \u003d ``dedup`` and compression \u003d ``true``"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configure Alletra MP driver"}],"source_content_type":"text/x-rst","patch_set":52,"id":"33bf08fc_e548d95d","line":95,"range":{"start_line":95,"start_character":4,"end_line":95,"end_character":8},"in_reply_to":"70deed71_d0d99e2d","updated":"2026-04-10 06:17:25.000000000","message":"Done","commit_id":"484d154949212add2be236ddd370852c97a1c481"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"HPE Alletra MP Driver"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The HPE Alletra MP driver provides OpenStack Compute instances"},{"line_number":6,"context_line":"with access to HPE Alletra MP Storage system."}],"source_content_type":"text/x-rst","patch_set":71,"id":"a3b516db_1aab8b87","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":22},"updated":"2026-06-23 19:49:33.000000000","message":"The number of characters on the titles should match.","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"HPE Alletra MP Driver"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The HPE Alletra MP driver provides OpenStack Compute instances"},{"line_number":6,"context_line":"with access to HPE Alletra MP Storage system."}],"source_content_type":"text/x-rst","patch_set":71,"id":"1f1b9344_ab07fef1","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":22},"in_reply_to":"a3b516db_1aab8b87","updated":"2026-06-26 09:01:00.000000000","message":"Done","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":188,"context_line":"      # driver path: either one of below"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"      # FC driver path"},{"line_number":191,"context_line":"      volume_driver \u003d cinder.volume.drivers.hpe.alletramp.HPEAlletraMPFCDriver"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"      # iSCSI driver path"},{"line_number":194,"context_line":"      # If iSCSI driver is enabled then,"}],"source_content_type":"text/x-rst","patch_set":71,"id":"26babce1_87e89b3a","line":191,"range":{"start_line":191,"start_character":22,"end_line":191,"end_character":78},"updated":"2026-06-23 19:49:33.000000000","message":"cinder.volume.drivers.hpe.alletramp.HPEAlletraMPFCDriver -\u003e cinder.volume.drivers.hpe.alletramp_driver.HPEAlletraMP*Driver","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":188,"context_line":"      # driver path: either one of below"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"      # FC driver path"},{"line_number":191,"context_line":"      volume_driver \u003d cinder.volume.drivers.hpe.alletramp.HPEAlletraMPFCDriver"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"      # iSCSI driver path"},{"line_number":194,"context_line":"      # If iSCSI driver is enabled then,"}],"source_content_type":"text/x-rst","patch_set":71,"id":"89f9f715_84be5f77","line":191,"range":{"start_line":191,"start_character":22,"end_line":191,"end_character":78},"in_reply_to":"26babce1_87e89b3a","updated":"2026-06-26 09:01:00.000000000","message":"Done","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"}],"driver-requirements.txt":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"000345b7b5363c8dbd0220103b880d1b9f5766da","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Document dependencies that are only used if using"},{"line_number":2,"context_line":"# certain drivers.  This file is not managed by"},{"line_number":3,"context_line":"# requirements tools."},{"line_number":4,"context_line":"# check [extras] section of setup.cfg for versions."}],"source_content_type":"text/plain","patch_set":71,"id":"2079327f_0a0d2bed","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":51},"updated":"2026-06-23 19:49:33.000000000","message":"No need to add this file. It was deprecated in favor of pyproject.toml","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a7f1e2d702fe95f12c68e991916ee16d35fb7112","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Document dependencies that are only used if using"},{"line_number":2,"context_line":"# certain drivers.  This file is not managed by"},{"line_number":3,"context_line":"# requirements tools."},{"line_number":4,"context_line":"# check [extras] section of setup.cfg for versions."}],"source_content_type":"text/plain","patch_set":71,"id":"1035e765_affed260","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":51},"in_reply_to":"2079327f_0a0d2bed","updated":"2026-06-26 09:01:00.000000000","message":"Removed the driver_requirements.txt","commit_id":"4ba52e0a4f7daac90f19163e4dce38a76a76290b"}],"pyproject.toml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0cffa3d1891df7cb6cae6519037192c9703db4af","unresolved":true,"context_lines":[{"line_number":93,"context_line":"    \"rbd-iscsi-client\u003e\u003d0.1.8\", # Apache-2.0"},{"line_number":94,"context_line":"    \"python-linstor\u003e\u003d1.7.0\", # LGPLv3"},{"line_number":95,"context_line":"    \"psutil\u003e\u003d5.7.2\", # BSD"},{"line_number":96,"context_line":"    \"hpe-storage-flowkit\u003e\u003d0.1\", # Apache-2.0"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":"datacore \u003d ["},{"line_number":99,"context_line":"    \"websocket-client\u003e\u003d1.3.2\", # LGPLv2+"}],"source_content_type":"text/x-toml","patch_set":24,"id":"040d6719_f92eae01","line":96,"range":{"start_line":96,"start_character":5,"end_line":96,"end_character":24},"updated":"2026-01-28 14:01:04.000000000","message":"(not critical) I\u0027m wondering if code of this library is available somewhere ? I fond the pypi package but the pypi info does not include any link to its doc or repository.","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"3929db1a92fa2207bb75a9da7e49308c9590b8d5","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    \"rbd-iscsi-client\u003e\u003d0.1.8\", # Apache-2.0"},{"line_number":94,"context_line":"    \"python-linstor\u003e\u003d1.7.0\", # LGPLv3"},{"line_number":95,"context_line":"    \"psutil\u003e\u003d5.7.2\", # BSD"},{"line_number":96,"context_line":"    \"hpe-storage-flowkit\u003e\u003d0.1\", # Apache-2.0"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":"datacore \u003d ["},{"line_number":99,"context_line":"    \"websocket-client\u003e\u003d1.3.2\", # LGPLv2+"}],"source_content_type":"text/x-toml","patch_set":24,"id":"82460865_3aac3889","line":96,"range":{"start_line":96,"start_character":5,"end_line":96,"end_character":24},"in_reply_to":"040d6719_f92eae01","updated":"2026-01-29 04:59:06.000000000","message":"we will share after the merge","commit_id":"2c5c26a9f9f7c59d6c748d05a4f45ef3d461447b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"63694ac4d8b93c039a9798a16222b8bb591f8cf3","unresolved":true,"context_lines":[{"line_number":93,"context_line":"    \"rbd-iscsi-client\u003e\u003d0.1.8\", # Apache-2.0"},{"line_number":94,"context_line":"    \"python-linstor\u003e\u003d1.7.0\", # LGPLv3"},{"line_number":95,"context_line":"    \"psutil\u003e\u003d5.7.2\", # BSD"},{"line_number":96,"context_line":"    \"hpe-storage-flowkit-py\u003e\u003d0.7\", # Apache-2.0"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":"datacore \u003d ["},{"line_number":99,"context_line":"    \"websocket-client\u003e\u003d1.3.2\", # LGPLv2+"}],"source_content_type":"text/x-toml","patch_set":64,"id":"fc3da120_e8aaeb7d","line":96,"range":{"start_line":96,"start_character":29,"end_line":96,"end_character":32},"updated":"2026-06-05 14:33:57.000000000","message":"Should match the version at line 148","commit_id":"6ee1afd7ce43dd1e3306e8a96983d8a6b699cd41"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"2d200e19e30a34ba8ebeb0d4a9e18698ebf35fb7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    \"rbd-iscsi-client\u003e\u003d0.1.8\", # Apache-2.0"},{"line_number":94,"context_line":"    \"python-linstor\u003e\u003d1.7.0\", # LGPLv3"},{"line_number":95,"context_line":"    \"psutil\u003e\u003d5.7.2\", # BSD"},{"line_number":96,"context_line":"    \"hpe-storage-flowkit-py\u003e\u003d0.7\", # Apache-2.0"},{"line_number":97,"context_line":"]"},{"line_number":98,"context_line":"datacore \u003d ["},{"line_number":99,"context_line":"    \"websocket-client\u003e\u003d1.3.2\", # LGPLv2+"}],"source_content_type":"text/x-toml","patch_set":64,"id":"e9819bfb_3591c185","line":96,"range":{"start_line":96,"start_character":29,"end_line":96,"end_character":32},"in_reply_to":"fc3da120_e8aaeb7d","updated":"2026-06-09 07:03:51.000000000","message":"Done","commit_id":"6ee1afd7ce43dd1e3306e8a96983d8a6b699cd41"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2e92f944f3b8faa74fbe617d9ba91b5dbfd8d64d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"rbd-iscsi-client\u003e\u003d0.1.8\", # Apache-2.0"},{"line_number":93,"context_line":"    \"python-linstor\u003e\u003d1.7.0\", # LGPLv3"},{"line_number":94,"context_line":"    \"psutil\u003e\u003d5.7.2\", # BSD"},{"line_number":95,"context_line":"    \"hpe-storage-flowkit-py\u003e\u003d0.9.3\", # Apache-2.0"},{"line_number":96,"context_line":"]"},{"line_number":97,"context_line":"datacore \u003d ["},{"line_number":98,"context_line":"    \"websocket-client\u003e\u003d1.3.2\", # LGPLv2+"}],"source_content_type":"text/x-toml","patch_set":72,"id":"971316b8_867c8460","line":95,"range":{"start_line":95,"start_character":29,"end_line":95,"end_character":34},"updated":"2026-07-10 22:45:27.000000000","message":"Verified that this is the same version proposed to the requirements repo:\nhttps://review.opendev.org/c/openstack/requirements/+/974322","commit_id":"4db2b1e3582d373ff3ae77c54f61e881dd3cabe2"}]}
