)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"31060e4c572b77fa62622ea873d9ed81f29b0427","unresolved":false,"context_lines":[{"line_number":21,"context_line":"* No need to log explicitly before `cleaning_error_handler`. Such"},{"line_number":22,"context_line":"occurrences have been removed."},{"line_number":23,"context_line":"* Where there were different message for log and last_error it"},{"line_number":24,"context_line":"is kept. Where there was only 1 message, it is left as it is to"},{"line_number":25,"context_line":"be both logged and updated in `last_error`."},{"line_number":26,"context_line":"* Exception logging is replaced with error logging with traceback."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I813228fb47a51ee6c45b420322acabdf565ff752"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_d0899425","line":25,"range":{"start_line":24,"start_character":40,"end_line":25,"end_character":43},"updated":"2020-10-06 11:06:36.000000000","message":"but could update if it is decided that this is necessary.","commit_id":"e339674830b4f92e32218254256b01f4f7ec2b1c"}],"ironic/drivers/modules/ilo/raid.py":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"31060e4c572b77fa62622ea873d9ed81f29b0427","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        log_msg \u003d (_(\"RAID configuration job failed for node %(node)s. \""},{"line_number":73,"context_line":"                     \"Message: \u0027%(message)s\u0027.\") %"},{"line_number":74,"context_line":"                   {\u0027node\u0027: task.node.uuid, \u0027message\u0027: msg})"},{"line_number":75,"context_line":"        if task.node.provision_state \u003d\u003d states.DEPLOYING:"},{"line_number":76,"context_line":"            manager_utils.deploying_error_handler(task, log_msg, errmsg\u003dmsg)"},{"line_number":77,"context_line":"        else:"},{"line_number":78,"context_line":"            manager_utils.cleaning_error_handler(task, log_msg, errmsg\u003dmsg)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def _set_driver_internal_true_value(self, task, *keys):"},{"line_number":81,"context_line":"        driver_internal_info \u003d task.node.driver_internal_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_f0b498d6","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":75},"updated":"2020-10-06 11:06:36.000000000","message":"For patterns like this in case of clean or deploy step, could create another helper that wraps this pattern in one method, e.g., deploying_or_cleaning_error_handler(task, ..) as this is used in several places.\n\nThough there are different approaches how to determine if it\u0027s clean or deploy - by using `provision_state` or `clean_step`. Wondering if there is reason for this, or is it just matter of preference.","commit_id":"e339674830b4f92e32218254256b01f4f7ec2b1c"}],"ironic/tests/unit/drivers/modules/ilo/test_management.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":"b1d92a5479626cae74c9d1b4bdec6848963f16fa","unresolved":false,"context_lines":[{"line_number":1693,"context_line":"                             task.node.driver_internal_info)"},{"line_number":1694,"context_line":"            clean_err_handler_mock.assert_called_once_with("},{"line_number":1695,"context_line":"                task,"},{"line_number":1696,"context_line":"                (_(\"Out-of-band sanitize disk erase job failed for node %s. \""},{"line_number":1697,"context_line":"                   \"Message: \u0027error\u0027.\") % task.node.uuid),"},{"line_number":1698,"context_line":"                errmsg\u003dexc)"},{"line_number":1699,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_80065c51","line":1696,"range":{"start_line":1696,"start_character":16,"end_line":1696,"end_character":18},"updated":"2020-11-12 17:03:48.000000000","message":"Please no translation in unit tests... This can result in test failures if the string is ever translated for contributors.","commit_id":"fb6e4dd70fc46bd24d0d71be7de5fe6c645a6068"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"96052a5b08d6473846e144df74b09023b25ab746","unresolved":false,"context_lines":[{"line_number":1693,"context_line":"                             task.node.driver_internal_info)"},{"line_number":1694,"context_line":"            clean_err_handler_mock.assert_called_once_with("},{"line_number":1695,"context_line":"                task,"},{"line_number":1696,"context_line":"                (_(\"Out-of-band sanitize disk erase job failed for node %s. \""},{"line_number":1697,"context_line":"                   \"Message: \u0027error\u0027.\") % task.node.uuid),"},{"line_number":1698,"context_line":"                errmsg\u003dexc)"},{"line_number":1699,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_00b7e287","line":1696,"range":{"start_line":1696,"start_character":16,"end_line":1696,"end_character":18},"in_reply_to":"1f621f24_80065c51","updated":"2020-11-13 09:38:34.000000000","message":"updated","commit_id":"fb6e4dd70fc46bd24d0d71be7de5fe6c645a6068"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b1d92a5479626cae74c9d1b4bdec6848963f16fa","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"            task.driver.management.one_button_secure_erase(task)"},{"line_number":1730,"context_line":"            clean_err_handler_mock.assert_called_once_with("},{"line_number":1731,"context_line":"                task,"},{"line_number":1732,"context_line":"                (_(\"One button secure erase job failed for node %s. \""},{"line_number":1733,"context_line":"                   \"Message: \u0027error\u0027.\") % task.node.uuid),"},{"line_number":1734,"context_line":"                errmsg\u003dexc)"},{"line_number":1735,"context_line":"            self.assertTrue("}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_60018038","line":1732,"range":{"start_line":1732,"start_character":17,"end_line":1732,"end_character":18},"updated":"2020-11-12 17:03:48.000000000","message":"Same as above.","commit_id":"fb6e4dd70fc46bd24d0d71be7de5fe6c645a6068"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"96052a5b08d6473846e144df74b09023b25ab746","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"            task.driver.management.one_button_secure_erase(task)"},{"line_number":1730,"context_line":"            clean_err_handler_mock.assert_called_once_with("},{"line_number":1731,"context_line":"                task,"},{"line_number":1732,"context_line":"                (_(\"One button secure erase job failed for node %s. \""},{"line_number":1733,"context_line":"                   \"Message: \u0027error\u0027.\") % task.node.uuid),"},{"line_number":1734,"context_line":"                errmsg\u003dexc)"},{"line_number":1735,"context_line":"            self.assertTrue("}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_e0b90679","line":1732,"range":{"start_line":1732,"start_character":17,"end_line":1732,"end_character":18},"in_reply_to":"1f621f24_60018038","updated":"2020-11-13 09:38:34.000000000","message":"updated","commit_id":"fb6e4dd70fc46bd24d0d71be7de5fe6c645a6068"}]}
