)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ede86138ea0e82e89b41513f7061a290bd8b325","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     MahnoorAsghar \u003cmasghar@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-07-10 18:17:08 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When using virtual media, soft power off before ejecting virtual media after inspection, regardless of CONF.inspector.power_off. Do not soft power off if PXE boot is enabled."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Signed-off-by: Mahnoor Asghar \u003cmasghar@redhat.com\u003e"},{"line_number":10,"context_line":"Change-Id: If365a23e92beb163b5d89a9fd05ae5f797655d9a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"e8fcf082_e822532e","line":7,"updated":"2026-07-10 17:21:41.000000000","message":"As a reviewer, I feel like I need a bit more context to understand why. Please elaborate the commit message.","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ede86138ea0e82e89b41513f7061a290bd8b325","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-07-10 18:17:08 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When using virtual media, soft power off before ejecting virtual media after inspection, regardless of CONF.inspector.power_off. Do not soft power off if PXE boot is enabled."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Signed-off-by: Mahnoor Asghar \u003cmasghar@redhat.com\u003e"},{"line_number":10,"context_line":"Change-Id: If365a23e92beb163b5d89a9fd05ae5f797655d9a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"d2c250c8_c70cba50","line":8,"updated":"2026-07-10 17:21:41.000000000","message":"Is there a bug this relates to?","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ee6b36d49acd8a2e8f69aa4dd797240868614e6e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"During managed in-band inspection tear-down, virtual media could be"},{"line_number":10,"context_line":"ejected before the ramdisk OS shut down. That caused filesystem"},{"line_number":11,"context_line":"corruption and soft power-off timeouts, especially on iDRAC nodes with"},{"line_number":12,"context_line":"disable_power_off set (e.g. BMH spec.online\u003dfalse)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"For virtual media boot, issue a soft power off before ejecting media,"},{"line_number":15,"context_line":"regardless of [inspector]power_off. Skip both if fast track or"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"a5494b5d_56198c84","line":12,"updated":"2026-07-20 16:54:47.000000000","message":"`spec.online` and `disable_power_off` are unrelated, not sure what you mean here","commit_id":"5585cd8ec5b8701af85edbde84385beaaf964185"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"df3b775818602ad0ebd4bf38122cfc9f9aeea2d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6c768f6d_72d5b0db","updated":"2026-07-09 18:06:10.000000000","message":"Testing this locally","commit_id":"fcf0ae99bdaeb715e3d44893b3da86ce4dc08de3"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"da29f5c7b99ba2a81685b53cb9ed7285e03bedce","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"744ae4ae_a37b87fc","updated":"2026-07-10 15:12:54.000000000","message":"Behaviour:\n\nBoot type, Fast track (is_fast_track), disable_power_off, Ramdisk cleanup\nPXE, false, false, clean_up_ramdisk()\nPXE, false, true, clean_up_ramdisk()\nPXE, true, false, clean_up_ramdisk()\nPXE, true, true, clean_up_ramdisk()\nvmedia, false, false, SOFT_POWER_OFF → clean_up_ramdisk()\nvmedia, false, true, skip\nvmedia, true, false, skip\nvmedia, true, true, skip","commit_id":"e38323b20a978549e661b6e6a94bdf8cf0ccb1ef"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"0c709539a967a3fae20c121d16b646d65af3586d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"272db1ef_b89a5c9a","in_reply_to":"744ae4ae_a37b87fc","updated":"2026-07-10 15:15:04.000000000","message":"| Boot Type | Fast Track (`is_fast_track`) | Disable Power Off | Ramdisk Cleanup Behavior |\n| :--- | :---: | :---: | :--- |\n| PXE | `false` | `false` | `clean_up_ramdisk()` |\n| PXE | `false` | `true` | `clean_up_ramdisk()` |\n| PXE | `true` | `false` | `clean_up_ramdisk()` |\n| PXE | `true` | `true` | `clean_up_ramdisk()` |\n| vmedia | `false` | `false` | `SOFT_POWER_OFF` → `clean_up_ramdisk()` |\n| vmedia | `false` | `true` | *skip* |\n| vmedia | `true` | `false` | *skip* |\n| vmedia | `true` | `true` | *skip* |","commit_id":"e38323b20a978549e661b6e6a94bdf8cf0ccb1ef"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"0e906834111f5c8dfaba2707d9bab8896a1a2600","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"18fbad0b_770c8ba7","updated":"2026-07-14 14:05:54.000000000","message":"Testing","commit_id":"5585cd8ec5b8701af85edbde84385beaaf964185"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"ceb663b220a69abaae5c8cc111ffaa25ec4461da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"da1e3e78_23f5731a","updated":"2026-07-20 14:32:46.000000000","message":"Testing passed locally and no issues in downstream CI as well","commit_id":"5585cd8ec5b8701af85edbde84385beaaf964185"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"1c9f91a0bd071e68e7994139e30a22b45e3273bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b7a7b778_7699b306","updated":"2026-07-23 16:29:43.000000000","message":"Testing","commit_id":"de48ff4f3a00c0435fbd3470a424baa61290cd7f"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"59ce1aef4953e2dd6a4f1a40e11ac381c6c3d3e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bc8a5681_1f23e1e6","updated":"2026-07-24 13:55:52.000000000","message":"Testing done successfully","commit_id":"de48ff4f3a00c0435fbd3470a424baa61290cd7f"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"f79edcb850cedd4f8d885fc440aecb0700295378","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5cd6ebeb_db46cf5a","updated":"2026-07-23 18:45:41.000000000","message":"recheck\nFailure in ironic-tempest-uefi-redfish-vmedia-4k looks unrelated","commit_id":"de48ff4f3a00c0435fbd3470a424baa61290cd7f"}],"ironic/drivers/modules/inspector/interface.py":[{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"484ba937c1b863d0616f3690b1a50c06c2a22662","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                      \u0027 disable_power_off\u003d%s)\u0027, task.node.uuid,"},{"line_number":46,"context_line":"                      cond_utils.is_fast_track(task),"},{"line_number":47,"context_line":"                      task.node.disable_power_off)"},{"line_number":48,"context_line":"        elif \u0027pxe_boot\u0027 in task.driver.boot.capabilities:"},{"line_number":49,"context_line":"            # Network PXE boot only cleans conductor-side files; soft power"},{"line_number":50,"context_line":"            # off is unnecessary."},{"line_number":51,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"c911db9b_6603e88e","line":48,"updated":"2026-07-09 18:06:48.000000000","message":"Does this look alright?","commit_id":"fcf0ae99bdaeb715e3d44893b3da86ce4dc08de3"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"7ecca9c5985dd4700c25d3d3be3e28ba7648c3b6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                      \u0027 disable_power_off\u003d%s)\u0027, task.node.uuid,"},{"line_number":46,"context_line":"                      cond_utils.is_fast_track(task),"},{"line_number":47,"context_line":"                      task.node.disable_power_off)"},{"line_number":48,"context_line":"        elif \u0027pxe_boot\u0027 in task.driver.boot.capabilities:"},{"line_number":49,"context_line":"            # Network PXE boot only cleans conductor-side files; soft power"},{"line_number":50,"context_line":"            # off is unnecessary."},{"line_number":51,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fefdde5e_3f77a861","line":48,"in_reply_to":"c911db9b_6603e88e","updated":"2026-07-10 16:20:53.000000000","message":"Done","commit_id":"fcf0ae99bdaeb715e3d44893b3da86ce4dc08de3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ede86138ea0e82e89b41513f7061a290bd8b325","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        task.node, \u0027driver_internal_info\u0027, _IRONIC_MANAGES_BOOT)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if ironic_manages_boot:"},{"line_number":38,"context_line":"        if \u0027pxe_boot\u0027 in task.driver.boot.capabilities:"},{"line_number":39,"context_line":"            # Network PXE boot only cleans conductor-side files; soft power"},{"line_number":40,"context_line":"            # off is unnecessary."},{"line_number":41,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9474ef0d_61683a43","line":38,"updated":"2026-07-10 17:21:41.000000000","message":"I think it might be cleaner to make a net new helper. I guess what your trying to delineate is clean_up_ramdisk from being called in vmedia cases with fast track or power off being disabled, but it should likely be called regardless in the end.","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"0e906834111f5c8dfaba2707d9bab8896a1a2600","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        task.node, \u0027driver_internal_info\u0027, _IRONIC_MANAGES_BOOT)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    if ironic_manages_boot:"},{"line_number":38,"context_line":"        if \u0027pxe_boot\u0027 in task.driver.boot.capabilities:"},{"line_number":39,"context_line":"            # Network PXE boot only cleans conductor-side files; soft power"},{"line_number":40,"context_line":"            # off is unnecessary."},{"line_number":41,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0f37555b_a72f6dd1","line":38,"in_reply_to":"9474ef0d_61683a43","updated":"2026-07-14 14:05:54.000000000","message":"Yes, I\u0027m trying to not call clean_up_ramdisk in the virtual media case, when fast track is enabled, or power off is disabled.\n\n\u0027but it should likely be called regardless in the end.` Why....","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ede86138ea0e82e89b41513f7061a290bd8b325","unresolved":true,"context_lines":[{"line_number":39,"context_line":"            # Network PXE boot only cleans conductor-side files; soft power"},{"line_number":40,"context_line":"            # off is unnecessary."},{"line_number":41,"context_line":"            try:"},{"line_number":42,"context_line":"                task.driver.boot.clean_up_ramdisk(task)"},{"line_number":43,"context_line":"            except Exception as exc:"},{"line_number":44,"context_line":"                errors.append(_(\u0027unable to clean up ramdisk boot: %s\u0027) % exc)"},{"line_number":45,"context_line":"                LOG.exception(\u0027Unable to clean up ramdisk boot for node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"8d51a108_e5fcdecc","line":42,"updated":"2026-07-10 17:21:41.000000000","message":"So,","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ede86138ea0e82e89b41513f7061a290bd8b325","unresolved":true,"context_lines":[{"line_number":58,"context_line":"            try:"},{"line_number":59,"context_line":"                LOG.info(\u0027Performing soft power off for node %s before \u0027"},{"line_number":60,"context_line":"                         \u0027ejecting virtual media\u0027, task.node.uuid)"},{"line_number":61,"context_line":"                cond_utils.node_power_action(task, states.SOFT_POWER_OFF)"},{"line_number":62,"context_line":"            except Exception as exc:"},{"line_number":63,"context_line":"                errors.append(_(\u0027unable to power off the node: %s\u0027) % exc)"},{"line_number":64,"context_line":"                LOG.exception(\u0027Unable to power off node %s for inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"e9c48d38_3e07d5d2","line":61,"updated":"2026-07-10 17:21:41.000000000","message":"I guess I\u0027m struggling to understand the virtual media boot aspect here given this doesn\u0027t, AFAIK, tell IPA to shutdown, which doesn\u0027t really jive with the note on line 56.","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":35929,"name":"Mahnoor Asghar","display_name":"Mahnoor Asghar","email":"masghar@redhat.com","username":"mahnoorasghar"},"change_message_id":"7ecca9c5985dd4700c25d3d3be3e28ba7648c3b6","unresolved":true,"context_lines":[{"line_number":65,"context_line":"                              task.node.uuid)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            try:"},{"line_number":68,"context_line":"                task.driver.boot.clean_up_ramdisk(task)"},{"line_number":69,"context_line":"            except Exception as exc:"},{"line_number":70,"context_line":"                errors.append(_(\u0027unable to clean up ramdisk boot: %s\u0027) % exc)"},{"line_number":71,"context_line":"                LOG.exception(\u0027Unable to clean up ramdisk boot for node %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"eae83de0_910b6c87","line":68,"updated":"2026-07-10 16:20:53.000000000","message":"Note that if SOFT_POWER_OFF above failed, we will still attempt clean_up_ramdisk(). But I think thats okay","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ee6b36d49acd8a2e8f69aa4dd797240868614e6e","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def _uses_pxe_boot(task):"},{"line_number":33,"context_line":"    return \u0027pxe_boot\u0027 in task.driver.boot.capabilities"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def _should_clean_up_inspection_ramdisk(task):"}],"source_content_type":"text/x-python","patch_set":4,"id":"6eb5b67c_983cb901","line":33,"updated":"2026-07-20 16:54:47.000000000","message":"Let\u0027s maybe add some more specific capability? Like `task.driver.boot.can_clean_up_while_on` or something? Redfish UEFI boot is neither PXE nor vmedia, but it should be able to clean-up.","commit_id":"5585cd8ec5b8701af85edbde84385beaaf964185"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"9bf2caae02ec53a6c8e7f66f5427be92f992843d","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        try:"},{"line_number":62,"context_line":"            LOG.info(\u0027Performing soft power off for node %s before \u0027"},{"line_number":63,"context_line":"                     \u0027ejecting virtual media\u0027, task.node.uuid)"},{"line_number":64,"context_line":"            cond_utils.node_power_action(task, states.SOFT_POWER_OFF)"},{"line_number":65,"context_line":"        except Exception as exc:"},{"line_number":66,"context_line":"            errors.append(_(\u0027unable to power off the node: %s\u0027) % exc)"},{"line_number":67,"context_line":"            LOG.exception(\u0027Unable to power off node %s for inspection\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"d84d0ca4_73835acf","line":64,"updated":"2026-07-24 14:24:13.000000000","message":"While here, let\u0027s change this to hard power off.\n\nInspection is not supposed to modify the disks, so we have nothing to lose by cutting the power. Meanwhile, soft power off does not always work, especially on virtual machines. We see it in the BMO CI, e.g. it\u0027s one of the failures in https://zuul.opendev.org/t/openstack/build/fa3251da6055414fbd1b5d6dc89fea77","commit_id":"de48ff4f3a00c0435fbd3470a424baa61290cd7f"}],"releasenotes/notes/soft-power-off-before-vmedia-ejection-inspection-367bae07c5d5fc77.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"92468d0ea8b537cc4d000a0242f3b828b0b68810","unresolved":true,"context_lines":[{"line_number":1,"context_line":"fixes:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Issue a soft power off before ejecting virtual media after inspection,"},{"line_number":4,"context_line":"    regardless of the value of the ``[inspector]power_off`` configuration"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"36c8adcb_7dc2eb13","line":1,"updated":"2026-07-10 17:22:25.000000000","message":"FWIW, you really only want to include one reno per commit, not two renos in the same commit.","commit_id":"882f83fe8ec0c87166cc8bba9fc639ec35da3ae7"}]}
