)]}'
{"/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":"1983241bb828e2cb012513f6d0cc9dd39a18f9dc","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Update: It looks like, the original fix to prevent busy agent recognition"},{"line_number":40,"context_line":"did not fully detect all cases as getting steps is a command which can"},{"line_number":41,"context_line":"get skipped by accident with a busy agent, under certian circumstances."},{"line_number":42,"context_line":"Change I5d86878b5ed6142ed2630adee78c0867c49b663f in ironic-python-agent"},{"line_number":43,"context_line":"also changed the string that was being checked for the previous handling,"},{"line_number":44,"context_line":"where we really should have just made the string we were checking lower"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f65232a_f7fdc8b1","line":41,"updated":"2020-10-27 20:56:26.000000000","message":"nit: certain","commit_id":"b168e76469dc1bcf723aa31b3589577c5455af89"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fe352a234861efabd560c080f161f381b9455d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"also changed the string that was being checked for the previous"},{"line_number":45,"context_line":"handling, where we really should have just made the string we were"},{"line_number":46,"context_line":"checking lower case in ironic. Oh well! This should fix things"},{"line_number":47,"context_line":"right up."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Change-Id: Ia169640b7084d17d26f22e457c7af512db6d21d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1f621f24_a6f24b05","line":47,"updated":"2020-10-28 21:05:58.000000000","message":"https://storyboard.openstack.org/#!/story/2008167","commit_id":"f492cd7a59281573bb3f3eb55aaa8e984c6b4f6e"}],"ironic/conductor/cleaning.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    task.process_event(\u0027wait\u0027, target_state\u003dtarget_state)"},{"line_number":181,"context_line":"                    return"},{"line_number":182,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":183,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":184,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":185,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":186,"context_line":"                         {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_8e359cfa","line":183,"updated":"2020-10-29 13:36:34.000000000","message":"clean","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ea9c57791fcc583081d5e6bfdf73b41b97265df0","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    task.process_event(\u0027wait\u0027, target_state\u003dtarget_state)"},{"line_number":181,"context_line":"                    return"},{"line_number":182,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":183,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":184,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":185,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":186,"context_line":"                         {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_974ac852","line":183,"in_reply_to":"1f621f24_8e359cfa","updated":"2020-10-30 01:28:34.000000000","message":"Done","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":183,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":184,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":185,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":186,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":187,"context_line":"                driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":188,"context_line":"                node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_ee3a50e5","line":185,"updated":"2020-10-29 13:36:34.000000000","message":"let\u0027s log a command (probably including it into the exception message)","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ea9c57791fcc583081d5e6bfdf73b41b97265df0","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":183,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":184,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":185,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":186,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":187,"context_line":"                driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":188,"context_line":"                node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_b79f04b3","line":185,"in_reply_to":"1f621f24_ee3a50e5","updated":"2020-10-30 01:28:34.000000000","message":"I\u0027ll try to log it from the API client code so we just keep things consistent.","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0665199a9b2412837ab16f04e7d523128fe09a8a","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":183,"context_line":"                LOG.info(\u0027Conductor attempted to process clean step for \u0027"},{"line_number":184,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":185,"context_line":"                         \u0027executing a command. Error: %(error)s\u0027,"},{"line_number":186,"context_line":"                         {\u0027node\u0027: task.node.uuid,"},{"line_number":187,"context_line":"                          \u0027error\u0027: e})"},{"line_number":188,"context_line":"                driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_d1bc48bd","line":185,"updated":"2020-10-30 09:49:20.000000000","message":"nit: the 2nd sentence repeats what\u0027s already in the error message","commit_id":"545dc2106b757e69d473c2997bbb2ac34fc131d3"}],"ironic/conductor/deployments.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":"bd1b7c71f24aa4cb0e85220f2bfc0cea60d7ff45","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":261,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":262,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":263,"context_line":"                         \u0027executing a command.\u0027)"},{"line_number":264,"context_line":"                task.process_event(\u0027wait\u0027)"},{"line_number":265,"context_line":"                return"},{"line_number":266,"context_line":"            log_msg \u003d (\u0027Node %(node)s failed deploy step %(step)s. Error: \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_32515910","line":263,"updated":"2020-10-28 16:24:22.000000000","message":"doh!","commit_id":"4f8846bc40c9057674dc438726645342467d163e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":261,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":262,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":263,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":264,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":265,"context_line":"                driver_internal_info[\u0027skip_current_deploy_step\u0027] \u003d False"},{"line_number":266,"context_line":"                node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_6e2e40a6","line":263,"updated":"2020-10-29 13:36:34.000000000","message":"let\u0027s log the command","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ea9c57791fcc583081d5e6bfdf73b41b97265df0","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":261,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":262,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":263,"context_line":"                         \u0027executing a command.\u0027,"},{"line_number":264,"context_line":"                         {\u0027node\u0027: task.node.uuid})"},{"line_number":265,"context_line":"                driver_internal_info[\u0027skip_current_deploy_step\u0027] \u003d False"},{"line_number":266,"context_line":"                node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_57ae70e7","line":263,"in_reply_to":"1f621f24_6e2e40a6","updated":"2020-10-30 01:28:34.000000000","message":"Done","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0665199a9b2412837ab16f04e7d523128fe09a8a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            if isinstance(e, exception.AgentInProgress):"},{"line_number":261,"context_line":"                LOG.info(\u0027Conductor attempted to process deploy step for \u0027"},{"line_number":262,"context_line":"                         \u0027node %(node)s. Agent indicated it is presently \u0027"},{"line_number":263,"context_line":"                         \u0027executing a command. Error: %(error)s\u0027,"},{"line_number":264,"context_line":"                         {\u0027node\u0027: task.node.uuid,"},{"line_number":265,"context_line":"                          \u0027error\u0027: e})"},{"line_number":266,"context_line":"                driver_internal_info[\u0027skip_current_deploy_step\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_31b2dce7","line":263,"updated":"2020-10-30 09:49:20.000000000","message":"ditto","commit_id":"545dc2106b757e69d473c2997bbb2ac34fc131d3"}],"ironic/drivers/modules/agent_base.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2552194ef8be2b29714aead57ef2b47bc3ba5bf2","unresolved":false,"context_lines":[{"line_number":900,"context_line":"            agent_result \u003d call(node, task.ports).get(\u0027command_result\u0027, {})"},{"line_number":901,"context_line":"        except exception.AgentInProgress as exc:"},{"line_number":902,"context_line":"            # Command in progress, we can just return."},{"line_number":903,"context_line":"            return"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"            # TODO(dtantsur): change to just \u0027raise\u0027"},{"line_number":906,"context_line":"            if step_type \u003d\u003d \u0027clean\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_fc533de1","line":903,"updated":"2020-10-28 10:15:30.000000000","message":"should we add maybe a LOG debug line here ? or too much noise?","commit_id":"b168e76469dc1bcf723aa31b3589577c5455af89"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"11321b997776117c3e62896046d255bece6c33e9","unresolved":false,"context_lines":[{"line_number":900,"context_line":"            agent_result \u003d call(node, task.ports).get(\u0027command_result\u0027, {})"},{"line_number":901,"context_line":"        except exception.AgentInProgress as exc:"},{"line_number":902,"context_line":"            # Command in progress, we can just return."},{"line_number":903,"context_line":"            return"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"            # TODO(dtantsur): change to just \u0027raise\u0027"},{"line_number":906,"context_line":"            if step_type \u003d\u003d \u0027clean\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_625b082e","line":903,"in_reply_to":"1f621f24_fc533de1","updated":"2020-10-28 11:59:10.000000000","message":"Likley a good idea, tbh.","commit_id":"b168e76469dc1bcf723aa31b3589577c5455af89"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":900,"context_line":"            agent_result \u003d call(node, task.ports).get(\u0027command_result\u0027, {})"},{"line_number":901,"context_line":"        except exception.AgentInProgress as exc:"},{"line_number":902,"context_line":"            LOG.debug(\u0027Agent for node %(node)s is busy with a command, \u0027"},{"line_number":903,"context_line":"                      \u0027will refresh steps on th enext heartbeat.\u0027,"},{"line_number":904,"context_line":"                      {\u0027node\u0027: task.node.uuid})"},{"line_number":905,"context_line":"            return"},{"line_number":906,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_2e0d683e","line":903,"range":{"start_line":903,"start_character":45,"end_line":903,"end_character":53},"updated":"2020-10-29 13:36:34.000000000","message":"the next","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ea9c57791fcc583081d5e6bfdf73b41b97265df0","unresolved":false,"context_lines":[{"line_number":900,"context_line":"            agent_result \u003d call(node, task.ports).get(\u0027command_result\u0027, {})"},{"line_number":901,"context_line":"        except exception.AgentInProgress as exc:"},{"line_number":902,"context_line":"            LOG.debug(\u0027Agent for node %(node)s is busy with a command, \u0027"},{"line_number":903,"context_line":"                      \u0027will refresh steps on th enext heartbeat.\u0027,"},{"line_number":904,"context_line":"                      {\u0027node\u0027: task.node.uuid})"},{"line_number":905,"context_line":"            return"},{"line_number":906,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_b788a471","line":903,"range":{"start_line":903,"start_character":45,"end_line":903,"end_character":53},"in_reply_to":"1f621f24_2e0d683e","updated":"2020-10-30 01:28:34.000000000","message":"Done","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"}],"ironic/drivers/modules/agent_client.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":"1983241bb828e2cb012513f6d0cc9dd39a18f9dc","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                # a 409 is sent in Wallaby or a 400 is sent in prior"},{"line_number":231,"context_line":"                # versions of IPA. Since the check covers both, we should"},{"line_number":232,"context_line":"                # be good."},{"line_number":233,"context_line":"                # NOTE(TheJulia): The agent sends uper case A, but lower"},{"line_number":234,"context_line":"                # case it to future proof it just in case."},{"line_number":235,"context_line":"                # This is the case when on the agent side AgentIsBusy is"},{"line_number":236,"context_line":"                # raised which generates the 409 and the error"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f65232a_7712580b","line":233,"updated":"2020-10-27 20:56:26.000000000","message":"nit: upper","commit_id":"b168e76469dc1bcf723aa31b3589577c5455af89"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"bd1b7c71f24aa4cb0e85220f2bfc0cea60d7ff45","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                # a 409 is sent in Wallaby or a 400 is sent in prior"},{"line_number":231,"context_line":"                # versions of IPA. Since the check covers both, we should"},{"line_number":232,"context_line":"                # be good."},{"line_number":233,"context_line":"                # NOTE(TheJulia): The agent sends uper case A, but lower"},{"line_number":234,"context_line":"                # case it to future proof it just in case."},{"line_number":235,"context_line":"                # This is the case when on the agent side AgentIsBusy is"},{"line_number":236,"context_line":"                # raised which generates the 409 and the error"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f621f24_42624c18","line":233,"in_reply_to":"3f65232a_7712580b","updated":"2020-10-28 16:24:22.000000000","message":"Done","commit_id":"b168e76469dc1bcf723aa31b3589577c5455af89"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                # NOTE(TheJulia): Depending on the version of the agent"},{"line_number":230,"context_line":"                # a 409 is sent in Wallaby or a 400 is sent in prior"},{"line_number":231,"context_line":"                # versions of IPA. Since the check covers both, we should"},{"line_number":232,"context_line":"                # be good."},{"line_number":233,"context_line":"                # NOTE(TheJulia): The agent sends upper case A as of"},{"line_number":234,"context_line":"                # late victoria, but lower case the entire message"},{"line_number":235,"context_line":"                # for compatability with pre-late victoria agents."}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_3112e959","line":232,"updated":"2020-10-29 13:36:34.000000000","message":"Let\u0027s actually add an explicit check on 409 before checking the error message so that we\u0027re future-proof?","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d7c32c47367c232080d6ff128f530ce46d989fb1","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                # NOTE(TheJulia): Depending on the version of the agent"},{"line_number":230,"context_line":"                # a 409 is sent in Wallaby or a 400 is sent in prior"},{"line_number":231,"context_line":"                # versions of IPA. Since the check covers both, we should"},{"line_number":232,"context_line":"                # be good."},{"line_number":233,"context_line":"                # NOTE(TheJulia): The agent sends upper case A as of"},{"line_number":234,"context_line":"                # late victoria, but lower case the entire message"},{"line_number":235,"context_line":"                # for compatability with pre-late victoria agents."}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_11708d72","line":232,"in_reply_to":"1f621f24_3112e959","updated":"2020-10-29 21:15:27.000000000","message":"makes sense, we can do the check twice and raise on either.","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0665199a9b2412837ab16f04e7d523128fe09a8a","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                          {\u0027method\u0027: method, \u0027node\u0027: node.uuid,"},{"line_number":227,"context_line":"                           \u0027code\u0027: response.status_code})"},{"line_number":228,"context_line":"            if (response.status_code \u003d\u003d http_client.CONFLICT"},{"line_number":229,"context_line":"                or \u0027agent is busy\u0027 in faultstring.lower()):"},{"line_number":230,"context_line":"                # HTTP 409 check as an explicit check of if the agent"},{"line_number":231,"context_line":"                # is already busy."},{"line_number":232,"context_line":"                # NOTE(TheJulia): The agent sends upper case A as of"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_11b7e0d7","line":229,"updated":"2020-10-30 09:49:20.000000000","message":"nit: moar indentation","commit_id":"545dc2106b757e69d473c2997bbb2ac34fc131d3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2ee64a428badc8d0b021257441249aaa8f9cd16a","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                          {\u0027method\u0027: method, \u0027node\u0027: node.uuid,"},{"line_number":227,"context_line":"                           \u0027code\u0027: response.status_code})"},{"line_number":228,"context_line":"            if (response.status_code \u003d\u003d http_client.CONFLICT"},{"line_number":229,"context_line":"                or \u0027agent is busy\u0027 in faultstring.lower()):"},{"line_number":230,"context_line":"                # HTTP 409 check as an explicit check of if the agent"},{"line_number":231,"context_line":"                # is already busy."},{"line_number":232,"context_line":"                # NOTE(TheJulia): The agent sends upper case A as of"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_a00a1787","line":229,"in_reply_to":"1f621f24_11b7e0d7","updated":"2020-10-30 12:40:44.000000000","message":"I\u0027m not 100% sure about that with py3 ;)","commit_id":"545dc2106b757e69d473c2997bbb2ac34fc131d3"}],"ironic/tests/unit/conductor/test_cleaning.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b7635d189c7e7d82425cacec736afe48e473791d","unresolved":false,"context_lines":[{"line_number":786,"context_line":"                                  \u0027cleaning_reboot\u0027: True},"},{"line_number":787,"context_line":"            clean_step\u003d{})"},{"line_number":788,"context_line":"        mock_execute.side_effect \u003d exception.AgentInProgress("},{"line_number":789,"context_line":"            reason\u003d\u0027still meowing\u0027)"},{"line_number":790,"context_line":"        with task_manager.acquire("},{"line_number":791,"context_line":"                self.context, node.uuid, shared\u003dFalse) as task:"},{"line_number":792,"context_line":"            cleaning.do_next_clean_step(task, 0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_912c9d9a","line":789,"updated":"2020-10-29 13:36:34.000000000","message":"++ happens all the time","commit_id":"285e3461c2a810ac97438032ba60de47ee4f4a71"}]}
