)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d5e7f12428b9f3b50ff712bfc0fedba51e7edcfd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c568c51f_7783f90c","updated":"2024-06-27 23:08:18.000000000","message":"Hi Iury, thank you for your review - it\u0027s been very helpful!\nThose tests immediately uncovered a couple minor bugs, well spotted.\nPushing new version shortly.","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"82bfd5ab6896ca10baef102c1ee4cf6c97f84965","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bb24c747_57e925ac","updated":"2024-06-27 23:44:52.000000000","message":"Checked the diff, lgtm","commit_id":"b9d1ace72893b0b34625eebe0e31129d7c626b14"}],"ironic/conductor/manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7a80290c895140f48f5d53357b999850ad59e948","unresolved":true,"context_lines":[{"line_number":97,"context_line":"    # NOTE(rloo): This must be in sync with rpcapi.ConductorAPI\u0027s."},{"line_number":98,"context_line":"    # NOTE(pas-ha): This also must be in sync with"},{"line_number":99,"context_line":"    #               ironic.common.release_mappings.RELEASE_MAPPING[\u0027master\u0027]"},{"line_number":100,"context_line":"    RPC_API_VERSION \u003d \u00271.59\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    target \u003d messaging.Target(version\u003dRPC_API_VERSION)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"628fb367_09495fc9","line":100,"updated":"2024-06-26 12:49:18.000000000","message":"Needs changing","commit_id":"b4125041b6a50b5e63cfd357bd1be7c3c7140de5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d742088b761794de514378aff44bb905941cf4a5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    # NOTE(rloo): This must be in sync with rpcapi.ConductorAPI\u0027s."},{"line_number":98,"context_line":"    # NOTE(pas-ha): This also must be in sync with"},{"line_number":99,"context_line":"    #               ironic.common.release_mappings.RELEASE_MAPPING[\u0027master\u0027]"},{"line_number":100,"context_line":"    RPC_API_VERSION \u003d \u00271.59\u0027"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    target \u003d messaging.Target(version\u003dRPC_API_VERSION)"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c7f5d51e_5095411e","line":100,"in_reply_to":"628fb367_09495fc9","updated":"2024-06-27 23:08:39.000000000","message":"Done","commit_id":"b4125041b6a50b5e63cfd357bd1be7c3c7140de5"}],"ironic/conductor/rpcapi.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7a80290c895140f48f5d53357b999850ad59e948","unresolved":true,"context_lines":[{"line_number":164,"context_line":"    # NOTE(rloo): This must be in sync with manager.ConductorManager\u0027s."},{"line_number":165,"context_line":"    # NOTE(pas-ha): This also must be in sync with"},{"line_number":166,"context_line":"    #               ironic.common.release_mappings.RELEASE_MAPPING[\u0027master\u0027]"},{"line_number":167,"context_line":"    RPC_API_VERSION \u003d \u00271.60\u0027"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":170,"context_line":"        super(ConductorAPI, self).__init__()"}],"source_content_type":"text/x-python","patch_set":1,"id":"544e4d8c_37c8cbe1","line":167,"updated":"2024-06-26 12:49:18.000000000","message":"You\u0027ll need to update a few places - see the comments just above","commit_id":"b4125041b6a50b5e63cfd357bd1be7c3c7140de5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d742088b761794de514378aff44bb905941cf4a5","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    # NOTE(rloo): This must be in sync with manager.ConductorManager\u0027s."},{"line_number":165,"context_line":"    # NOTE(pas-ha): This also must be in sync with"},{"line_number":166,"context_line":"    #               ironic.common.release_mappings.RELEASE_MAPPING[\u0027master\u0027]"},{"line_number":167,"context_line":"    RPC_API_VERSION \u003d \u00271.60\u0027"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":170,"context_line":"        super(ConductorAPI, self).__init__()"}],"source_content_type":"text/x-python","patch_set":1,"id":"67879cc1_c29aa157","line":167,"in_reply_to":"544e4d8c_37c8cbe1","updated":"2024-06-27 23:08:39.000000000","message":"Done","commit_id":"b4125041b6a50b5e63cfd357bd1be7c3c7140de5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"474c3123025a2087cf12c8322356c517f58cb6d4","unresolved":true,"context_lines":[{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        cctxt \u003d self._prepare_call(topic\u003dtopic, version\u003d\u00271.60\u0027)"},{"line_number":639,"context_line":"        return cctxt.cast(context, \u0027continue_node_service\u0027,"},{"line_number":640,"context_line":"                          node_id\u003dnode_id)"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    def validate_driver_interfaces(self, context, node_id, topic\u003dNone):"},{"line_number":643,"context_line":"        \"\"\"Validate the `core` and `standardized` interfaces for drivers."}],"source_content_type":"text/x-python","patch_set":4,"id":"4f2b2f5d_995b8566","line":640,"updated":"2024-06-27 11:36:22.000000000","message":"maybe adding one test in https://opendev.org/openstack/ironic/src/branch/master/ironic/tests/unit/conductor/test_rpcapi.py for it.","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d742088b761794de514378aff44bb905941cf4a5","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        cctxt \u003d self._prepare_call(topic\u003dtopic, version\u003d\u00271.60\u0027)"},{"line_number":639,"context_line":"        return cctxt.cast(context, \u0027continue_node_service\u0027,"},{"line_number":640,"context_line":"                          node_id\u003dnode_id)"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    def validate_driver_interfaces(self, context, node_id, topic\u003dNone):"},{"line_number":643,"context_line":"        \"\"\"Validate the `core` and `standardized` interfaces for drivers."}],"source_content_type":"text/x-python","patch_set":4,"id":"445bcb69_f2a54a75","line":640,"in_reply_to":"4f2b2f5d_995b8566","updated":"2024-06-27 23:08:39.000000000","message":"Done","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"}],"ironic/conductor/utils.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"474c3123025a2087cf12c8322356c517f58cb6d4","unresolved":true,"context_lines":[{"line_number":534,"context_line":"    # been moved to SERVICEFAIL, so the error handler doesn\u0027t need to set the"},{"line_number":535,"context_line":"    # fail state."},{"line_number":536,"context_line":"    servicing_error_handler(task, logmsg, errmsg\u003dlast_error,"},{"line_number":537,"context_line":"                            set_fail_state\u003dFalse)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"def wipe_internal_info_on_power_off(node):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9975f15a_9a4ad6ca","line":537,"updated":"2024-06-27 11:36:22.000000000","message":"maybe adding tests like https://opendev.org/openstack/ironic/src/branch/master/ironic/tests/unit/conductor/test_utils.py#L1152-L1187 for it.","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d5e7f12428b9f3b50ff712bfc0fedba51e7edcfd","unresolved":false,"context_lines":[{"line_number":534,"context_line":"    # been moved to SERVICEFAIL, so the error handler doesn\u0027t need to set the"},{"line_number":535,"context_line":"    # fail state."},{"line_number":536,"context_line":"    servicing_error_handler(task, logmsg, errmsg\u003dlast_error,"},{"line_number":537,"context_line":"                            set_fail_state\u003dFalse)"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"def wipe_internal_info_on_power_off(node):"}],"source_content_type":"text/x-python","patch_set":4,"id":"44b52685_6c08f2a6","line":537,"in_reply_to":"9975f15a_9a4ad6ca","updated":"2024-06-27 23:08:18.000000000","message":"Done","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"474c3123025a2087cf12c8322356c517f58cb6d4","unresolved":true,"context_lines":[{"line_number":811,"context_line":"def spawn_servicing_error_handler(e, node):"},{"line_number":812,"context_line":"    \"\"\"Handle spawning error for node servicing.\"\"\""},{"line_number":813,"context_line":"    _spawn_error_handler(e, node, states.SERVICING)"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"def spawn_rescue_error_handler(e, node):"},{"line_number":817,"context_line":"    \"\"\"Handle spawning error for node rescue.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"aae8f924_6c7b226b","line":814,"updated":"2024-06-27 11:36:22.000000000","message":"maybe add some unit tests like we have for cleaning https://opendev.org/openstack/ironic/src/branch/master/ironic/tests/unit/conductor/test_utils.py#L1300-L1313","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d5e7f12428b9f3b50ff712bfc0fedba51e7edcfd","unresolved":false,"context_lines":[{"line_number":811,"context_line":"def spawn_servicing_error_handler(e, node):"},{"line_number":812,"context_line":"    \"\"\"Handle spawning error for node servicing.\"\"\""},{"line_number":813,"context_line":"    _spawn_error_handler(e, node, states.SERVICING)"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"def spawn_rescue_error_handler(e, node):"},{"line_number":817,"context_line":"    \"\"\"Handle spawning error for node rescue.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"53827b2d_f954849d","line":814,"in_reply_to":"aae8f924_6c7b226b","updated":"2024-06-27 23:08:18.000000000","message":"Done","commit_id":"6eecca7e8ff1b35673bf47c7f6292e8382d1c922"}]}
