)]}'
{"ironic_python_agent/hardware_managers/container.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":"8d701fad88322706ef67e958f892ac47e0872da6","unresolved":true,"context_lines":[{"line_number":198,"context_line":"        if cls._RESERVED_NAMES is None:"},{"line_number":199,"context_line":"            cls._RESERVED_NAMES \u003d frozenset("},{"line_number":200,"context_line":"                dir(hardware.GenericHardwareManager)) | frozenset(dir(cls))"},{"line_number":201,"context_line":"        return cls._RESERVED_NAMES"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def __getattr__(self, name):"},{"line_number":204,"context_line":"        \"\"\"Resolve a steps file entry to the callable that runs it."}],"source_content_type":"text/x-python","patch_set":1,"id":"d8a90e6c_213b6096","line":201,"updated":"2026-07-30 16:42:47.000000000","message":"So I think a potentially better implementation of this might be:\n\n- Call get_managers() \n- For each manager in get_managers(), check the dir (as you do here)\n\nThis won\u0027t limit you to checking only the GenericHardwareManager.\n\nYou can look at dispatch_to_managers/dispatch_to_all_managers for insight on how to work with those as well.","commit_id":"2aa46a30b5e010db92fc4af150c782c007183af3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8ce6207098717fad8ff6197a85f10eec32d0ded5","unresolved":true,"context_lines":[{"line_number":198,"context_line":"        if cls._RESERVED_NAMES is None:"},{"line_number":199,"context_line":"            cls._RESERVED_NAMES \u003d frozenset("},{"line_number":200,"context_line":"                dir(hardware.GenericHardwareManager)) | frozenset(dir(cls))"},{"line_number":201,"context_line":"        return cls._RESERVED_NAMES"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def __getattr__(self, name):"},{"line_number":204,"context_line":"        \"\"\"Resolve a steps file entry to the callable that runs it."}],"source_content_type":"text/x-python","patch_set":1,"id":"095c37c6_d1ebea74","line":201,"in_reply_to":"d8a90e6c_213b6096","updated":"2026-07-31 14:07:48.000000000","message":"I concur, best to attempt to check all other hardware managers, because an operator could load in another hardware manager as well with it\u0027s own steps and then this one have a conflict with that manager.","commit_id":"2aa46a30b5e010db92fc4af150c782c007183af3"}],"releasenotes/notes/container-step-name-shadowing-25c54e055b3450fb.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":"8ce6207098717fad8ff6197a85f10eec32d0ded5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    ``ContainerHardwareManager`` reports ``MAINLINE`` hardware support and is"},{"line_number":5,"context_line":"    therefore consulted ahead of ``GenericHardwareManager`` for every"},{"line_number":6,"context_line":"    dispatch. A container step whose name matched an existing hardware"},{"line_number":7,"context_line":"    manager method silently replaced it: a step named"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"68b90dd2_62b45f24","line":4,"updated":"2026-07-31 14:07:48.000000000","message":"Please reorient this so someone who does not know the internals can understand this note.","commit_id":"2aa46a30b5e010db92fc4af150c782c007183af3"}]}
