)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"be28e412cbb18b8c5d5d71cc4932a746ab430a52","unresolved":true,"context_lines":[{"line_number":24,"context_line":"_validate_user_step so the field is available for auto-detection."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Automated cleaning is unaffected — it still boots IPA first so all"},{"line_number":27,"context_line":"interfaces can report their full step lists."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Assisted-By: Claude Code Opus 4.6"},{"line_number":30,"context_line":"Change-Id: I2a240f1b7b690649df47756cb2dfd3f47a70234a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"850b9054_678bb34c","line":27,"updated":"2026-03-17 15:19:28.000000000","message":"This is not true. This logic will trigger on automated cleanings driven by runbook (https://review.opendev.org/c/openstack/ironic/+/945259) and from my reading should work OK.","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"db1980baba35ecae00e67881420678599cdd1db9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"_validate_user_step so the field is available for auto-detection."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Automated cleaning is unaffected — it still boots IPA first so all"},{"line_number":27,"context_line":"interfaces can report their full step lists."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Assisted-By: Claude Code Opus 4.6"},{"line_number":30,"context_line":"Change-Id: I2a240f1b7b690649df47756cb2dfd3f47a70234a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"a09b0eb4_3fa164f0","line":27,"in_reply_to":"850b9054_678bb34c","updated":"2026-03-17 15:37:52.000000000","message":"Done","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"be28e412cbb18b8c5d5d71cc4932a746ab430a52","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ce7429ab_0e91e449","updated":"2026-03-17 15:19:28.000000000","message":"Ideally we fix the release note","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"db1980baba35ecae00e67881420678599cdd1db9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a9a9ec56_1689dcdf","updated":"2026-03-17 15:37:52.000000000","message":"I only changed the releasenote and commit message; using my +2","commit_id":"a0613db6bd9207dec902b8a8d9b28195a43311d0"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c5caeaae68a9f1c3daf76bfefc4f8234f2f0f2d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ef076104_be7c0cf9","updated":"2026-03-17 19:15:58.000000000","message":"recheck setup failure in metal3-integration job, unrelated to change","commit_id":"a0613db6bd9207dec902b8a8d9b28195a43311d0"}],"ironic/conductor/cleaning.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"3256a3edc7431fe94a693e79c357fad8e02ffb9c","unresolved":true,"context_lines":[{"line_number":146,"context_line":"    steps_validated \u003d False"},{"line_number":147,"context_line":"    if clean_steps and not disable_ramdisk:"},{"line_number":148,"context_line":"        try:"},{"line_number":149,"context_line":"            steps_validated, disable_ramdisk \u003d ("},{"line_number":150,"context_line":"                _validate_clean_steps_early(task, disable_ramdisk)"},{"line_number":151,"context_line":"            )"},{"line_number":152,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"22b102b6_a6968b22","line":149,"updated":"2026-03-17 15:22:47.000000000","message":"nit: this is really \"steps_oob_only\" or \"steps_dont_need_ipa\", I think it\u0027d be clearer with another name","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"}],"ironic/conductor/steps.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bcbb31baf360a7a5d44c004fd0cdde43dc27ac04","unresolved":true,"context_lines":[{"line_number":227,"context_line":"    return cleaning_steps"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"def all_steps_disable_ramdisk(task, user_steps):"},{"line_number":231,"context_line":"    \"\"\"Check whether every user-requested clean step can run without ramdisk."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    :param task: A TaskManager object"}],"source_content_type":"text/x-python","patch_set":3,"id":"efd0f403_6717ef91","line":230,"updated":"2026-03-17 15:12:30.000000000","message":"nit: \"all_clean_steps\", the implementation is not generic","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"}],"ironic/drivers/modules/redfish/bios.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":"96a92eced115d2e2c50c05b40e72229437de639e","unresolved":true,"context_lines":[{"line_number":154,"context_line":"            objects.BIOSSettingList.delete("},{"line_number":155,"context_line":"                task.context, node_id, delete_names)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @base.service_step(priority\u003d0, requires_ramdisk\u003dFalse)"},{"line_number":158,"context_line":"    @base.clean_step(priority\u003d0, requires_ramdisk\u003dFalse)"},{"line_number":159,"context_line":"    @base.deploy_step(priority\u003d0)"},{"line_number":160,"context_line":"    @base.cache_bios_settings"}],"source_content_type":"text/x-python","patch_set":4,"id":"dc4c07d9_556e9e8b","line":157,"updated":"2026-03-17 15:42:52.000000000","message":"*blink* *blink*\n\nAs a nit, this is a net add. It is... questionable if factory resetting machines should be a thing when they are deploeyd.","commit_id":"a0613db6bd9207dec902b8a8d9b28195a43311d0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"682ac821da0c32203b18c9da3b25ca8bab3050e9","unresolved":true,"context_lines":[{"line_number":154,"context_line":"            objects.BIOSSettingList.delete("},{"line_number":155,"context_line":"                task.context, node_id, delete_names)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    @base.service_step(priority\u003d0, requires_ramdisk\u003dFalse)"},{"line_number":158,"context_line":"    @base.clean_step(priority\u003d0, requires_ramdisk\u003dFalse)"},{"line_number":159,"context_line":"    @base.deploy_step(priority\u003d0)"},{"line_number":160,"context_line":"    @base.cache_bios_settings"}],"source_content_type":"text/x-python","patch_set":4,"id":"d3dc485f_0151ebfb","line":157,"in_reply_to":"dc4c07d9_556e9e8b","updated":"2026-03-17 15:44:45.000000000","message":"Mmm, good catch. I guess I could justify this as a self-service action","commit_id":"a0613db6bd9207dec902b8a8d9b28195a43311d0"}],"releasenotes/notes/cleaning-auto-disable-ramdisk-d6cf9abb4ecde908.yaml":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"be28e412cbb18b8c5d5d71cc4932a746ab430a52","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    When every step declares ``requires_ramdisk\u003dFalse`` (e.g. Redfish BIOS"},{"line_number":7,"context_line":"    ``apply_configuration`` and ``factory_reset``), IPA boot is skipped"},{"line_number":8,"context_line":"    automatically without requiring the caller to pass ``disable_ramdisk``."},{"line_number":9,"context_line":"    This mirrors the existing behaviour in the servicing flow."},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    The Redfish BIOS ``factory_reset`` step is now registered as a service"},{"line_number":12,"context_line":"    step (``@service_step``) with ``requires_ramdisk\u003dFalse``, matching the"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"85176c5b_9a676419","line":9,"updated":"2026-03-17 15:19:28.000000000","message":"We should be explicit that this logic will trigger for automated cleans via runbook as well","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"},{"author":{"_account_id":38806,"name":"Konstantinos Karampogias","email":"kkarampo@redhat.com","username":"karampok","status":"Red Hat"},"change_message_id":"612612457d7cfa758c05088c7e1e8079db984fb2","unresolved":true,"context_lines":[{"line_number":13,"context_line":"    existing ``apply_configuration`` step."},{"line_number":14,"context_line":"upgrade:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The ``_validate_user_step`` helper in ``conductor/steps.py`` now copies"},{"line_number":17,"context_line":"    ``requires_ramdisk`` from the driver step to the validated user step."},{"line_number":18,"context_line":"    Out-of-tree code that inspects validated step dicts may see the new key."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7f36b333_4c9bd3bf","line":16,"updated":"2026-03-17 10:24:32.000000000","message":"Is that accurate?  I do not see those changes","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1312f3a1c4f3f44015aa6329155bdebac8c91c0a","unresolved":true,"context_lines":[{"line_number":13,"context_line":"    existing ``apply_configuration`` step."},{"line_number":14,"context_line":"upgrade:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The ``_validate_user_step`` helper in ``conductor/steps.py`` now copies"},{"line_number":17,"context_line":"    ``requires_ramdisk`` from the driver step to the validated user step."},{"line_number":18,"context_line":"    Out-of-tree code that inspects validated step dicts may see the new key."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"33b916e7_72b6edaa","line":16,"in_reply_to":"7f36b333_4c9bd3bf","updated":"2026-03-17 15:32:23.000000000","message":"They moved methods, I made this not refer to a specific method since it\u0027s private anyway.","commit_id":"af657ddad64cb3a6811e869672c1dd71edcd4912"}]}
