)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"28504f5a896f922596e967bb7e544963c8ec3245","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     rakshay \u003cakshay.ranade@ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-09-16 20:24:58 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"IBM SVF bug fix for broken SSH execution retry logic."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The retry delay was triggered for SSH CLI commands that should not be retried,"},{"line_number":10,"context_line":"and the exception handling code prevented retries from occurring when attempts"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"cd5b19d1_ec4aaf7a","line":7,"updated":"2026-10-21 16:54:26.000000000","message":"Nit: drop the trailing period from the subject, and use Closes-Bug: #2161082 instead of Fixes bug 2161082 so Launchpad is updated automatically on merge.","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"bacdd25a70dc179d03f43935db6081b9f6f5deda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"86c22f70_fb2c7185","updated":"2026-07-27 07:37:48.000000000","message":"recheck","commit_id":"6ecd45728b89e2196990939e0dde757f0de5ea40"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"da70211989f1b72228539437e9f36cb79cbe1cef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f540e367_85995bee","updated":"2026-07-27 07:47:30.000000000","message":"recheck","commit_id":"6ecd45728b89e2196990939e0dde757f0de5ea40"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"8c2c99e2dd5c396985149af88ac8587f8f777bc5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bd5f13a4_37d8edc8","updated":"2026-09-01 09:19:58.000000000","message":"Zuul \u0026 IBM CI passed","commit_id":"5aa86348115dc8bcc2ada35aa88b3277992b9a71"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"018a5931a03e9be9a839f98e5b7883cdef2e86c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c74fdc51_0b17df62","updated":"2026-07-28 15:31:18.000000000","message":"recheck","commit_id":"5aa86348115dc8bcc2ada35aa88b3277992b9a71"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"980602238a484d83a93f5505a1fc7f7e5bfc014a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"04789878_47e1fdf3","updated":"2026-07-29 04:21:56.000000000","message":"run-IBM-CI","commit_id":"5aa86348115dc8bcc2ada35aa88b3277992b9a71"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"698916e70c2244d7d4c59f00774b8737dfd463f9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d80e12ba_89660b9d","updated":"2026-08-31 15:40:57.000000000","message":"run-IBM-CI","commit_id":"5aa86348115dc8bcc2ada35aa88b3277992b9a71"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"d4e2526461772343ed442833b45b78aea8347cf5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"31aa9f2b_01d00b9b","in_reply_to":"d80e12ba_89660b9d","updated":"2026-09-01 09:37:56.000000000","message":"Done","commit_id":"5aa86348115dc8bcc2ada35aa88b3277992b9a71"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"04c4815d36584e454e949607ee61db949af894b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c6687466_d0540a98","updated":"2026-09-16 14:57:19.000000000","message":"@harsh.ailani@ibm.com, @rutuja.pawar@ibm.com, @jayaanand.borra@netapp.com, @vivek.pandey11@ibm.com I had to rebase this patch to resolve merge conflict. Please re-approve this.","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"28504f5a896f922596e967bb7e544963c8ec3245","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4bb38d99_7cd55c93","updated":"2026-10-21 16:54:26.000000000","message":"Four small nits inline, none worth a respin on their own, but please fold them in if you touch it again.","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"},{"author":{"_account_id":24882,"name":"Sami Yessou","email":"sami.yessou@switch.ch","username":"sami","status":"Cloud engineer"},"change_message_id":"84012cdda38ccb3868ce1dfea99752d8077b8ddc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5d8016d6_139e51c7","updated":"2026-09-25 16:03:03.000000000","message":"Hi everyone,\nDo you know why this review is not beind merged?","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"}],"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e4ca49916b38e00bd63198522caeab78f4f830f5","unresolved":false,"context_lines":[{"line_number":9509,"context_line":"        with (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":9510,"context_line":"              \u0027convert_volume_to_hyperswap\u0027)) as convert_volume_to_hyperswap, \\"},{"line_number":9511,"context_line":"            (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":9512,"context_line":"                               \u0027ensure_vdisk_no_fc_mappings\u0027)) as ensure_vdisk_no_fc_mappings:"},{"line_number":9513,"context_line":"            self.driver.create_volume_from_snapshot(vol2, snap)"},{"line_number":9514,"context_line":"            ensure_vdisk_no_fc_mappings.assert_called()"},{"line_number":9515,"context_line":"            convert_volume_to_hyperswap.assert_called()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8fc94e83_7360eb0c","line":9512,"updated":"2026-07-20 13:11:47.000000000","message":"pep8: E501 line too long (94 \u003e 79 characters)","commit_id":"e7201838fae6610c2c967fde890a4cb05f501476"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e4ca49916b38e00bd63198522caeab78f4f830f5","unresolved":false,"context_lines":[{"line_number":10385,"context_line":"        with (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":10386,"context_line":"              \u0027convert_volume_to_hyperswap\u0027)) as convert_volume_to_hyperswap, \\"},{"line_number":10387,"context_line":"            (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":10388,"context_line":"                               \u0027ensure_vdisk_no_fc_mappings\u0027)) as ensure_vdisk_no_fc_mappings:"},{"line_number":10389,"context_line":""},{"line_number":10390,"context_line":"            # Create cg from source cg"},{"line_number":10391,"context_line":"            model_update, volumes_model_update \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"b7040af2_23530fef","line":10388,"updated":"2026-07-20 13:11:47.000000000","message":"pep8: E501 line too long (94 \u003e 79 characters)","commit_id":"e7201838fae6610c2c967fde890a4cb05f501476"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e4ca49916b38e00bd63198522caeab78f4f830f5","unresolved":false,"context_lines":[{"line_number":10511,"context_line":"        with (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":10512,"context_line":"              \u0027convert_volume_to_hyperswap\u0027)) as convert_volume_to_hyperswap, \\"},{"line_number":10513,"context_line":"            (mock.patch.object(storwize_svc_common.StorwizeHelpers,"},{"line_number":10514,"context_line":"                               \u0027ensure_vdisk_no_fc_mappings\u0027)) as ensure_vdisk_no_fc_mappings:"},{"line_number":10515,"context_line":""},{"line_number":10516,"context_line":"            # Create cg from source cg"},{"line_number":10517,"context_line":"            model_update, volumes_model_update \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"79b4e5cc_9b78e728","line":10514,"updated":"2026-07-20 13:11:47.000000000","message":"pep8: E501 line too long (94 \u003e 79 characters)","commit_id":"e7201838fae6610c2c967fde890a4cb05f501476"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_const.py":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"28504f5a896f922596e967bb7e544963c8ec3245","unresolved":true,"context_lines":[{"line_number":31,"context_line":"                DEV_MODEL_STORWIZE_V5000_1YR, DEV_MODEL_FLASH_V9000,"},{"line_number":32,"context_line":"                DEV_MODEL_FLEX, DEV_MODEL_STORWIZE_V5000E)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEFAULT_GR_SLEEP \u003d random.randint(20, 500) / 100.0"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# constants used for replication"},{"line_number":37,"context_line":"GLOBAL \u003d \u0027global\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"6d7185d1_a3a34abf","line":34,"updated":"2026-10-21 16:54:26.000000000","message":"`random.randint()` here runs once at import, so every retry in the process sleeps the same fixed value. The old class attribute behaved the same way, but `replication.py` used to draw a fresh value per retry and now does not. If the intent is jitter, make this a small function returning a fresh value; if a fixed back-off is fine, a plain constant is clearer than a random one.","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":38319,"name":"Rutuja Pawar","email":"rutuja.pawar@ibm.com","username":"rutuja.pawar"},"change_message_id":"ba58d8215ba3cb3aa45d42aae5f452ca0e7a72b8","unresolved":true,"context_lines":[{"line_number":4092,"context_line":""},{"line_number":4093,"context_line":"        except Exception:"},{"line_number":4094,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":4095,"context_line":"                LOG.error(\"Error running SSH command: %s\", command)"},{"line_number":4096,"context_line":""},{"line_number":4097,"context_line":"    def _is_ascii(self, value):"},{"line_number":4098,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"96f3d8bd_e413a936","line":4095,"updated":"2026-07-28 09:49:47.000000000","message":"A single failure is logged two times— once in here, and again in _run_ssh.","commit_id":"6ecd45728b89e2196990939e0dde757f0de5ea40"},{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"9249d60fd6daf04e5360acfaf6e43097dadde03e","unresolved":false,"context_lines":[{"line_number":4092,"context_line":""},{"line_number":4093,"context_line":"        except Exception:"},{"line_number":4094,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":4095,"context_line":"                LOG.error(\"Error running SSH command: %s\", command)"},{"line_number":4096,"context_line":""},{"line_number":4097,"context_line":"    def _is_ascii(self, value):"},{"line_number":4098,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fcd1b21_9cdf01de","line":4095,"in_reply_to":"96f3d8bd_e413a936","updated":"2026-07-28 11:54:36.000000000","message":"Thanks. I have removed the redundant exception block to address this.","commit_id":"6ecd45728b89e2196990939e0dde757f0de5ea40"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"28504f5a896f922596e967bb7e544963c8ec3245","unresolved":true,"context_lines":[{"line_number":4085,"context_line":"                    last_exception \u003d e"},{"line_number":4086,"context_line":"                    if attempts \u003e 0:"},{"line_number":4087,"context_line":"                        time.sleep(storwize_const.DEFAULT_GR_SLEEP)"},{"line_number":4088,"context_line":"            # All attempts exhausted — format and raise the last exception"},{"line_number":4089,"context_line":"            try:"},{"line_number":4090,"context_line":"                std_err \u003d last_exception.stderr"},{"line_number":4091,"context_line":"                if std_err is not None and not self._is_ascii(std_err):"}],"source_content_type":"text/x-python","patch_set":4,"id":"b849cfb4_f9f775cf","line":4088,"updated":"2026-10-21 16:54:26.000000000","message":"Nit: the em dash in this comment is non-ASCII; please use -- or a comma.","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"}],"releasenotes/notes/ibm-svf-ssh-execretry-logic-correction-560ed982f2f66296.yaml":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"28504f5a896f922596e967bb7e544963c8ec3245","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    IBM SVf bug fix for broken SSH execution retry code."},{"line_number":5,"context_line":"    `Bug #2161082 \u003chttps://bugs.launchpad.net/cinder/+bug/2161082\u003e`_: Fixed"},{"line_number":6,"context_line":"    broken SSH command retry handling. The code had two issues: the retry"},{"line_number":7,"context_line":"    delay was triggered for CLI commands that should not be retried, and the"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"88d4624f_bfacb78c","line":4,"updated":"2026-10-21 16:54:26.000000000","message":"Nit: the first sentence duplicates the second, and the rest repeats the commit message. One short paragraph is enough, for example: `\"Bug #2161082 \u003c...\u003e_:` Fixed the SSH command retry logic in the IBM SVf driver so a failed command is retried up to the configured number of attempts and no longer sleeps before raising the final error.\"","commit_id":"b4867432f679db751eb878a7d1ff5a5805112845"}]}
