)]}'
{"ironic/drivers/modules/agent_base.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e6f5aa0438147ac2aab9a2e56a064bbd5daa199e","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    task.node.save()"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"def _running_in_band_step(task, commands, step_type):"},{"line_number":218,"context_line":"    \"\"\"Check if we\u0027re currently running an in-band step."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    :param task: a TaskManager instance to act on."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_f674d99b","line":217,"range":{"start_line":217,"start_character":4,"end_line":217,"end_character":25},"updated":"2020-04-14 15:13:32.000000000","message":"It feels like there should be a more explicit way of checking this.","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e6f5aa0438147ac2aab9a2e56a064bbd5daa199e","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    return (commands"},{"line_number":226,"context_line":"            # NOTE(dtantsur): we load deploy steps on the first heartbeat, so"},{"line_number":227,"context_line":"            # the last (and only) command will be get_deploy_steps."},{"line_number":228,"context_line":"            and commands[-1][\u0027command_name\u0027] !\u003d \u0027get_%s_steps\u0027 % step_type"},{"line_number":229,"context_line":"            # NOTE(dtantsur): if the flag is not set, we\u0027re probably running an"},{"line_number":230,"context_line":"            # out-of-band step after an in-band one."},{"line_number":231,"context_line":"            and task.node.driver_internal_info.get(\u0027agent_in_band_step\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_9663d5dc","line":228,"range":{"start_line":228,"start_character":12,"end_line":228,"end_character":74},"updated":"2020-04-14 15:13:32.000000000","message":"Couldn\u0027t we do a match against execute_%_step? Could even check command_params for the step name?","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0adb00911500d75e1a9531e93c0dc23e0c1d8e28","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    return (commands"},{"line_number":226,"context_line":"            # NOTE(dtantsur): we load deploy steps on the first heartbeat, so"},{"line_number":227,"context_line":"            # the last (and only) command will be get_deploy_steps."},{"line_number":228,"context_line":"            and commands[-1][\u0027command_name\u0027] !\u003d \u0027get_%s_steps\u0027 % step_type"},{"line_number":229,"context_line":"            # NOTE(dtantsur): if the flag is not set, we\u0027re probably running an"},{"line_number":230,"context_line":"            # out-of-band step after an in-band one."},{"line_number":231,"context_line":"            and task.node.driver_internal_info.get(\u0027agent_in_band_step\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_20d53044","line":228,"range":{"start_line":228,"start_character":12,"end_line":228,"end_character":74},"in_reply_to":"3f4c43b2_9663d5dc","updated":"2020-04-16 12:23:23.000000000","message":"The problem with checking the last executed step is that we may be running an out-of-band steps that comes after it. Although.. we can check the command state. Yeah, my brain probably wasn\u0027t clear enough when I was doing this patch.","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e6f5aa0438147ac2aab9a2e56a064bbd5daa199e","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            and commands[-1][\u0027command_name\u0027] !\u003d \u0027get_%s_steps\u0027 % step_type"},{"line_number":229,"context_line":"            # NOTE(dtantsur): if the flag is not set, we\u0027re probably running an"},{"line_number":230,"context_line":"            # out-of-band step after an in-band one."},{"line_number":231,"context_line":"            and task.node.driver_internal_info.get(\u0027agent_in_band_step\u0027))"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"def _get_completed_command(task, commands, step_type):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_76bc4905","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":73},"updated":"2020-04-14 15:13:32.000000000","message":"These driver info fields are quite easy to get left behind, which would cause a similar problem to the one we\u0027re trying to solve.","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e6f5aa0438147ac2aab9a2e56a064bbd5daa199e","unresolved":false,"context_lines":[{"line_number":832,"context_line":"        if not _running_in_band_step(task, agent_commands, step_type):"},{"line_number":833,"context_line":"            field \u003d (\u0027cleaning_reboot\u0027 if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":834,"context_line":"                     else \u0027deployment_reboot\u0027)"},{"line_number":835,"context_line":"            utils.pop_node_nested_field("},{"line_number":836,"context_line":"                task.node, \u0027driver_internal_info\u0027, field)"},{"line_number":837,"context_line":"            manager_utils.notify_conductor_resume_operation(task, step_type)"},{"line_number":838,"context_line":"            return"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        current_step \u003d (node.clean_step if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":841,"context_line":"                        else node.deploy_step)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_b60a5187","line":838,"range":{"start_line":835,"start_character":12,"end_line":838,"end_character":18},"updated":"2020-04-14 15:13:32.000000000","message":"Previously the code only notified if the field existed. Is the change intentional?","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0adb00911500d75e1a9531e93c0dc23e0c1d8e28","unresolved":false,"context_lines":[{"line_number":832,"context_line":"        if not _running_in_band_step(task, agent_commands, step_type):"},{"line_number":833,"context_line":"            field \u003d (\u0027cleaning_reboot\u0027 if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":834,"context_line":"                     else \u0027deployment_reboot\u0027)"},{"line_number":835,"context_line":"            utils.pop_node_nested_field("},{"line_number":836,"context_line":"                task.node, \u0027driver_internal_info\u0027, field)"},{"line_number":837,"context_line":"            manager_utils.notify_conductor_resume_operation(task, step_type)"},{"line_number":838,"context_line":"            return"},{"line_number":839,"context_line":""},{"line_number":840,"context_line":"        current_step \u003d (node.clean_step if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":841,"context_line":"                        else node.deploy_step)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_e0686888","line":838,"range":{"start_line":835,"start_character":12,"end_line":838,"end_character":18},"in_reply_to":"3f4c43b2_b60a5187","updated":"2020-04-16 12:23:23.000000000","message":"Yes. Previously the case \"agent has no commands\" has never been hit, so we didn\u0027t realize that it was wrong. If we don\u0027t have any commands, we need to yield back to the conductor.","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e6f5aa0438147ac2aab9a2e56a064bbd5daa199e","unresolved":false,"context_lines":[{"line_number":858,"context_line":"                    \u0027step\u0027: current_step,"},{"line_number":859,"context_line":"                    \u0027type\u0027: step_type})"},{"line_number":860,"context_line":"            LOG.error(msg)"},{"line_number":861,"context_line":"            return manager_utils.cleaning_error_handler(task, msg)"},{"line_number":862,"context_line":"        elif command.get(\u0027command_status\u0027) in (\u0027CLEAN_VERSION_MISMATCH\u0027,"},{"line_number":863,"context_line":"                                               \u0027DEPLOY_VERSION_MISMATCH\u0027):"},{"line_number":864,"context_line":"            self._process_version_mismatch(task, step_type)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_564aed26","line":861,"range":{"start_line":861,"start_character":33,"end_line":861,"end_character":55},"updated":"2020-04-14 15:13:32.000000000","message":"Unrelated, but should this also handle deploy?","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0adb00911500d75e1a9531e93c0dc23e0c1d8e28","unresolved":false,"context_lines":[{"line_number":858,"context_line":"                    \u0027step\u0027: current_step,"},{"line_number":859,"context_line":"                    \u0027type\u0027: step_type})"},{"line_number":860,"context_line":"            LOG.error(msg)"},{"line_number":861,"context_line":"            return manager_utils.cleaning_error_handler(task, msg)"},{"line_number":862,"context_line":"        elif command.get(\u0027command_status\u0027) in (\u0027CLEAN_VERSION_MISMATCH\u0027,"},{"line_number":863,"context_line":"                                               \u0027DEPLOY_VERSION_MISMATCH\u0027):"},{"line_number":864,"context_line":"            self._process_version_mismatch(task, step_type)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4c43b2_200890d7","line":861,"range":{"start_line":861,"start_character":33,"end_line":861,"end_character":55},"in_reply_to":"3f4c43b2_564aed26","updated":"2020-04-16 12:23:23.000000000","message":"Probably needs fixing.","commit_id":"00ac774d73f4c02429ac4bb15a60b669c94a3325"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"19f7b038e5fa711873bdd768c8f5198e3620d09b","unresolved":false,"context_lines":[{"line_number":828,"context_line":"            field \u003d (\u0027cleaning_reboot\u0027 if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":829,"context_line":"                     else \u0027deployment_reboot\u0027)"},{"line_number":830,"context_line":"            utils.pop_node_nested_field("},{"line_number":831,"context_line":"                task.node, \u0027driver_internal_info\u0027, field)"},{"line_number":832,"context_line":"            manager_utils.notify_conductor_resume_operation(task, step_type)"},{"line_number":833,"context_line":"            return"},{"line_number":834,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_e7ac1237","line":831,"updated":"2020-04-23 09:56:51.000000000","message":"Dropped the node.save() here.","commit_id":"ff2030ce98dbe470f8d51d308e184cc065d491e0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2639a5c06fbe612cba329a1514f7dcabd42faee0","unresolved":false,"context_lines":[{"line_number":828,"context_line":"            field \u003d (\u0027cleaning_reboot\u0027 if step_type \u003d\u003d \u0027clean\u0027"},{"line_number":829,"context_line":"                     else \u0027deployment_reboot\u0027)"},{"line_number":830,"context_line":"            utils.pop_node_nested_field("},{"line_number":831,"context_line":"                task.node, \u0027driver_internal_info\u0027, field)"},{"line_number":832,"context_line":"            manager_utils.notify_conductor_resume_operation(task, step_type)"},{"line_number":833,"context_line":"            return"},{"line_number":834,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_426e9495","line":831,"in_reply_to":"1f493fa4_e7ac1237","updated":"2020-04-23 10:13:00.000000000","message":"ugh, I\u0027ll follow-up","commit_id":"ff2030ce98dbe470f8d51d308e184cc065d491e0"}]}
