)]}'
{"ironic_lib/exception.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"49fc97c64002e6f051ef50a0d1430ccc349caa82","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    return serializable_kwargs"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class BaseIronicException(Exception):"},{"line_number":99,"context_line":"    \"\"\"Base Ironic Exception"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    To correctly use this class, inherit from it and define"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfbec78f_6c7b7c7a","line":98,"updated":"2019-05-14 16:34:26.000000000","message":"A potentially breaking change, let\u0027s avoid it?","commit_id":"1dcb301b4decb66879e83afe2af3507417f6ded0"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"e2cc6175e91fde72a3a17d39b5b4cdf0f07e4f46","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    return serializable_kwargs"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"class BaseIronicException(Exception):"},{"line_number":99,"context_line":"    \"\"\"Base Ironic Exception"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    To correctly use this class, inherit from it and define"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfbec78f_40caf94d","line":98,"in_reply_to":"dfbec78f_6c7b7c7a","updated":"2019-05-14 21:10:30.000000000","message":"I\u0027m not sure of the rational for the change, but something like this could be done for ironic_lib consumers who still catch IronicException:\n\n  IronicException \u003d BaseIronicException","commit_id":"1dcb301b4decb66879e83afe2af3507417f6ded0"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"21814a0d4e51b63e7f50762aecf26a741b524fc8","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            except Exception:"},{"line_number":132,"context_line":"                with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":133,"context_line":"                    # kwargs doesn\u0027t match a variable in the message"},{"line_number":134,"context_line":"                    # log the issue and the kwargs"},{"line_number":135,"context_line":"                    prs \u003d \u0027, \u0027.join(\u0027%s\u003d%s\u0027 % pair for pair in kwargs.items())"},{"line_number":136,"context_line":"                    LOG.exception(\u0027Exception in string format operation \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"bfb3d3c7_bd3153ef","line":133,"range":{"start_line":133,"start_character":61,"end_line":133,"end_character":68},"updated":"2019-05-17 02:44:28.000000000","message":"nit: _msg_fmt","commit_id":"bfa2c64b2436874a41efe16d86f5edf646a917f4"}],"ironic_lib/tests/test_exception.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"49fc97c64002e6f051ef50a0d1430ccc349caa82","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @mock.patch.object(exception.LOG, \u0027error\u0027, autospec\u003dTrue)"},{"line_number":38,"context_line":"    def test___init___invalid_kwarg(self, log_mock):"},{"line_number":39,"context_line":"        CONF.ironic_lib.fatal_exception_format_errors \u003d False"},{"line_number":40,"context_line":"        e \u003d TestException(spam\u003dUnserializable(), ham\u003d\u0027eggs\u0027)"},{"line_number":41,"context_line":"        message \u003d log_mock.call_args[0][0] % log_mock.call_args[0][1]"},{"line_number":42,"context_line":"        self.assertIsNotNone("}],"source_content_type":"text/x-python","patch_set":7,"id":"dfbec78f_8c803048","line":39,"updated":"2019-05-14 16:34:26.000000000","message":"nit: use CONF.set_override","commit_id":"1dcb301b4decb66879e83afe2af3507417f6ded0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"49fc97c64002e6f051ef50a0d1430ccc349caa82","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @mock.patch.object(exception.LOG, \u0027error\u0027, autospec\u003dTrue)"},{"line_number":49,"context_line":"    def test___init___invalid_kwarg_reraise(self, log_mock):"},{"line_number":50,"context_line":"        CONF.ironic_lib.fatal_exception_format_errors \u003d True"},{"line_number":51,"context_line":"        self.assertRaises(KeyError, TestException, spam\u003dUnserializable(),"},{"line_number":52,"context_line":"                          ham\u003d\u0027eggs\u0027)"},{"line_number":53,"context_line":"        message \u003d log_mock.call_args[0][0] % log_mock.call_args[0][1]"}],"source_content_type":"text/x-python","patch_set":7,"id":"dfbec78f_2c9904c3","line":50,"updated":"2019-05-14 16:34:26.000000000","message":"ditto","commit_id":"1dcb301b4decb66879e83afe2af3507417f6ded0"}]}
