)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc753a8566df46b06b3c35778ac4cbb2f5938077","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bac75879_9150e108","updated":"2022-09-27 14:06:02.000000000","message":"LGTM. Thanks.","commit_id":"253beb2a5a8bd123401d4c0eceee45fd8de019ec"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"895d25c306e43cce5d856487626e8fb30a0be448","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35cb7a25_90cd9af5","updated":"2022-09-28 14:38:33.000000000","message":"Thank you. Looks good to me.","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3f5d6140e8c84358c3e9ae9fc2008a8087b93cba","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"209eecda_4d4de1ce","updated":"2022-10-11 10:43:01.000000000","message":"Thanks, it fixes the issue you have reported. May you please add a release note for that? I will do it for you this week if you don\u0027t answer back.\n\nDo note the fix should ideally live at the API level and reject invalid requests right away. Also note that it is possible to break this by omitting other fields too.","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"d9f2670b814cbd579ec941f92885783653981e97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ec614579_deb18d59","in_reply_to":"10fe65c9_7fc213bd","updated":"2022-10-12 16:16:21.000000000","message":"Thank you!","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"e670c917fd8d1275fb81c8829f90678cc340090d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"878c99a9_368392ee","in_reply_to":"209eecda_4d4de1ce","updated":"2022-10-12 15:06:15.000000000","message":"Done","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"b1d70346ef9a75d45a59038da4c510fc45b482e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"10fe65c9_7fc213bd","in_reply_to":"878c99a9_368392ee","updated":"2022-10-12 15:24:26.000000000","message":"Thanks, though not exactly what I had in mind. I amended it.","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"e670c917fd8d1275fb81c8829f90678cc340090d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"816fd038_400e282c","updated":"2022-10-12 15:06:15.000000000","message":"added RN","commit_id":"cbf73ed7180041c66efd102ff889ab28fdee0ffc"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"b1d70346ef9a75d45a59038da4c510fc45b482e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c0445d4a_cdc77a77","updated":"2022-10-12 15:24:26.000000000","message":"letting suzhengwei have his time to review this and merging in a week; ping me if not approved by then","commit_id":"0837d7787c1be35df4b4330dbe6cdd2c160a69ab"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e4e989bf1d78436eaf24f93105d9894d42c89df6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ef2b2ab4_7ef5538c","in_reply_to":"8c91f1ef_692e8114","updated":"2022-10-13 11:17:25.000000000","message":"I agree, the logic is awful and this is just a bandaid. Thanks, suzhengwei.","commit_id":"0837d7787c1be35df4b4330dbe6cdd2c160a69ab"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"d9f2670b814cbd579ec941f92885783653981e97","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e9503d1a_dccac0fb","in_reply_to":"c0445d4a_cdc77a77","updated":"2022-10-12 16:16:21.000000000","message":"Roger that","commit_id":"0837d7787c1be35df4b4330dbe6cdd2c160a69ab"},{"author":{"_account_id":30623,"name":"suzhengwei","email":"suzhengwei@inspur.com","username":"SuZhengwei"},"change_message_id":"8a548531112600adebe7d595d813a9e83649145c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8c91f1ef_692e8114","in_reply_to":"e9503d1a_dccac0fb","updated":"2022-10-13 09:08:04.000000000","message":"The value \u0027HOST_STATUS_NORMAL\u0027 for \u0027host_status\u0027 is deceptive. It indicates that the host is poweroff if check by ipmi, or not check by ipmi, in hostmonitor by pacemaker. The hostmonitor by consul didn\u0027t integrate ipmi check, because it\u0027s not friendly to config. The perfect way is to make ipmi check reusable, more friendly to config.\nIn my opinion, it\u0027s out of time to check \u0027host_status\u0027 when handle notification type host. It is enough to check notification event, \u0027STARTED\u0027 or \u0027STOPPED\u0027, or one third value. I hope for more improvement in the future, and I respect current situation and this patch.","commit_id":"0837d7787c1be35df4b4330dbe6cdd2c160a69ab"}],"masakari/engine/manager.py":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3f5d6140e8c84358c3e9ae9fc2008a8087b93cba","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        return notification_status"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _handle_notification_type_host(self, context, notification):"},{"line_number":175,"context_line":"        host_status \u003d notification.payload.get(\u0027host_status\u0027)"},{"line_number":176,"context_line":"        notification_status \u003d fields.NotificationStatus.FINISHED"},{"line_number":177,"context_line":"        notification_event \u003d notification.payload.get(\u0027event\u0027)"},{"line_number":178,"context_line":"        exception_info \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"f1822150_bb0ccd8b","line":175,"updated":"2022-10-11 10:43:01.000000000","message":"This could just default to an empty string for a similar effect.","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3f5d6140e8c84358c3e9ae9fc2008a8087b93cba","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    def _handle_notification_type_host(self, context, notification):"},{"line_number":175,"context_line":"        host_status \u003d notification.payload.get(\u0027host_status\u0027)"},{"line_number":176,"context_line":"        notification_status \u003d fields.NotificationStatus.FINISHED"},{"line_number":177,"context_line":"        notification_event \u003d notification.payload.get(\u0027event\u0027)"},{"line_number":178,"context_line":"        exception_info \u003d None"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"        if host_status is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"243d7422_f3fe090d","line":177,"updated":"2022-10-11 10:43:01.000000000","message":"FWIW, this can break similarly.","commit_id":"2eb46d840cbb60d2181ed0aca345db8a209af7a5"}],"masakari/tests/unit/engine/test_engine_mgr.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"787d43d7bfae400082f22de3c5048b1e6028fbc9","unresolved":true,"context_lines":[{"line_number":824,"context_line":"            self, mock_get_noti, mock_notification_save):"},{"line_number":825,"context_line":"        notification \u003d fakes.create_fake_notification("},{"line_number":826,"context_line":"            type\u003d\"COMPUTE_HOST\", id\u003d1, payload\u003d{"},{"line_number":827,"context_line":"                \u0027event\u0027: \u0027stopped\u0027, \u0027host_status\u0027: \u0027UNKNOWN\u0027,"},{"line_number":828,"context_line":"                \u0027cluster_status\u0027: \u0027ONLINE\u0027"},{"line_number":829,"context_line":"            },"},{"line_number":830,"context_line":"            source_host_uuid\u003duuidsentinel.fake_host,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c222afbf_2ff4c67a","line":827,"range":{"start_line":827,"start_character":36,"end_line":827,"end_character":61},"updated":"2022-09-23 13:44:35.000000000","message":"This test case is the case that host_status is UNKNOWN.\nThe test case that host_status is None is required.\nSo add the test case that host_status is None.","commit_id":"475d797fa47b4f0030d412d6183d6a9dcb980294"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"fc41d384d2eeb1bffc34058957b24b89f61ec03f","unresolved":false,"context_lines":[{"line_number":824,"context_line":"            self, mock_get_noti, mock_notification_save):"},{"line_number":825,"context_line":"        notification \u003d fakes.create_fake_notification("},{"line_number":826,"context_line":"            type\u003d\"COMPUTE_HOST\", id\u003d1, payload\u003d{"},{"line_number":827,"context_line":"                \u0027event\u0027: \u0027stopped\u0027, \u0027host_status\u0027: \u0027UNKNOWN\u0027,"},{"line_number":828,"context_line":"                \u0027cluster_status\u0027: \u0027ONLINE\u0027"},{"line_number":829,"context_line":"            },"},{"line_number":830,"context_line":"            source_host_uuid\u003duuidsentinel.fake_host,"}],"source_content_type":"text/x-python","patch_set":2,"id":"233fea4d_aa5e1797","line":827,"range":{"start_line":827,"start_character":36,"end_line":827,"end_character":61},"in_reply_to":"c222afbf_2ff4c67a","updated":"2022-09-27 12:51:29.000000000","message":"Done","commit_id":"475d797fa47b4f0030d412d6183d6a9dcb980294"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc753a8566df46b06b3c35778ac4cbb2f5938077","unresolved":true,"context_lines":[{"line_number":870,"context_line":"        with mock.patch(\"masakari.engine.manager.LOG.warning\") as mock_log:"},{"line_number":871,"context_line":"            self.engine._process_notification(self.context,"},{"line_number":872,"context_line":"                                              notification\u003dnotification)"},{"line_number":873,"context_line":"            mock_log.assert_called_once()"},{"line_number":874,"context_line":"            args \u003d mock_log.call_args[0]"},{"line_number":875,"context_line":"            expected_log \u003d \"Notification \u0027%(uuid)s\u0027 ignored as host_status \" \\"},{"line_number":876,"context_line":"                           \"is not provided.\""}],"source_content_type":"text/x-python","patch_set":3,"id":"936ef496_def10cec","line":873,"range":{"start_line":873,"start_character":21,"end_line":873,"end_character":39},"updated":"2022-09-27 14:06:02.000000000","message":"nit: You can use assert_called_once_with.","commit_id":"253beb2a5a8bd123401d4c0eceee45fd8de019ec"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"28994d420ff404695956bee68a34299373e41e70","unresolved":false,"context_lines":[{"line_number":870,"context_line":"        with mock.patch(\"masakari.engine.manager.LOG.warning\") as mock_log:"},{"line_number":871,"context_line":"            self.engine._process_notification(self.context,"},{"line_number":872,"context_line":"                                              notification\u003dnotification)"},{"line_number":873,"context_line":"            mock_log.assert_called_once()"},{"line_number":874,"context_line":"            args \u003d mock_log.call_args[0]"},{"line_number":875,"context_line":"            expected_log \u003d \"Notification \u0027%(uuid)s\u0027 ignored as host_status \" \\"},{"line_number":876,"context_line":"                           \"is not provided.\""}],"source_content_type":"text/x-python","patch_set":3,"id":"2b79f4b0_e0ead837","line":873,"range":{"start_line":873,"start_character":21,"end_line":873,"end_character":39},"in_reply_to":"936ef496_def10cec","updated":"2022-09-27 14:48:28.000000000","message":"Done","commit_id":"253beb2a5a8bd123401d4c0eceee45fd8de019ec"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bc753a8566df46b06b3c35778ac4cbb2f5938077","unresolved":true,"context_lines":[{"line_number":872,"context_line":"                                              notification\u003dnotification)"},{"line_number":873,"context_line":"            mock_log.assert_called_once()"},{"line_number":874,"context_line":"            args \u003d mock_log.call_args[0]"},{"line_number":875,"context_line":"            expected_log \u003d \"Notification \u0027%(uuid)s\u0027 ignored as host_status \" \\"},{"line_number":876,"context_line":"                           \"is not provided.\""},{"line_number":877,"context_line":"            expected_log_args_1 \u003d {\u0027uuid\u0027: notification.notification_uuid}"},{"line_number":878,"context_line":"            self.assertEqual(expected_log, args[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff09728c_dbb957e2","line":875,"range":{"start_line":875,"start_character":76,"end_line":875,"end_character":78},"updated":"2022-09-27 14:06:02.000000000","message":"nit: () can be used like line 844 and 845.","commit_id":"253beb2a5a8bd123401d4c0eceee45fd8de019ec"},{"author":{"_account_id":32927,"name":"mitya-eremeev-2","display_name":"Mitya Eremeev","email":"mitossvyaz@mail.ru","username":"mitya-eremeev-2"},"change_message_id":"28994d420ff404695956bee68a34299373e41e70","unresolved":false,"context_lines":[{"line_number":872,"context_line":"                                              notification\u003dnotification)"},{"line_number":873,"context_line":"            mock_log.assert_called_once()"},{"line_number":874,"context_line":"            args \u003d mock_log.call_args[0]"},{"line_number":875,"context_line":"            expected_log \u003d \"Notification \u0027%(uuid)s\u0027 ignored as host_status \" \\"},{"line_number":876,"context_line":"                           \"is not provided.\""},{"line_number":877,"context_line":"            expected_log_args_1 \u003d {\u0027uuid\u0027: notification.notification_uuid}"},{"line_number":878,"context_line":"            self.assertEqual(expected_log, args[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"92df56a7_10e2a570","line":875,"range":{"start_line":875,"start_character":76,"end_line":875,"end_character":78},"in_reply_to":"ff09728c_dbb957e2","updated":"2022-09-27 14:48:28.000000000","message":"Done","commit_id":"253beb2a5a8bd123401d4c0eceee45fd8de019ec"}]}
