)]}'
{"ironic/conductor/manager.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":"0cea2c93e167ed5d4ca312aaf123fabda8a7aa0f","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            try:"},{"line_number":1237,"context_line":"                result \u003d interface.execute_clean_step(task, step)"},{"line_number":1238,"context_line":"            except Exception as e:"},{"line_number":1239,"context_line":"                if isinstance(e, exception.AgentConnectionFailed):"},{"line_number":1240,"context_line":"                    if task.node.driver_internal_info.get(\u0027cleaning_reboot\u0027):"},{"line_number":1241,"context_line":"                        LOG.info(\u0027Agent is not yet running after cleaning \u0027"},{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_572cb548","line":1239,"updated":"2018-07-10 18:34:44.000000000","message":"Any reason not just to directly catch it with it\u0027s own except entry?","commit_id":"8f62116e048f0ce9e9dfb7b2790629fbfe417746"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"0fcc67604837623e6b0178bcb1d59d1b4c10f33f","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            try:"},{"line_number":1237,"context_line":"                result \u003d interface.execute_clean_step(task, step)"},{"line_number":1238,"context_line":"            except Exception as e:"},{"line_number":1239,"context_line":"                if isinstance(e, exception.AgentConnectionFailed):"},{"line_number":1240,"context_line":"                    if task.node.driver_internal_info.get(\u0027cleaning_reboot\u0027):"},{"line_number":1241,"context_line":"                        LOG.info(\u0027Agent is not yet running after cleaning \u0027"},{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_be2f1888","line":1239,"in_reply_to":"5f7c97a3_572cb548","updated":"2018-07-11 04:22:22.000000000","message":"That was possible. Have used the isinstance() to check for AgentConnectionFailed to avoid duplication of code L1253-L1259 which would be the case if we need to re-raise the exception.","commit_id":"8f62116e048f0ce9e9dfb7b2790629fbfe417746"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e8ddebdd38885c4c0265d6f2d7e21f8971a92e15","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            try:"},{"line_number":1237,"context_line":"                result \u003d interface.execute_clean_step(task, step)"},{"line_number":1238,"context_line":"            except Exception as e:"},{"line_number":1239,"context_line":"                if isinstance(e, exception.AgentConnectionFailed):"},{"line_number":1240,"context_line":"                    if task.node.driver_internal_info.get(\u0027cleaning_reboot\u0027):"},{"line_number":1241,"context_line":"                        LOG.info(\u0027Agent is not yet running after cleaning \u0027"},{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_4605d214","line":1239,"in_reply_to":"5f7c97a3_be2f1888","updated":"2018-07-11 13:09:01.000000000","message":"Works for me!","commit_id":"8f62116e048f0ce9e9dfb7b2790629fbfe417746"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"30eee6c5c579520aff501ceaae495cd10b54f4d4","unresolved":false,"context_lines":[{"line_number":1284,"context_line":"        driver_internal_info \u003d node.driver_internal_info"},{"line_number":1285,"context_line":"        driver_internal_info[\u0027clean_steps\u0027] \u003d None"},{"line_number":1286,"context_line":"        driver_internal_info.pop(\u0027clean_step_index\u0027, None)"},{"line_number":1287,"context_line":"        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1288,"context_line":"        node.save()"},{"line_number":1289,"context_line":"        try:"},{"line_number":1290,"context_line":"            task.driver.deploy.tear_down_cleaning(task)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_47299a86","line":1287,"updated":"2018-07-19 06:36:19.000000000","message":"Isn\u0027t it necessary to clear cleaning_reboot from driver_internal_info for a case where there is no clean step left after this flag is set?","commit_id":"8f62116e048f0ce9e9dfb7b2790629fbfe417746"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"74bd3eaf7124152e21a26fa66f2d3937d5e1fec9","unresolved":false,"context_lines":[{"line_number":1284,"context_line":"        driver_internal_info \u003d node.driver_internal_info"},{"line_number":1285,"context_line":"        driver_internal_info[\u0027clean_steps\u0027] \u003d None"},{"line_number":1286,"context_line":"        driver_internal_info.pop(\u0027clean_step_index\u0027, None)"},{"line_number":1287,"context_line":"        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1288,"context_line":"        node.save()"},{"line_number":1289,"context_line":"        try:"},{"line_number":1290,"context_line":"            task.driver.deploy.tear_down_cleaning(task)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_362ff1a7","line":1287,"in_reply_to":"5f7c97a3_47299a86","updated":"2018-07-19 09:02:47.000000000","message":"Done","commit_id":"8f62116e048f0ce9e9dfb7b2790629fbfe417746"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"994b8221abf4cab9c0b1cb3c2f37f182e97f257f","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"                        LOG.info(\u0027Agent is not yet running after cleaning \u0027"},{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"},{"line_number":1243,"context_line":"                                 \u0027run next clean step %(step)s.\u0027,"},{"line_number":1244,"context_line":"                                 {\u0027node\u0027: node.uuid, \u0027step\u0027: step})"},{"line_number":1245,"context_line":"                        target_state \u003d (states.MANAGEABLE if manual_clean"},{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0cddb96c","line":1244,"range":{"start_line":1244,"start_character":34,"end_line":1244,"end_character":52},"updated":"2018-07-23 13:11:59.000000000","message":"node is not used in the message","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bf78c88fc932ed803ef305896101a15a271609a7","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"                        LOG.info(\u0027Agent is not yet running after cleaning \u0027"},{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"},{"line_number":1243,"context_line":"                                 \u0027run next clean step %(step)s.\u0027,"},{"line_number":1244,"context_line":"                                 {\u0027node\u0027: node.uuid, \u0027step\u0027: step})"},{"line_number":1245,"context_line":"                        target_state \u003d (states.MANAGEABLE if manual_clean"},{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_b2c5000c","line":1244,"range":{"start_line":1244,"start_character":34,"end_line":1244,"end_character":52},"in_reply_to":"5f7c97a3_0cddb96c","updated":"2018-07-24 05:10:54.000000000","message":"Done","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"994b8221abf4cab9c0b1cb3c2f37f182e97f257f","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"},{"line_number":1243,"context_line":"                                 \u0027run next clean step %(step)s.\u0027,"},{"line_number":1244,"context_line":"                                 {\u0027node\u0027: node.uuid, \u0027step\u0027: step})"},{"line_number":1245,"context_line":"                        target_state \u003d (states.MANAGEABLE if manual_clean"},{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":1248,"context_line":"                        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1249,"context_line":"                        node.save()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0cf939c4","line":1246,"range":{"start_line":1245,"start_character":24,"end_line":1246,"end_character":50},"updated":"2018-07-23 13:11:59.000000000","message":"nit: this can be moved to the top","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bf78c88fc932ed803ef305896101a15a271609a7","unresolved":false,"context_lines":[{"line_number":1242,"context_line":"                                 \u0027reboot, waiting for agent to come up to \u0027"},{"line_number":1243,"context_line":"                                 \u0027run next clean step %(step)s.\u0027,"},{"line_number":1244,"context_line":"                                 {\u0027node\u0027: node.uuid, \u0027step\u0027: step})"},{"line_number":1245,"context_line":"                        target_state \u003d (states.MANAGEABLE if manual_clean"},{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":1248,"context_line":"                        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1249,"context_line":"                        node.save()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f2da98e4","line":1246,"range":{"start_line":1245,"start_character":24,"end_line":1246,"end_character":50},"in_reply_to":"5f7c97a3_0cf939c4","updated":"2018-07-24 05:10:54.000000000","message":"Done","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"994b8221abf4cab9c0b1cb3c2f37f182e97f257f","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":1248,"context_line":"                        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1249,"context_line":"                        node.save()"},{"line_number":1250,"context_line":"                        task.process_event(\u0027wait\u0027, target_state\u003dtarget_state)"},{"line_number":1251,"context_line":"                        return"},{"line_number":1252,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4c8bb121","line":1249,"range":{"start_line":1249,"start_character":24,"end_line":1249,"end_character":35},"updated":"2018-07-23 13:11:59.000000000","message":"process_event calls save(), so you don\u0027t need to call it here","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bf78c88fc932ed803ef305896101a15a271609a7","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"                                        else None)"},{"line_number":1247,"context_line":"                        driver_internal_info[\u0027skip_current_clean_step\u0027] \u003d False"},{"line_number":1248,"context_line":"                        node.driver_internal_info \u003d driver_internal_info"},{"line_number":1249,"context_line":"                        node.save()"},{"line_number":1250,"context_line":"                        task.process_event(\u0027wait\u0027, target_state\u003dtarget_state)"},{"line_number":1251,"context_line":"                        return"},{"line_number":1252,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_92e9e483","line":1249,"range":{"start_line":1249,"start_character":24,"end_line":1249,"end_character":35},"in_reply_to":"5f7c97a3_4c8bb121","updated":"2018-07-24 05:10:54.000000000","message":"Done","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"}],"ironic/drivers/modules/agent_base_vendor.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":"cce535d0871ac7f6b0f3bb0a4b422a0d6682f85e","unresolved":false,"context_lines":[{"line_number":466,"context_line":"                info \u003d task.node.driver_internal_info"},{"line_number":467,"context_line":"                info.pop(\u0027cleaning_reboot\u0027, None)"},{"line_number":468,"context_line":"                task.node.driver_internal_info \u003d info"},{"line_number":469,"context_line":"                task.node.save()"},{"line_number":470,"context_line":"                manager_utils.notify_conductor_resume_clean(task)"},{"line_number":471,"context_line":"                return"},{"line_number":472,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_b03861ed","line":469,"updated":"2018-07-25 12:01:13.000000000","message":"eek, thanks!","commit_id":"7c5a04c1149f14900f504f32e000a7b4e69e661f"}],"ironic/drivers/modules/agent_client.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"994b8221abf4cab9c0b1cb3c2f37f182e97f257f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                     \u0027%(node)s. Error: %(error)s\u0027) %"},{"line_number":87,"context_line":"                   {\u0027method\u0027: method, \u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":88,"context_line":"            LOG.error(msg)"},{"line_number":89,"context_line":"            raise exception.AgentConnectionFailed(reason\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # TODO(russellhaering): real error handling"},{"line_number":92,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6c530de0","line":89,"range":{"start_line":89,"start_character":28,"end_line":89,"end_character":49},"updated":"2018-07-23 13:11:59.000000000","message":"I think we should specifically convert ConnectionError to AgentConnectionFailed, not generic RequestException","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"bf78c88fc932ed803ef305896101a15a271609a7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                     \u0027%(node)s. Error: %(error)s\u0027) %"},{"line_number":87,"context_line":"                   {\u0027method\u0027: method, \u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":88,"context_line":"            LOG.error(msg)"},{"line_number":89,"context_line":"            raise exception.AgentConnectionFailed(reason\u003dmsg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        # TODO(russellhaering): real error handling"},{"line_number":92,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_b2618013","line":89,"range":{"start_line":89,"start_character":28,"end_line":89,"end_character":49},"in_reply_to":"5f7c97a3_6c530de0","updated":"2018-07-24 05:10:54.000000000","message":"Done","commit_id":"85081c8a5e8c4e513fbc585e9a8939be6a15140d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f88221c2c721ba952bf9442f73e9029888b6a30f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            response \u003d self.session.post(url, params\u003drequest_params, data\u003dbody)"},{"line_number":84,"context_line":"        except requests.ConnectionError as e:"},{"line_number":85,"context_line":"            msg \u003d (_(\u0027Failed to invoke agent command %(method)s for node \u0027"},{"line_number":86,"context_line":"                     \u0027%(node)s. Error: %(error)s\u0027) %"},{"line_number":87,"context_line":"                   {\u0027method\u0027: method, \u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":88,"context_line":"            LOG.error(msg)"},{"line_number":89,"context_line":"            raise exception.AgentConnectionFailed(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_9f11b65f","line":86,"updated":"2018-07-25 09:30:50.000000000","message":"more precisely: \"Failed to connect to the agent running on node %(node)s for invoking command %(method)s: %(error)s\"","commit_id":"7c5a04c1149f14900f504f32e000a7b4e69e661f"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"b639f0e2513111e04744fca2bbadc500f780ffab","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            response \u003d self.session.post(url, params\u003drequest_params, data\u003dbody)"},{"line_number":84,"context_line":"        except requests.ConnectionError as e:"},{"line_number":85,"context_line":"            msg \u003d (_(\u0027Failed to invoke agent command %(method)s for node \u0027"},{"line_number":86,"context_line":"                     \u0027%(node)s. Error: %(error)s\u0027) %"},{"line_number":87,"context_line":"                   {\u0027method\u0027: method, \u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":88,"context_line":"            LOG.error(msg)"},{"line_number":89,"context_line":"            raise exception.AgentConnectionFailed(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f6a47a07","line":86,"in_reply_to":"5f7c97a3_505a2d51","updated":"2018-07-26 08:35:35.000000000","message":"Done","commit_id":"7c5a04c1149f14900f504f32e000a7b4e69e661f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cce535d0871ac7f6b0f3bb0a4b422a0d6682f85e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            response \u003d self.session.post(url, params\u003drequest_params, data\u003dbody)"},{"line_number":84,"context_line":"        except requests.ConnectionError as e:"},{"line_number":85,"context_line":"            msg \u003d (_(\u0027Failed to invoke agent command %(method)s for node \u0027"},{"line_number":86,"context_line":"                     \u0027%(node)s. Error: %(error)s\u0027) %"},{"line_number":87,"context_line":"                   {\u0027method\u0027: method, \u0027node\u0027: node.uuid, \u0027error\u0027: e})"},{"line_number":88,"context_line":"            LOG.error(msg)"},{"line_number":89,"context_line":"            raise exception.AgentConnectionFailed(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_505a2d51","line":86,"in_reply_to":"5f7c97a3_9f11b65f","updated":"2018-07-25 12:01:13.000000000","message":"+++","commit_id":"7c5a04c1149f14900f504f32e000a7b4e69e661f"}]}
