)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"6cae23eee958dd197d995ec1c75cdec9c3727728","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1f75160a_47942dcd","updated":"2026-06-22 13:54:58.000000000","message":"recheck - timeout during server boot, unrelated to node history changes","commit_id":"9128b52ef480f957beacdd0bfbf62224e840379e"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"41c2f0274e6330cbc2014f7d7809dfde64c6cc0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"392175a2_d9e4908e","in_reply_to":"1f75160a_47942dcd","updated":"2026-06-23 07:57:08.000000000","message":"Done","commit_id":"9128b52ef480f957beacdd0bfbf62224e840379e"},{"author":{"_account_id":37087,"name":"Himanshu Roy","display_name":"Himanshu Roy","email":"hroy@redhat.com","username":"hroyrh"},"change_message_id":"c329918df19bbc7d11799d1d0ce831bc7ee059a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0867fc8b_cbe604a5","updated":"2026-07-29 06:06:20.000000000","message":"Looks good, just check the tests.","commit_id":"06e112d3e5042182fd8bf82c5d8fcb2a6e38cc8f"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"66ed828c9f52b172daad418c30d696dbd6673016","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"10c2cb87_f8cd31c5","in_reply_to":"0867fc8b_cbe604a5","updated":"2026-07-30 16:46:29.000000000","message":"Thanks!","commit_id":"06e112d3e5042182fd8bf82c5d8fcb2a6e38cc8f"},{"author":{"_account_id":37087,"name":"Himanshu Roy","display_name":"Himanshu Roy","email":"hroy@redhat.com","username":"hroyrh"},"change_message_id":"737f308d1cf60cf5753b3a8251f4dace911a8b15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3fd3bfe4_1d13d66b","updated":"2026-08-05 12:49:55.000000000","message":"Looks good","commit_id":"60cd70d3ab3d17b9012184079fd53df765b6ca43"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"574818bc007338254b8b54c466340aa20aa18e88","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"b25c7d07_713d5818","updated":"2026-08-13 17:27:35.000000000","message":"recheck - POST-FAILURE due to connection timeouts on tempest jobs","commit_id":"72c637039fde864f24df504010ee951b2afe1a4d"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"91420b0da2328efa792a8ce8c95916ea262fea43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"aaed7f7d_dca4d3e9","updated":"2026-08-14 15:17:24.000000000","message":"this was pre approved and no changes happened, just a rebase\nsingle approving it","commit_id":"72c637039fde864f24df504010ee951b2afe1a4d"}],"ironic/conductor/utils.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"5de03a5990859eb0174cae8fa93e096a34b3a28f","unresolved":true,"context_lines":[{"line_number":1928,"context_line":"        node.last_error \u003d event"},{"line_number":1929,"context_line":"    if not conductor:"},{"line_number":1930,"context_line":"        conductor \u003d CONF.host"},{"line_number":1931,"context_line":"        # NOTE(edomfeh): Resolved the user ID independently of"},{"line_number":1932,"context_line":"        # the conductor check block to ensure it executes when a"},{"line_number":1933,"context_line":"        # custom conductor string is supplied. We fall back to the"},{"line_number":1934,"context_line":"        # thread-local context if an explicit user parameter is"}],"source_content_type":"text/x-python","patch_set":8,"id":"9d8fb4a5_42b8acd1","line":1931,"updated":"2026-07-21 13:10:59.000000000","message":"this should probably be dedented and put outside the if statement; if a caller passes an explicit conductor value, actual_user is never defined, so we need to run this block unconditionally","commit_id":"29ccdb7c8b41d85bb7403a57c404aa42ede99532"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"798c597b2226b79ecc561caab28f2b66ae03178d","unresolved":false,"context_lines":[{"line_number":1928,"context_line":"        node.last_error \u003d event"},{"line_number":1929,"context_line":"    if not conductor:"},{"line_number":1930,"context_line":"        conductor \u003d CONF.host"},{"line_number":1931,"context_line":"        # NOTE(edomfeh): Resolved the user ID independently of"},{"line_number":1932,"context_line":"        # the conductor check block to ensure it executes when a"},{"line_number":1933,"context_line":"        # custom conductor string is supplied. We fall back to the"},{"line_number":1934,"context_line":"        # thread-local context if an explicit user parameter is"}],"source_content_type":"text/x-python","patch_set":8,"id":"e4074f43_e5fd6642","line":1931,"in_reply_to":"9d8fb4a5_42b8acd1","updated":"2026-07-27 13:03:04.000000000","message":"Done","commit_id":"29ccdb7c8b41d85bb7403a57c404aa42ede99532"},{"author":{"_account_id":37087,"name":"Himanshu Roy","display_name":"Himanshu Roy","email":"hroy@redhat.com","username":"hroyrh"},"change_message_id":"c329918df19bbc7d11799d1d0ce831bc7ee059a7","unresolved":true,"context_lines":[{"line_number":1933,"context_line":"    # custom conductor string is supplied. We fall back to the"},{"line_number":1934,"context_line":"    # thread-local context if an explicit user parameter is"},{"line_number":1935,"context_line":"    # not passed into the function."},{"line_number":1936,"context_line":"    actual_user \u003d user"},{"line_number":1937,"context_line":"    if not actual_user:"},{"line_number":1938,"context_line":"        try:"},{"line_number":1939,"context_line":"            current_context \u003d oslo_context.get_current()"}],"source_content_type":"text/x-python","patch_set":10,"id":"47aef91a_2eaf4e0c","line":1936,"updated":"2026-07-29 06:06:20.000000000","message":"The tests inside test_utils need to be update, particularly the test checking if the user is none.","commit_id":"06e112d3e5042182fd8bf82c5d8fcb2a6e38cc8f"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"66ed828c9f52b172daad418c30d696dbd6673016","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"    # custom conductor string is supplied. We fall back to the"},{"line_number":1934,"context_line":"    # thread-local context if an explicit user parameter is"},{"line_number":1935,"context_line":"    # not passed into the function."},{"line_number":1936,"context_line":"    actual_user \u003d user"},{"line_number":1937,"context_line":"    if not actual_user:"},{"line_number":1938,"context_line":"        try:"},{"line_number":1939,"context_line":"            current_context \u003d oslo_context.get_current()"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8f93d7_21d5beda","line":1936,"in_reply_to":"47aef91a_2eaf4e0c","updated":"2026-07-30 16:46:29.000000000","message":"Thanks Himanshu for the feedback. Updated the unit test assertion to dynamically check the context user id.","commit_id":"06e112d3e5042182fd8bf82c5d8fcb2a6e38cc8f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1a8ddbf6e0ebd1016833104e054d9c4fb35bd222","unresolved":true,"context_lines":[{"line_number":1936,"context_line":"    actual_user \u003d user"},{"line_number":1937,"context_line":"    if not actual_user:"},{"line_number":1938,"context_line":"        try:"},{"line_number":1939,"context_line":"            current_context \u003d oslo_context.get_current()"},{"line_number":1940,"context_line":"            if current_context:"},{"line_number":1941,"context_line":"                actual_user \u003d getattr(current_context, \u0027user_id\u0027, None)"},{"line_number":1942,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":11,"id":"031e6900_ddafecd5","line":1939,"updated":"2026-07-30 18:54:42.000000000","message":"I think the context will always get returned, but you may have None as the values. I guess I\u0027m not sure this will ever really work but you may need some unit tests to prove it does.","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"cc4ea780918a98630ce8c3a7dcad15568abec5c5","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"    actual_user \u003d user"},{"line_number":1937,"context_line":"    if not actual_user:"},{"line_number":1938,"context_line":"        try:"},{"line_number":1939,"context_line":"            current_context \u003d oslo_context.get_current()"},{"line_number":1940,"context_line":"            if current_context:"},{"line_number":1941,"context_line":"                actual_user \u003d getattr(current_context, \u0027user_id\u0027, None)"},{"line_number":1942,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":11,"id":"cc1fde57_3594613e","line":1939,"in_reply_to":"031e6900_ddafecd5","updated":"2026-08-11 10:21:39.000000000","message":"Thank you for the feedback Julia!. I updated the implementation to use the active task.context when no context is passed explicitly. If there’s no task or context available, it safely falls back to None.","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1a8ddbf6e0ebd1016833104e054d9c4fb35bd222","unresolved":true,"context_lines":[{"line_number":1940,"context_line":"            if current_context:"},{"line_number":1941,"context_line":"                actual_user \u003d getattr(current_context, \u0027user_id\u0027, None)"},{"line_number":1942,"context_line":"        except Exception as e:"},{"line_number":1943,"context_line":"            LOG.debug(\"Failed to get user_id from context: %s\", e)"},{"line_number":1944,"context_line":"    if CONF.conductor.node_history:"},{"line_number":1945,"context_line":"        duration \u003d None"},{"line_number":1946,"context_line":"        if node.provision_updated_at is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"d13da9cf_a0dcd620","line":1943,"updated":"2026-07-30 18:54:42.000000000","message":"I guess I\u0027m wondering if we should even bother to log here...","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"cc4ea780918a98630ce8c3a7dcad15568abec5c5","unresolved":false,"context_lines":[{"line_number":1940,"context_line":"            if current_context:"},{"line_number":1941,"context_line":"                actual_user \u003d getattr(current_context, \u0027user_id\u0027, None)"},{"line_number":1942,"context_line":"        except Exception as e:"},{"line_number":1943,"context_line":"            LOG.debug(\"Failed to get user_id from context: %s\", e)"},{"line_number":1944,"context_line":"    if CONF.conductor.node_history:"},{"line_number":1945,"context_line":"        duration \u003d None"},{"line_number":1946,"context_line":"        if node.provision_updated_at is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"0a76241c_5f7ac0a0","line":1943,"in_reply_to":"d13da9cf_a0dcd620","updated":"2026-08-11 10:21:39.000000000","message":"Done","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"}],"ironic/tests/unit/conductor/test_utils.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":"1a8ddbf6e0ebd1016833104e054d9c4fb35bd222","unresolved":true,"context_lines":[{"line_number":3160,"context_line":"        self.assertEqual(\u0027meow\u0027, entry[\u0027event\u0027])"},{"line_number":3161,"context_line":"        self.assertEqual(CONF.host, entry[\u0027conductor\u0027])"},{"line_number":3162,"context_line":"        self.assertEqual(\u0027INFO\u0027, entry[\u0027severity\u0027])"},{"line_number":3163,"context_line":"        self.assertEqual(self.context.user_id, entry[\u0027user\u0027])"},{"line_number":3164,"context_line":""},{"line_number":3165,"context_line":"    def test_record_node_history_with_user(self):"},{"line_number":3166,"context_line":"        conductor_utils.node_history_record(self.node, event\u003d\u0027meow\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3d815cc1_a1c27855","line":3163,"updated":"2026-07-30 18:54:42.000000000","message":"You\u0027ll need to explicitly test this with a task context to see if it discovers the tasks context when not being passed, otherwise I think the result should be none.","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"},{"author":{"_account_id":38972,"name":"Esther Domfeh","display_name":"edomfeh","email":"estherdomfeh88@gmail.com","username":"edomfeh"},"change_message_id":"cc4ea780918a98630ce8c3a7dcad15568abec5c5","unresolved":false,"context_lines":[{"line_number":3160,"context_line":"        self.assertEqual(\u0027meow\u0027, entry[\u0027event\u0027])"},{"line_number":3161,"context_line":"        self.assertEqual(CONF.host, entry[\u0027conductor\u0027])"},{"line_number":3162,"context_line":"        self.assertEqual(\u0027INFO\u0027, entry[\u0027severity\u0027])"},{"line_number":3163,"context_line":"        self.assertEqual(self.context.user_id, entry[\u0027user\u0027])"},{"line_number":3164,"context_line":""},{"line_number":3165,"context_line":"    def test_record_node_history_with_user(self):"},{"line_number":3166,"context_line":"        conductor_utils.node_history_record(self.node, event\u003d\u0027meow\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"44fe8e1a_cae58e2e","line":3163,"in_reply_to":"3d815cc1_a1c27855","updated":"2026-08-11 10:21:39.000000000","message":"Done","commit_id":"08645777f1833a53d544e6a6d6d0e95783042a65"}]}
