)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d76fb70aca9b444ad68ba517c9c1000fc53fd153","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cb354f83_1448b74b","updated":"2025-12-18 14:54:23.000000000","message":"This, definitely, needs unit tests and a release note.","commit_id":"2347649b739b5152d9286a6dc3e7cd8edc01ffc7"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bc0e7a98e682d57d986620a87d12674b759cbfab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"15efeb7d_9dd21a55","updated":"2026-01-07 18:39:50.000000000","message":"Thank you for your reviews Julia and Dmitry. Uploaded revisited version.","commit_id":"70f1a72962d31d6bd952d68a058cdd6c34cf7443"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"79b74169c9e448ccbde21fd81071e1516b55a1b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"18bee5c4_c384d847","updated":"2026-01-08 08:37:18.000000000","message":"recheck ironic-tempest-ipa-partition-uefi-pxe-grub2","commit_id":"dccd77330ae7719e7ad5ae4e99460934fbbae606"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"180c55ada32db1c626d74ac8810ce3328838e1a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"221ce5fb_e74800c4","updated":"2026-01-21 07:23:31.000000000","message":"recheck","commit_id":"2d253a04f563bb93ad8a08b9bd4be1ac8aa2857e"}],"ironic/conf/redfish.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ae0e0ac884c2804647d75151d8692b98e9f535a","unresolved":true,"context_lines":[{"line_number":209,"context_line":"               default\u003d5,"},{"line_number":210,"context_line":"               help\u003d_(\u0027Initial interval in seconds between retry attempts \u0027"},{"line_number":211,"context_line":"                      \u0027for POST-related boot device errors. Exponential \u0027"},{"line_number":212,"context_line":"                      \u0027backoff is applied with this as the starting value.\u0027)),"},{"line_number":213,"context_line":"]"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"d46f6028_3791b66f","line":212,"updated":"2026-01-07 17:50:59.000000000","message":"Nothing against an exponential backoff if you think it\u0027s needed (is it?). But calling the option `*_interval` is pretty inconsistency with other `*_interval` values in the same group, so let\u0027s invent a better name.","commit_id":"51bd842cfff953c19c2c51d22ab9621faae08fec"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bc0e7a98e682d57d986620a87d12674b759cbfab","unresolved":false,"context_lines":[{"line_number":209,"context_line":"               default\u003d5,"},{"line_number":210,"context_line":"               help\u003d_(\u0027Initial interval in seconds between retry attempts \u0027"},{"line_number":211,"context_line":"                      \u0027for POST-related boot device errors. Exponential \u0027"},{"line_number":212,"context_line":"                      \u0027backoff is applied with this as the starting value.\u0027)),"},{"line_number":213,"context_line":"]"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3872dd7a_b0544f9d","line":212,"in_reply_to":"d46f6028_3791b66f","updated":"2026-01-07 18:39:50.000000000","message":"The server we\u0027ve put this on is quite pathological so exponential feels safer although you\u0027re probably right.\nChanged _interval to _delay. Good point.","commit_id":"51bd842cfff953c19c2c51d22ab9621faae08fec"}],"ironic/drivers/modules/redfish/management.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d76fb70aca9b444ad68ba517c9c1000fc53fd153","unresolved":true,"context_lines":[{"line_number":129,"context_line":"    if not isinstance(exception, sushy.exceptions.BadRequestError):"},{"line_number":130,"context_line":"        return False"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    error_str \u003d str(exception)"},{"line_number":133,"context_line":"    return \u0027UnableToModifyDuringSystemPOST\u0027 in error_str"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"8e24620c_08d23a8b","line":132,"updated":"2025-12-18 14:54:23.000000000","message":"So, it might make sense to actually log something in this sort of case in debug mode. Maybe this happens to frequently, but it can send things on a very different path and when there is issues, having that insight would be huge for another developer troubleshooting interactions.","commit_id":"2347649b739b5152d9286a6dc3e7cd8edc01ffc7"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bc0e7a98e682d57d986620a87d12674b759cbfab","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    if not isinstance(exception, sushy.exceptions.BadRequestError):"},{"line_number":130,"context_line":"        return False"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    error_str \u003d str(exception)"},{"line_number":133,"context_line":"    return \u0027UnableToModifyDuringSystemPOST\u0027 in error_str"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"eb3f4e81_21aa2f88","line":132,"in_reply_to":"8e24620c_08d23a8b","updated":"2026-01-07 18:39:50.000000000","message":"Done","commit_id":"2347649b739b5152d9286a6dc3e7cd8edc01ffc7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d76fb70aca9b444ad68ba517c9c1000fc53fd153","unresolved":true,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    # Retry delays for UnableToModifyDuringSystemPOST"},{"line_number":184,"context_line":"    retry_delays \u003d [5, 10, 15, 20, 30]"},{"line_number":185,"context_line":"    last_exception \u003d None"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    for attempt in range(len(retry_delays) + 1):"},{"line_number":188,"context_line":"        try:"},{"line_number":189,"context_line":"            # NOTE(TheJulia): In sushy, it is uri, due to the convention used"},{"line_number":190,"context_line":"            # in the standard. URL is used internally in ironic."}],"source_content_type":"text/x-python","patch_set":1,"id":"405e7016_f17ef448","line":187,"range":{"start_line":184,"start_character":0,"end_line":187,"end_character":48},"updated":"2025-12-18 14:54:23.000000000","message":"Same comments as cid\u0027s comments on the prior patch plus mine.","commit_id":"2347649b739b5152d9286a6dc3e7cd8edc01ffc7"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bc0e7a98e682d57d986620a87d12674b759cbfab","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    # Retry delays for UnableToModifyDuringSystemPOST"},{"line_number":184,"context_line":"    retry_delays \u003d [5, 10, 15, 20, 30]"},{"line_number":185,"context_line":"    last_exception \u003d None"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    for attempt in range(len(retry_delays) + 1):"},{"line_number":188,"context_line":"        try:"},{"line_number":189,"context_line":"            # NOTE(TheJulia): In sushy, it is uri, due to the convention used"},{"line_number":190,"context_line":"            # in the standard. URL is used internally in ironic."}],"source_content_type":"text/x-python","patch_set":1,"id":"730a7311_8ab209ea","line":187,"range":{"start_line":184,"start_character":0,"end_line":187,"end_character":48},"in_reply_to":"405e7016_f17ef448","updated":"2026-01-07 18:39:50.000000000","message":"I think these concerns should now be addressed.","commit_id":"2347649b739b5152d9286a6dc3e7cd8edc01ffc7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0ae0e0ac884c2804647d75151d8692b98e9f535a","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    # Logging callback for retry attempts (closure captures task)"},{"line_number":182,"context_line":"    def _log_post_boot_retry(retry_state):"},{"line_number":183,"context_line":"        LOG.info(\u0027BMC is in POST, unable to modify boot device for \u0027"},{"line_number":184,"context_line":"                 \u0027node %(node)s. Retrying in %(delay).1f seconds \u0027"},{"line_number":185,"context_line":"                 \u0027(attempt %(attempt)d/%(total)d)\u0027,"},{"line_number":186,"context_line":"                 {\u0027node\u0027: task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"d33724f1_9bf7e7c9","line":183,"updated":"2026-01-07 17:50:59.000000000","message":"s/info/warning/ I think","commit_id":"51bd842cfff953c19c2c51d22ab9621faae08fec"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bc0e7a98e682d57d986620a87d12674b759cbfab","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    # Logging callback for retry attempts (closure captures task)"},{"line_number":182,"context_line":"    def _log_post_boot_retry(retry_state):"},{"line_number":183,"context_line":"        LOG.info(\u0027BMC is in POST, unable to modify boot device for \u0027"},{"line_number":184,"context_line":"                 \u0027node %(node)s. Retrying in %(delay).1f seconds \u0027"},{"line_number":185,"context_line":"                 \u0027(attempt %(attempt)d/%(total)d)\u0027,"},{"line_number":186,"context_line":"                 {\u0027node\u0027: task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"89c7dfc3_4cc0eec6","line":183,"in_reply_to":"d33724f1_9bf7e7c9","updated":"2026-01-07 18:39:50.000000000","message":"Done","commit_id":"51bd842cfff953c19c2c51d22ab9621faae08fec"}]}
