)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"6db63ad016672d865265aed7db3b9cbaca2f483b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b695cb52_c85fc6aa","updated":"2024-12-18 18:32:51.000000000","message":"recheck","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"c2a6c5d7bc69a7b097e819dabadf681408111751","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cb591bd9_8b4faad2","updated":"2024-12-18 18:24:51.000000000","message":"recheck","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"14bcdb8b467a4717b32c82dc67e8b8a85a4c94fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a84a574e_5eae45c4","updated":"2026-01-14 00:31:20.000000000","message":"@sei.sano@ntt.com hello, please review this MR.","commit_id":"2f6859d94126b70fdfa537fa28602eb1c1be04b7"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b7b1283891b3ce297e0097aabe9e7bd16a61845d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b7c6ddd4_830cf95b","updated":"2026-02-16 07:40:47.000000000","message":"this makes sense to me overall, and unit test seem to be reasonable covering the cahnge","commit_id":"2f6859d94126b70fdfa537fa28602eb1c1be04b7"}],"masakarimonitors/ha/masakari.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"ccf32aba52c01e4cfb868d264c2343d94971dd5d","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            except Exception as e:"},{"line_number":76,"context_line":"                if isinstance(e, exceptions.HttpException):"},{"line_number":77,"context_line":"                    if e.status_code \u003d\u003d 400:"},{"line_number":78,"context_line":"                        LOG.error(e)"},{"line_number":79,"context_line":"                        raise"},{"line_number":80,"context_line":"                    elif e.status_code \u003d\u003d 409:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ebbcd0e8_2c30df62","line":77,"range":{"start_line":77,"start_character":20,"end_line":77,"end_character":43},"updated":"2025-01-14 16:08:17.000000000","message":"apparently, masakari API returns 400 when host is not in any segment (though 404 would be better here IMO), so we do need to continue ignoring it.","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"2987d82be2f26c4c0e2d6194341655266dbf06c4","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            except Exception as e:"},{"line_number":76,"context_line":"                if isinstance(e, exceptions.HttpException):"},{"line_number":77,"context_line":"                    if e.status_code \u003d\u003d 400:"},{"line_number":78,"context_line":"                        LOG.error(e)"},{"line_number":79,"context_line":"                        raise"},{"line_number":80,"context_line":"                    elif e.status_code \u003d\u003d 409:"}],"source_content_type":"text/x-python","patch_set":5,"id":"0578b6e1_f76b32e5","line":77,"range":{"start_line":77,"start_character":20,"end_line":77,"end_character":43},"in_reply_to":"ebbcd0e8_2c30df62","updated":"2025-03-13 12:57:32.000000000","message":"Acknowledged","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"ccf32aba52c01e4cfb868d264c2343d94971dd5d","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                    if e.status_code \u003d\u003d 400:"},{"line_number":78,"context_line":"                        LOG.error(e)"},{"line_number":79,"context_line":"                        raise"},{"line_number":80,"context_line":"                    elif e.status_code \u003d\u003d 409:"},{"line_number":81,"context_line":"                        LOG.info(e)"},{"line_number":82,"context_line":"                        raise"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"69d6c4a3_04d080ff","line":80,"range":{"start_line":80,"start_character":25,"end_line":80,"end_character":45},"updated":"2025-01-14 16:08:17.000000000","message":"as for 409, it seems some other monitors (like hostmonitor) would break as they would try to send the same notification over and over w/o checking if that is still needed https://bugs.launchpad.net/masakari-monitors/+bug/1664498\n\nso I am adding a toggle to send_notification on whether to raise on 409 or ignore it, and will raise only in introspective instance monitor","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"2987d82be2f26c4c0e2d6194341655266dbf06c4","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                    if e.status_code \u003d\u003d 400:"},{"line_number":78,"context_line":"                        LOG.error(e)"},{"line_number":79,"context_line":"                        raise"},{"line_number":80,"context_line":"                    elif e.status_code \u003d\u003d 409:"},{"line_number":81,"context_line":"                        LOG.info(e)"},{"line_number":82,"context_line":"                        raise"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ed89bbe2_c9f9343b","line":80,"range":{"start_line":80,"start_character":25,"end_line":80,"end_character":45},"in_reply_to":"69d6c4a3_04d080ff","updated":"2025-03-13 12:57:32.000000000","message":"Acknowledged","commit_id":"7f699787f2a6f41f7cce6a071d4fdbcd7228d1f9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"66cfdeee3f4e7ac6e482d1ca08f81a53b593f531","unresolved":true,"context_lines":[{"line_number":81,"context_line":"                        LOG.info(e)"},{"line_number":82,"context_line":"                        break"},{"line_number":83,"context_line":"                    elif e.status_code \u003d\u003d 409:"},{"line_number":84,"context_line":"                        if raise_on_conflict:"},{"line_number":85,"context_line":"                            raise"},{"line_number":86,"context_line":"                        else:"},{"line_number":87,"context_line":"                            LOG.info(e)"},{"line_number":88,"context_line":"                            break"}],"source_content_type":"text/x-python","patch_set":7,"id":"85ace109_97c06968","line":85,"range":{"start_line":84,"start_character":0,"end_line":85,"end_character":33},"updated":"2026-02-16 07:56:53.000000000","message":"Maybe we can check whether the target host is in maintenance, to avoid sending the notifications for that case ?","commit_id":"2f6859d94126b70fdfa537fa28602eb1c1be04b7"}]}
