)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"408a300a0c6cde530299198c2835fa2f5acb2dfa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cecd17ad_53311af2","updated":"2026-04-06 10:09:53.000000000","message":"Recheck","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"21f0c0e36927452bdd11fcbc2fa8b81c093b36c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"287e0ce9_958f9ae0","updated":"2026-04-08 15:52:28.000000000","message":"recheck","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"b1abea6dd944d403f85136c3a5edd6304f279100","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"661fa043_4eaecb1a","updated":"2026-04-06 10:10:28.000000000","message":"recheck","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"b1abea6dd944d403f85136c3a5edd6304f279100","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d69af4e2_340bb1d3","in_reply_to":"cecd17ad_53311af2","updated":"2026-04-06 10:10:28.000000000","message":"Done","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"712047d8c197ba6ec603891f19ecd4aac4c0db7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9faba869_e574432f","updated":"2026-04-28 13:31:46.000000000","message":"I\u0027m not sure why you need the change to _insert_vmedia_in_resource, it feels like the change to insert_vmedia may be enough.","commit_id":"1ce40a0c68ab5f4acf7af41335eec7375605dfae"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"5a05fd5218ed898f766e93bb76316a494e4f3394","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"72d62593_2de60844","updated":"2026-05-03 17:50:10.000000000","message":"To fix the related bug (improve error message), I think the change to _insert_vmedia effectively does that. Optionally, just like you suggested in the bug, also include a \"verify the image URL is reachable from the BMC, check firewall and HTTP server\" hint.","commit_id":"1ce40a0c68ab5f4acf7af41335eec7375605dfae"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"9bd340c8_3a8a02cf","in_reply_to":"cecd17ad_53311af2","updated":"2026-05-20 11:09:51.000000000","message":"Done","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"}],"ironic/drivers/modules/redfish/boot.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"712047d8c197ba6ec603891f19ecd4aac4c0db7c","unresolved":true,"context_lines":[{"line_number":311,"context_line":"    raise exception.InvalidParameterValue(exc_msg)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"@tenacity.retry(retry\u003dtenacity.retry_if_exception(_test_retry),"},{"line_number":315,"context_line":"                stop\u003dtenacity.stop_after_attempt(3),"},{"line_number":316,"context_line":"                wait\u003dtenacity.wait_fixed(3),"},{"line_number":317,"context_line":"                reraise\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7cf3ad46_460ae55f","side":"PARENT","line":314,"updated":"2026-04-28 13:31:46.000000000","message":"I\u0027m curious why you need to remove tenacity. We already accumulate all errors in the mutable err_msgs argument, what else is needed?","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"5a05fd5218ed898f766e93bb76316a494e4f3394","unresolved":true,"context_lines":[{"line_number":311,"context_line":"    raise exception.InvalidParameterValue(exc_msg)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"@tenacity.retry(retry\u003dtenacity.retry_if_exception(_test_retry),"},{"line_number":315,"context_line":"                stop\u003dtenacity.stop_after_attempt(3),"},{"line_number":316,"context_line":"                wait\u003dtenacity.wait_fixed(3),"},{"line_number":317,"context_line":"                reraise\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"a520273d_8a52a294","side":"PARENT","line":314,"in_reply_to":"4da32016_98320502","updated":"2026-05-03 17:50:10.000000000","message":"++","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"7abea5210b57ea201bea1c21ef51ca3e4faf3bb9","unresolved":true,"context_lines":[{"line_number":311,"context_line":"    raise exception.InvalidParameterValue(exc_msg)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"@tenacity.retry(retry\u003dtenacity.retry_if_exception(_test_retry),"},{"line_number":315,"context_line":"                stop\u003dtenacity.stop_after_attempt(3),"},{"line_number":316,"context_line":"                wait\u003dtenacity.wait_fixed(3),"},{"line_number":317,"context_line":"                reraise\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"4da32016_98320502","side":"PARENT","line":314,"in_reply_to":"7cf3ad46_460ae55f","updated":"2026-04-29 16:35:57.000000000","message":"Indeed, I think this whole function can remain as it is","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"a308700d82f64a9f84ea74be718851951885f25f","unresolved":true,"context_lines":[{"line_number":420,"context_line":"                err_msgs.append(err_msg)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"            e.node_uuid \u003d task.node.uuid"},{"line_number":423,"context_line":"            return False"},{"line_number":424,"context_line":"        # NOTE(janders): On Cisco C845A M8 (and potentially other systems),"},{"line_number":425,"context_line":"        # attempting to use a virtual media slot that doesn\u0027t support remote"},{"line_number":426,"context_line":"        # media insertion may result in HTTP 405 (Method Not Allowed)."}],"source_content_type":"text/x-python","patch_set":8,"id":"57376e8d_e3a2d669","side":"PARENT","line":423,"range":{"start_line":423,"start_character":0,"end_line":423,"end_character":24},"updated":"2026-05-03 17:53:53.000000000","message":"Looking at git history, this return False was originally raise (commit 1a0f1cd54, story #2008504, when the decorator was on the outer _insert_vmedia and the function had no inner/outer split). later raise was changed to return False, which appears to have silently broken retry, since retry_if_exception only fires on raised exceptions.","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"d9c80886a3034b42fb6ed8933daadf23b081f41c","unresolved":true,"context_lines":[{"line_number":420,"context_line":"                err_msgs.append(err_msg)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"            e.node_uuid \u003d task.node.uuid"},{"line_number":423,"context_line":"            return False"},{"line_number":424,"context_line":"        # NOTE(janders): On Cisco C845A M8 (and potentially other systems),"},{"line_number":425,"context_line":"        # attempting to use a virtual media slot that doesn\u0027t support remote"},{"line_number":426,"context_line":"        # media insertion may result in HTTP 405 (Method Not Allowed)."}],"source_content_type":"text/x-python","patch_set":8,"id":"72c670ef_0f24cf51","side":"PARENT","line":423,"range":{"start_line":423,"start_character":0,"end_line":423,"end_character":24},"in_reply_to":"2616ebae_748b4864","updated":"2026-05-08 12:37:43.000000000","message":"\u0027Yep, but the idea https://github.com/openshift/openstack-ironic/commit/7e4ffe7c80c36fb9de797c70982c928bb7c31b76 is actually correct. Before your change, the last retry would cause ServerSideError to be raised into _insert_vmedia...\u0027\n\nWouldn\u0027t the inner function retry when it raised an exception, because of the @tenacity.retry decorator?","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2928f6278a073020d5bf05b18e601ad2cfaeb92b","unresolved":true,"context_lines":[{"line_number":420,"context_line":"                err_msgs.append(err_msg)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"            e.node_uuid \u003d task.node.uuid"},{"line_number":423,"context_line":"            return False"},{"line_number":424,"context_line":"        # NOTE(janders): On Cisco C845A M8 (and potentially other systems),"},{"line_number":425,"context_line":"        # attempting to use a virtual media slot that doesn\u0027t support remote"},{"line_number":426,"context_line":"        # media insertion may result in HTTP 405 (Method Not Allowed)."}],"source_content_type":"text/x-python","patch_set":8,"id":"2616ebae_748b4864","side":"PARENT","line":423,"range":{"start_line":423,"start_character":0,"end_line":423,"end_character":24},"in_reply_to":"57376e8d_e3a2d669","updated":"2026-05-07 11:45:54.000000000","message":"Yep, but the idea https://github.com/openshift/openstack-ironic/commit/7e4ffe7c80c36fb9de797c70982c928bb7c31b76 is actually correct. Before your change, the last retry would cause ServerSideError to be raised into `_insert_vmedia`, which does not handle it, so it would fall through and bypass the entire `err_msgs` logic. After your change, `_insert_vmedia` and its `err_msgs` logic works correctly but retrying does not.\n\nIt\u0027s further complicated by the fact that returning False has two meanings now: ServerSideError and no suitable device (except that the latter is broken too - see my following comment). I don\u0027t think we need to retry on no suitable devices, only on ServerSideError.\n\nMaybe we get back to raising ServerSideError and use the current retrying logic, but make sure the exception is handled in `_insert_vmedia`, so that the `err_msgs` logic is not lost? And leave False to mean \"no suitable devices / all devices errored\"?","commit_id":"f700d3da53fdecd703d1ea396b1f4bdd0b253679"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"5a05fd5218ed898f766e93bb76316a494e4f3394","unresolved":true,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"            continue"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        # Retry up to 3 times on ServerSideError, capturing each error"},{"line_number":398,"context_line":"        # so we can report both the first and last error to the operator."},{"line_number":399,"context_line":"        # https://storyboard.openstack.org/#!/story/2008504"},{"line_number":400,"context_line":"        max_attempts \u003d 3"}],"source_content_type":"text/x-python","patch_set":8,"id":"188a51b7_15fa2740","line":397,"range":{"start_line":397,"start_character":0,"end_line":397,"end_character":70},"updated":"2026-05-03 17:50:10.000000000","message":"So the existing _test_retry code today should already be doing this but seems like dead code.\n\nIf the broken retry is what you were working around with the manual loop, the smaller alternative is changing return False back to raise and wrapping the call sites in _insert_vmedia with try/except ServerSideError: continue to preserve manager fallback.\n\nProbably as a separate patch.","commit_id":"1ce40a0c68ab5f4acf7af41335eec7375605dfae"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2928f6278a073020d5bf05b18e601ad2cfaeb92b","unresolved":true,"context_lines":[{"line_number":297,"context_line":"                return"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    if err_msgs:"},{"line_number":300,"context_line":"        if len(err_msgs) \u003d\u003d 1 or err_msgs[0] \u003d\u003d err_msgs[-1]:"},{"line_number":301,"context_line":"            exc_msg \u003d _(\"Virtual media mount failed for node %(node)s \""},{"line_number":302,"context_line":"                        \"with image %(url)s. Error: %(error)s\") % {"},{"line_number":303,"context_line":"                \u0027node\u0027: task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":9,"id":"54633b21_ca097d7d","line":300,"updated":"2026-05-07 11:45:54.000000000","message":"Sorry for misleading you initially. I think this aspect of the code is actually correct in the original version (although I like comparing `err_msgs[0]` and `err_msgs[-1]`: you can keep this bit). I\u0027ll comment below on what actually breaks the logic.","commit_id":"83f7b953ae079cb4b0f40bf42c98cea85208c0ba"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2928f6278a073020d5bf05b18e601ad2cfaeb92b","unresolved":true,"context_lines":[{"line_number":452,"context_line":"                continue"},{"line_number":453,"context_line":"            raise"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"        LOG.info(\"Inserted boot media %(boot_url)s into \""},{"line_number":456,"context_line":"                 \"%(boot_device)s for node \""},{"line_number":457,"context_line":"                 \"%(node)s\", {\u0027node\u0027: task.node.uuid,"},{"line_number":458,"context_line":"                              \u0027boot_url\u0027: boot_url,"}],"source_content_type":"text/x-python","patch_set":9,"id":"b06c34c1_f87b7499","line":455,"updated":"2026-05-07 11:45:54.000000000","message":"It looks like this code branch is reachable even if we fail all devices. This needs fixing too. I.e. log and return True on after insert_vmedia on line 405 and return False here.\n\nLet\u0027s make sure we have an explicit unit test for this case.","commit_id":"83f7b953ae079cb4b0f40bf42c98cea85208c0ba"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6b2cf370_c876c38b","in_reply_to":"188a51b7_15fa2740","updated":"2026-05-20 11:09:51.000000000","message":"Done. Will address broken retry separately.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c92c4e08_0e80e5e7","in_reply_to":"2616ebae_748b4864","updated":"2026-05-20 11:09:51.000000000","message":"Done. Acknowledged, will address in a follow-up patch.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"66bfce58_751aeb75","in_reply_to":"4da32016_98320502","updated":"2026-05-20 11:09:51.000000000","message":"Done","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"5ab02514_3640f463","in_reply_to":"54633b21_ca097d7d","updated":"2026-05-20 11:09:51.000000000","message":"Done. Kept the err_msgs[0] \u003d\u003d err_msgs[-1] comparison as suggested.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"243f8519_ce8cff73","in_reply_to":"57376e8d_e3a2d669","updated":"2026-05-20 11:09:51.000000000","message":"Done. Acknowledged, will address broken retry in a separate patch.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8311d238_f3a36255","in_reply_to":"72c670ef_0f24cf51","updated":"2026-05-20 11:09:51.000000000","message":"Done","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4b2588a7_680fa4c2","in_reply_to":"7cf3ad46_460ae55f","updated":"2026-05-20 11:09:51.000000000","message":"Done. Tenacity was restored in PS9.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6bcad5ba_16c21c2f","in_reply_to":"a520273d_8a52a294","updated":"2026-05-20 11:09:51.000000000","message":"Done","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f999683e_ff281719","in_reply_to":"b06c34c1_f87b7499","updated":"2026-05-20 11:09:51.000000000","message":"Done. Added return False and a unit test for this case in PS10.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"}],"ironic/tests/unit/drivers/modules/redfish/test_boot.py":[{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"2d5af1d415d490cd013220a07cf29e9f894ecb59","unresolved":true,"context_lines":[{"line_number":3468,"context_line":"        self.assertTrue(redfish_boot._is_image_unreachable_error(error_msg))"},{"line_number":3469,"context_line":""},{"line_number":3470,"context_line":"    def test_detects_host_unreachable(self):"},{"line_number":3471,"context_line":"        error_msg \u003d \"Host unreachable: 192.168.1.100\""},{"line_number":3472,"context_line":"        self.assertTrue(redfish_boot._is_image_unreachable_error(error_msg))"},{"line_number":3473,"context_line":""},{"line_number":3474,"context_line":"    def test_detects_no_route_to_host(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"47b800b4_d321f4f7","line":3471,"updated":"2026-04-10 14:19:54.000000000","message":"We perhaps shouldn\u0027t hardcode an IP here","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"09a8326059ff1860d117910aa3c49df495163602","unresolved":false,"context_lines":[{"line_number":3468,"context_line":"        self.assertTrue(redfish_boot._is_image_unreachable_error(error_msg))"},{"line_number":3469,"context_line":""},{"line_number":3470,"context_line":"    def test_detects_host_unreachable(self):"},{"line_number":3471,"context_line":"        error_msg \u003d \"Host unreachable: 192.168.1.100\""},{"line_number":3472,"context_line":"        self.assertTrue(redfish_boot._is_image_unreachable_error(error_msg))"},{"line_number":3473,"context_line":""},{"line_number":3474,"context_line":"    def test_detects_no_route_to_host(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff611371_82371a1d","line":3471,"in_reply_to":"47b800b4_d321f4f7","updated":"2026-05-08 22:57:18.000000000","message":"Done","commit_id":"9b614f504b016e90ab29550aad028d83a9437d60"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0d6a1845_2f6fd525","in_reply_to":"47b800b4_d321f4f7","updated":"2026-05-20 11:09:51.000000000","message":"Done. That test class was removed in PS9.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"}],"releasenotes/notes/vmedia-insert-error-improvement-a1b2c3d4e5f6g7h8.yaml":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"c516d3fa60b63b3980912df75924831bebbb426b","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Improved virtual media insertion error messages to include the node"},{"line_number":5,"context_line":"    UUID and the image URL for easier debugging. When multiple virtual"},{"line_number":6,"context_line":"    media mount attempts fail with different errors, both the first and"},{"line_number":7,"context_line":"    last error messages are now reported."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"0ad95feb_d839a2f2","line":7,"range":{"start_line":5,"start_character":49,"end_line":7,"end_character":41},"updated":"2026-05-04 15:41:05.000000000","message":"tks for the update.\n\nI will not block this from landing, but this release note is not entirely accurate. The code already returned first and last errors, there\u0027s an improvement though; to not return a duplicate first/last errors with your patch.\n\nQuestion for REviewers: Do we even need a release note for this change? I guess it doesn\u0027t hurt to have one.","commit_id":"83f7b953ae079cb4b0f40bf42c98cea85208c0ba"},{"author":{"_account_id":38437,"name":"mabulgu","display_name":"Aykut Bulgu","email":"abulgu@redhat.com","username":"mabulgu"},"change_message_id":"a5dc5a883277ed64eb2e52e87b57a476a6ce8219","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d0097a28_2741b363","in_reply_to":"0ad95feb_d839a2f2","updated":"2026-05-20 11:09:51.000000000","message":"Done. Updated release note in PS10 to be more accurate.","commit_id":"6755dc085cc83ce5556284b72ac08b3a934341aa"}]}
