)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6995ff9c4aec3c8bd5bd2effc6c0e9df4482da04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1e5b9ffa_f9c97106","updated":"2026-08-04 13:51:28.000000000","message":"major refactor since the last version - quick lab test passed but need to re-test thoroughly","commit_id":"a74e8ebb0dfb44f708a8853cfa1145a9ba887301"}],"ironic/drivers/modules/redfish/firmware.py":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"a9f0897d061da16ddd1ef34a4a1f3a1516937541","unresolved":true,"context_lines":[{"line_number":644,"context_line":"        try:"},{"line_number":645,"context_line":"            self._submit_simple_update(node, update_service, fw_upd)"},{"line_number":646,"context_line":"        except Exception as e:"},{"line_number":647,"context_line":"            LOG.error(\u0027Batched firmware submission failed at component \u0027"},{"line_number":648,"context_line":"                      \u0027%(component)s (%(idx)d/%(total)d) for node \u0027"},{"line_number":649,"context_line":"                      \u0027%(node)s. Error: %(error)s. No consolidated \u0027"},{"line_number":650,"context_line":"                      \u0027reboot will be issued.\u0027,"},{"line_number":651,"context_line":"                      {\u0027component\u0027: component, \u0027idx\u0027: idx + 1,"},{"line_number":652,"context_line":"                       \u0027total\u0027: len(settings), \u0027node\u0027: node.uuid,"},{"line_number":653,"context_line":"                       \u0027error\u0027: e})"},{"line_number":654,"context_line":"            raise"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"    def _execute_batched_non_bmc_updates(self, task, update_service, settings):"}],"source_content_type":"text/x-python","patch_set":1,"id":"d7fa1b8a_9a1039fd","line":653,"range":{"start_line":647,"start_character":11,"end_line":653,"end_character":35},"updated":"2026-08-05 11:41:40.000000000","message":"let\u0027s reconsider https://review.opendev.org/c/openstack/ironic/+/999231/comment/c2ea5c16_1eeaa538/ in this version","commit_id":"a74e8ebb0dfb44f708a8853cfa1145a9ba887301"}],"ironic/tests/unit/drivers/modules/redfish/test_firmware.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3504,"context_line":"    # --- R2 tests: async step flags, error dispatch, cache parity ---"},{"line_number":3505,"context_line":""},{"line_number":3506,"context_line":"    def _test_batch_reboot_async_flags(self, step_attr, reboot_flag,"},{"line_number":3507,"context_line":"                                        polling_flag, mock_power_action,"},{"line_number":3508,"context_line":"                                        mock_get_task_monitor):"},{"line_number":3509,"context_line":"        \"\"\"Verify consolidated reboot sets correct async flags.\"\"\""},{"line_number":3510,"context_line":"        settings \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"f2417134_61d08d81","line":3507,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3505,"context_line":""},{"line_number":3506,"context_line":"    def _test_batch_reboot_async_flags(self, step_attr, reboot_flag,"},{"line_number":3507,"context_line":"                                        polling_flag, mock_power_action,"},{"line_number":3508,"context_line":"                                        mock_get_task_monitor):"},{"line_number":3509,"context_line":"        \"\"\"Verify consolidated reboot sets correct async flags.\"\"\""},{"line_number":3510,"context_line":"        settings \u003d ["},{"line_number":3511,"context_line":"            {\u0027component\u0027: \u0027bios\u0027, \u0027url\u0027: \u0027http://bios/v1.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"f1ae1d1b_4648546b","line":3508,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3601,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3602,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3603,"context_line":"            task.node.service_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3604,"context_line":"                                       \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3605,"context_line":"            task.node.set_driver_internal_info(\u0027redfish_fw_updates\u0027, settings)"},{"line_number":3606,"context_line":"            task.node.set_driver_internal_info("},{"line_number":3607,"context_line":"                \u0027firmware_batch_current_index\u0027, 1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d9dc07a9_e9e0f1a5","line":3604,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3622,"context_line":"            self.assertTrue(info.get(\u0027agent_secret_token_pregenerated\u0027))"},{"line_number":3623,"context_line":""},{"line_number":3624,"context_line":"    def _test_bmc_completion_reboot_flags(self, step_attr, reboot_flag,"},{"line_number":3625,"context_line":"                                           polling_flag,"},{"line_number":3626,"context_line":"                                           mock_power_action,"},{"line_number":3627,"context_line":"                                           mock_get_bmc_version,"},{"line_number":3628,"context_line":"                                           mock_get_update_service):"}],"source_content_type":"text/x-python","patch_set":4,"id":"d1d8b32d_d8a34692","line":3625,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3623,"context_line":""},{"line_number":3624,"context_line":"    def _test_bmc_completion_reboot_flags(self, step_attr, reboot_flag,"},{"line_number":3625,"context_line":"                                           polling_flag,"},{"line_number":3626,"context_line":"                                           mock_power_action,"},{"line_number":3627,"context_line":"                                           mock_get_bmc_version,"},{"line_number":3628,"context_line":"                                           mock_get_update_service):"},{"line_number":3629,"context_line":"        \"\"\"Verify BMC completion reboot sets correct async flags.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9946905a_559f38f2","line":3626,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3624,"context_line":"    def _test_bmc_completion_reboot_flags(self, step_attr, reboot_flag,"},{"line_number":3625,"context_line":"                                           polling_flag,"},{"line_number":3626,"context_line":"                                           mock_power_action,"},{"line_number":3627,"context_line":"                                           mock_get_bmc_version,"},{"line_number":3628,"context_line":"                                           mock_get_update_service):"},{"line_number":3629,"context_line":"        \"\"\"Verify BMC completion reboot sets correct async flags.\"\"\""},{"line_number":3630,"context_line":"        settings \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"40aed41d_b1e1d321","line":3627,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3625,"context_line":"                                           polling_flag,"},{"line_number":3626,"context_line":"                                           mock_power_action,"},{"line_number":3627,"context_line":"                                           mock_get_bmc_version,"},{"line_number":3628,"context_line":"                                           mock_get_update_service):"},{"line_number":3629,"context_line":"        \"\"\"Verify BMC completion reboot sets correct async flags.\"\"\""},{"line_number":3630,"context_line":"        settings \u003d ["},{"line_number":3631,"context_line":"            {\u0027component\u0027: \u0027bmc\u0027, \u0027url\u0027: \u0027http://bmc/v1.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"46dd47bf_141ed857","line":3628,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3720,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3721,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3722,"context_line":"            task.node.service_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3723,"context_line":"                                       \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3724,"context_line":"            task.node.deploy_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3725,"context_line":"                                      \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3726,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"65cca7a2_f8072409","line":3723,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3722,"context_line":"            task.node.service_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3723,"context_line":"                                       \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3724,"context_line":"            task.node.deploy_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3725,"context_line":"                                      \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3726,"context_line":""},{"line_number":3727,"context_line":"            firmware_interface \u003d redfish_fw.RedfishFirmware()"},{"line_number":3728,"context_line":"            firmware_interface._report_step_error("}],"source_content_type":"text/x-python","patch_set":4,"id":"1e50215d_3a84b622","line":3725,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3770,"context_line":"    def test_continue_updates_last_deploy("},{"line_number":3771,"context_line":"            self, mock_resume_deploy, mock_validate, mock_cache):"},{"line_number":3772,"context_line":"        settings \u003d [{\u0027component\u0027: \u0027bios\u0027, \u0027url\u0027: \u0027http://bios/v1.0.0\u0027,"},{"line_number":3773,"context_line":"                      \u0027task_monitor\u0027: \u0027/tasks/1\u0027}]"},{"line_number":3774,"context_line":""},{"line_number":3775,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3776,"context_line":"                                  shared\u003dFalse) as task:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1490ed3d_1bfa5733","line":3773,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3775,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3776,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3777,"context_line":"            task.node.deploy_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3778,"context_line":"                                      \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3779,"context_line":"            task.node.set_driver_internal_info(\u0027redfish_fw_updates\u0027, settings)"},{"line_number":3780,"context_line":"            task.node.save()"},{"line_number":3781,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"36cfb427_ffd866f0","line":3778,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3807,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3808,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3809,"context_line":"            task.node.service_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3810,"context_line":"                                       \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3811,"context_line":"            task.driver.firmware.update(task, settings)"},{"line_number":3812,"context_line":""},{"line_number":3813,"context_line":"            original_stamp \u003d task.node.driver_internal_info.get("}],"source_content_type":"text/x-python","patch_set":4,"id":"6e2df545_63a1157a","line":3810,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e0912532d4bb4543d29783c21771b7d8a618666e","unresolved":false,"context_lines":[{"line_number":3847,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":3848,"context_line":"                                  shared\u003dFalse) as task:"},{"line_number":3849,"context_line":"            task.node.clean_step \u003d {\u0027step\u0027: \u0027update\u0027,"},{"line_number":3850,"context_line":"                                     \u0027interface\u0027: \u0027firmware\u0027}"},{"line_number":3851,"context_line":"            task.node.provision_state \u003d states.CLEANWAIT"},{"line_number":3852,"context_line":"            task.node.set_driver_internal_info("},{"line_number":3853,"context_line":"                \u0027cleaning_disable_ramdisk\u0027, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a036afc_38cf5416","line":3850,"updated":"2026-08-05 14:12:22.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"249f21d03146182cc162986815599ffb8ed5987d"}]}
