)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d9435e2394adde3c0bf5f0159b523e505a60687a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"reach the manager. Moreover, handling the error in the driver and"},{"line_number":11,"context_line":"returning nothing caused the manager to consider the step done and go to"},{"line_number":12,"context_line":"the next one instead of interrupting the cleaning workflow"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I3825838b5507bc735d983466aa3cac0edd4dfaca"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_9933f5f6","line":13,"updated":"2019-04-03 16:27:26.000000000","message":"Could you file an issue on storyboard for this and link it here like\n\n Story: #123456\n Task: #1234\n\nAlso a release note wouldn\u0027t hurt.","commit_id":"dbd20d8136d93ef3f73db13d23bd290f8e599ac9"}],"ironic/drivers/modules/ansible/deploy.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d9435e2394adde3c0bf5f0159b523e505a60687a","unresolved":false,"context_lines":[{"line_number":532,"context_line":"            LOG.error(\"Ansible failed cleaning step %(step)s \""},{"line_number":533,"context_line":"                      \"on node %(node)s.\","},{"line_number":534,"context_line":"                      {\u0027node\u0027: node.uuid, \u0027step\u0027: stepname})"},{"line_number":535,"context_line":"            raise e"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            LOG.info(\u0027Ansible completed cleaning step %(step)s \u0027"},{"line_number":538,"context_line":"                     \u0027on node %(node)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_f93479e1","line":535,"updated":"2019-04-03 16:27:26.000000000","message":"please use just \"raise\", otherwise you\u0027re losing the traceback","commit_id":"dbd20d8136d93ef3f73db13d23bd290f8e599ac9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"34c479d18d5757617cbb84230df5c5ce365f315f","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        step_tags \u003d step[\u0027args\u0027].get(\u0027tags\u0027, [])"},{"line_number":529,"context_line":"        try:"},{"line_number":530,"context_line":"            _run_playbook(node, playbook, extra_vars, key, tags\u003dstep_tags)"},{"line_number":531,"context_line":"        except exception.InstanceDeployFailure:"},{"line_number":532,"context_line":"            LOG.error(\"Ansible failed cleaning step %(step)s \""},{"line_number":533,"context_line":"                      \"on node %(node)s.\","},{"line_number":534,"context_line":"                      {\u0027node\u0027: node.uuid, \u0027step\u0027: stepname})"},{"line_number":535,"context_line":"            raise"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            LOG.info(\u0027Ansible completed cleaning step %(step)s \u0027"},{"line_number":538,"context_line":"                     \u0027on node %(node)s.\u0027,"},{"line_number":539,"context_line":"                     {\u0027node\u0027: node.uuid, \u0027step\u0027: stepname})"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_00150249","line":536,"range":{"start_line":531,"start_character":8,"end_line":536,"end_character":13},"updated":"2019-04-08 06:38:20.000000000","message":"I don\u0027t think this block is required. For the InstanceDeployFailure exception, conductor will catch it and log similar message as in L532. See [1]\n[1] https://github.com/openstack/ironic/blob/master/ironic/conductor/manager.py#L1405-L1409","commit_id":"f819933eaf98ca4176de21ed199a16ff81fa0542"},{"author":{"_account_id":15064,"name":"raphael.glon","email":"raphael.glon@corp.ovh.com","username":"raphael"},"change_message_id":"6fcbfdbeafe7356a8f61722065088c2bbc57b0d1","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        step_tags \u003d step[\u0027args\u0027].get(\u0027tags\u0027, [])"},{"line_number":529,"context_line":"        try:"},{"line_number":530,"context_line":"            _run_playbook(node, playbook, extra_vars, key, tags\u003dstep_tags)"},{"line_number":531,"context_line":"        except exception.InstanceDeployFailure:"},{"line_number":532,"context_line":"            LOG.error(\"Ansible failed cleaning step %(step)s \""},{"line_number":533,"context_line":"                      \"on node %(node)s.\","},{"line_number":534,"context_line":"                      {\u0027node\u0027: node.uuid, \u0027step\u0027: stepname})"},{"line_number":535,"context_line":"            raise"},{"line_number":536,"context_line":"        else:"},{"line_number":537,"context_line":"            LOG.info(\u0027Ansible completed cleaning step %(step)s \u0027"},{"line_number":538,"context_line":"                     \u0027on node %(node)s.\u0027,"},{"line_number":539,"context_line":"                     {\u0027node\u0027: node.uuid, \u0027step\u0027: stepname})"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_37cde5b6","line":536,"range":{"start_line":531,"start_character":8,"end_line":536,"end_character":13},"in_reply_to":"5fc1f717_00150249","updated":"2019-04-08 08:09:01.000000000","message":"Indeed. Done, thanks.","commit_id":"f819933eaf98ca4176de21ed199a16ff81fa0542"}],"ironic/tests/unit/drivers/modules/ansible/test_deploy.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"d9435e2394adde3c0bf5f0159b523e505a60687a","unresolved":false,"context_lines":[{"line_number":731,"context_line":"            except exception.InstanceDeployFailure as e:"},{"line_number":732,"context_line":"                self.assertEqual(\u0027Boom\u0027, str(e))"},{"line_number":733,"context_line":"            else:"},{"line_number":734,"context_line":"                raise AssertionError(\u0027No expected exception caught\u0027)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"            log_mock.error.assert_called_once_with("},{"line_number":737,"context_line":"                mock.ANY, {\u0027node\u0027: task.node[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_b92ef189","line":734,"updated":"2019-04-03 16:27:26.000000000","message":"please use self.assertRaises or self.assertRaisesRegex","commit_id":"dbd20d8136d93ef3f73db13d23bd290f8e599ac9"}],"releasenotes/notes/bug-30315-e46eafe5b575f3da.yaml":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0c9ad48acba4854aa831c05fdb11f706a1d179cb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      Fixes an issue regarding the ansible cleaning workflow."},{"line_number":5,"context_line":"      Handling the error in the driver and returning nothing caused the manager"},{"line_number":6,"context_line":"      to consider the step done and go to the next one instead of interrupting"},{"line_number":7,"context_line":"      the cleaning workflow (see"},{"line_number":8,"context_line":"      ironic.conductor.manager.ConductorManager._do_next_clean_step when None"},{"line_number":9,"context_line":"      is returned by the driver)"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5fc1f717_a911b155","line":9,"range":{"start_line":7,"start_character":28,"end_line":9,"end_character":32},"updated":"2019-04-04 06:52:51.000000000","message":"you can remove the code reference","commit_id":"61ea701980ce9ed0d7c61baefc1dbfded8036abc"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2a1e84cdc8bdd71a52a385ed732b28fbebb5a9e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"      Fixes an issue regarding the ansible cleaning workflow."},{"line_number":5,"context_line":"      Handling the error in the driver and returning nothing caused the manager"},{"line_number":6,"context_line":"      to consider the step done and go to the next one instead of interrupting"},{"line_number":7,"context_line":"      the cleaning workflow."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_b72795c7","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":42},"updated":"2019-04-08 08:52:19.000000000","message":"nit: ``ansible deployment interface``","commit_id":"6c43abfc731cddb7009e48a416a799855a7641fb"},{"author":{"_account_id":15064,"name":"raphael.glon","email":"raphael.glon@corp.ovh.com","username":"raphael"},"change_message_id":"98e95850c6ff67b949fc56cd45d995249d6c69b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"      Fixes an issue regarding the ansible cleaning workflow."},{"line_number":5,"context_line":"      Handling the error in the driver and returning nothing caused the manager"},{"line_number":6,"context_line":"      to consider the step done and go to the next one instead of interrupting"},{"line_number":7,"context_line":"      the cleaning workflow."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_4aa1e4a8","line":4,"range":{"start_line":4,"start_character":35,"end_line":4,"end_character":42},"in_reply_to":"5fc1f717_b72795c7","updated":"2019-04-08 09:14:16.000000000","message":"Done","commit_id":"6c43abfc731cddb7009e48a416a799855a7641fb"}]}
