)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5ef738047d774f0423ca0a8012c6932eed2076d2","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix:  traceback.format_exc() Called Outside Exception Context"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Moved traceback.format_exc() call inside each except block where the exception context is still active. Store in exception_tb"},{"line_number":10,"context_line":"variable for later use"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Description: traceback.format_exc() was called outside the except block, where sys.exc_info() has been cleared. It always returned"},{"line_number":13,"context_line":"\"NoneType: None\" instead of the actual traceback."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Impact: Error notification events sent with meaningless traceback data, making debugging recovery failures extremely difficult in"},{"line_number":16,"context_line":"production."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ie696a3e319540ea491da26ccca9bf1ae17ae9b73"},{"line_number":19,"context_line":"Signed-off-by: Gomathi \u003cgomathig@cdac.in\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"98ee2d35_d009a54d","line":16,"range":{"start_line":9,"start_character":0,"end_line":16,"end_character":11},"updated":"2026-07-17 04:54:54.000000000","message":"Also please wrap these lines at 72 characters.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"3f7b01abe93102b05ec2cee53cdab38aa2636950"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"51f79d190c2f3d85fd715c08f3e7a3d4444cd591","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"799edac9_99a6a7e0","updated":"2026-07-17 01:24:37.000000000","message":"Please add Assisted-By/Generated-By tag if you are generating this by any (AI) toolings.\n\nhttps://openinfra.org/legal/ai-policy","commit_id":"1070c267913dd44baa2a778f1adf5a5c21414217"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"2747189f147c01baae58d85a12e8942eca017ef1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"527a5678_7227c7c3","updated":"2026-07-17 14:21:04.000000000","message":"Some of my previous comments are not yet addressed.","commit_id":"15e4bbf3bdb61a16f1a2ef6885689881763c7841"}],"masakari/engine/manager.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"960d9f981ed33053baedb76bb3391a87be142a51","unresolved":true,"context_lines":[{"line_number":83,"context_line":"                context, notification.source_host_uuid)"},{"line_number":84,"context_line":"            host_name \u003d host_obj.name"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"            # Mark host on_maintenance mode as True"},{"line_number":87,"context_line":"            update_data \u003d {"},{"line_number":88,"context_line":"                \u0027on_maintenance\u0027: True,"},{"line_number":89,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":2,"id":"b59634a2_404cd4a7","side":"PARENT","line":86,"range":{"start_line":86,"start_character":12,"end_line":86,"end_character":51},"updated":"2026-07-17 01:26:28.000000000","message":"PLEASE DO NOT REMOVE THESE LINES.","commit_id":"b6364924009e7ef45653fcc49ff896816fc21751"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"960d9f981ed33053baedb76bb3391a87be142a51","unresolved":true,"context_lines":[{"line_number":360,"context_line":"                                                              filters\u003dfilters)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        for notification in notifications_list:"},{"line_number":363,"context_line":"            try:"},{"line_number":364,"context_line":"                host \u003d objects.Host.get_by_uuid("},{"line_number":365,"context_line":"                    context, notification.source_host_uuid)"},{"line_number":366,"context_line":"                if not host.failover_segment.enabled:"},{"line_number":367,"context_line":"                    LOG.info("},{"line_number":368,"context_line":"                        \"Periodic task \u0027process_unfinished_notifications\u0027: \""},{"line_number":369,"context_line":"                        \"Skipping notification %(notification_uuid)s because \""},{"line_number":370,"context_line":"                        \"failover segment is disabled.\","},{"line_number":371,"context_line":"                        {\u0027notification_uuid\u0027:"},{"line_number":372,"context_line":"                         notification.notification_uuid})"},{"line_number":373,"context_line":"                    update_data \u003d {"},{"line_number":374,"context_line":"                        \u0027status\u0027: fields.NotificationStatus.IGNORED,"},{"line_number":375,"context_line":"                        \u0027message\u0027: \u0027Recovery abort: the segment HA is \u0027"},{"line_number":376,"context_line":"                                   \u0027disabled.\u0027,"},{"line_number":377,"context_line":"                    }"},{"line_number":378,"context_line":"                    notification.update(update_data)"},{"line_number":379,"context_line":"                    notification.save()"},{"line_number":380,"context_line":"                    continue"},{"line_number":381,"context_line":"            except exception.HostNotFound:"},{"line_number":382,"context_line":"                LOG.warning("},{"line_number":383,"context_line":"                    \"Periodic task \u0027process_unfinished_notifications\u0027: \""},{"line_number":384,"context_line":"                    \"Host not found for notification %(notification_uuid)s, \""},{"line_number":385,"context_line":"                    \"marking as failed.\","},{"line_number":386,"context_line":"                    {\u0027notification_uuid\u0027: notification.notification_uuid})"},{"line_number":387,"context_line":"                update_data \u003d {"},{"line_number":388,"context_line":"                    \u0027status\u0027: fields.NotificationStatus.FAILED,"},{"line_number":389,"context_line":"                    \u0027message\u0027: \u0027Host not found for notification.\u0027,"},{"line_number":390,"context_line":"                }"},{"line_number":391,"context_line":"                notification.update(update_data)"},{"line_number":392,"context_line":"                notification.save()"},{"line_number":393,"context_line":"                continue"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"            if (notification.status \u003d\u003d fields.NotificationStatus.ERROR or"},{"line_number":396,"context_line":"                    (notification.status \u003d\u003d fields.NotificationStatus.NEW and"},{"line_number":397,"context_line":"                timeutils.is_older_than("}],"source_content_type":"text/x-python","patch_set":2,"id":"7feef923_88aaa280","line":394,"range":{"start_line":363,"start_character":0,"end_line":394,"end_character":2},"updated":"2026-07-17 01:26:28.000000000","message":"How could this be related to this change ?","commit_id":"1070c267913dd44baa2a778f1adf5a5c21414217"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a0375d4d9beca4b987b1136912d8c9bee6f6306f","unresolved":true,"context_lines":[{"line_number":203,"context_line":"            host_name \u003d host_obj.name"},{"line_number":204,"context_line":"            recovery_method \u003d host_obj.failover_segment.recovery_method"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"            # Mark host on_maintenance mode as True"},{"line_number":207,"context_line":"            update_data \u003d {"},{"line_number":208,"context_line":"                \u0027on_maintenance\u0027: True,"},{"line_number":209,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":4,"id":"281deaac_9fd68bea","side":"PARENT","line":206,"range":{"start_line":206,"start_character":12,"end_line":206,"end_character":51},"updated":"2026-07-17 09:43:00.000000000","message":"There are still number of comments removed by this, but I don\u0027t think these are either required or related. Please go through diff and restore these all.","commit_id":"b6364924009e7ef45653fcc49ff896816fc21751"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a0375d4d9beca4b987b1136912d8c9bee6f6306f","unresolved":true,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        return notification_status"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def _process_notification(self, context, notification):"},{"line_number":271,"context_line":"        lock_name \u003d notification.source_host_uuid"},{"line_number":272,"context_line":"        if not lock_name:"},{"line_number":273,"context_line":"            LOG.error(\"Notification %(uuid)s has no source_host_uuid, \""},{"line_number":274,"context_line":"                      \"cannot process.\","},{"line_number":275,"context_line":"                      {\u0027uuid\u0027: notification.notification_uuid})"},{"line_number":276,"context_line":"            return"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        @utils.synchronized(lock_name, blocking\u003dTrue)"},{"line_number":279,"context_line":"        def do_process_notification(notification):"},{"line_number":280,"context_line":"            LOG.info(\u0027Processing notification %(notification_uuid)s of \u0027"},{"line_number":281,"context_line":"                     \u0027type: %(type)s\u0027,"},{"line_number":282,"context_line":"                     {\u0027notification_uuid\u0027: notification.notification_uuid,"},{"line_number":283,"context_line":"                      \u0027type\u0027: notification.type})"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"            notification_db \u003d objects.Notification.get_by_uuid(context,"},{"line_number":286,"context_line":"                                        notification.notification_uuid)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"            current_status \u003d notification_db.status"},{"line_number":289,"context_line":"            if current_status not in (fields.NotificationStatus.NEW,"},{"line_number":290,"context_line":"                                      fields.NotificationStatus.ERROR):"},{"line_number":291,"context_line":"                LOG.warning(\"Processing of notification is skipped to avoid \""},{"line_number":292,"context_line":"                            \"recovering from failure twice. \""},{"line_number":293,"context_line":"                            \"Notification \u0027%(uuid)s\u0027 current DB status is \""},{"line_number":294,"context_line":"                            \"\u0027%(status)s\u0027 (expected NEW or ERROR).\","},{"line_number":295,"context_line":"                            {\"uuid\": notification.notification_uuid,"},{"line_number":296,"context_line":"                             \"status\": current_status})"},{"line_number":297,"context_line":"                return"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            update_data \u003d {"},{"line_number":300,"context_line":"                \u0027status\u0027: fields.NotificationStatus.RUNNING,"}],"source_content_type":"text/x-python","patch_set":4,"id":"f7db9bba_4b5de547","line":297,"range":{"start_line":270,"start_character":0,"end_line":297,"end_character":22},"updated":"2026-07-17 09:43:00.000000000","message":"This isn\u0027t related, either.","commit_id":"c5839220349b54d1693399c5ba8f9607e6c13e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a0375d4d9beca4b987b1136912d8c9bee6f6306f","unresolved":true,"context_lines":[{"line_number":333,"context_line":"    def process_notification(self, context, notification\u003dNone):"},{"line_number":334,"context_line":"        \"\"\"Processes the notification\"\"\""},{"line_number":335,"context_line":"        host \u003d objects.Host.get_by_uuid("},{"line_number":336,"context_line":"            context, notification.source_host_uuid)"},{"line_number":337,"context_line":"        if not host.failover_segment.enabled:"},{"line_number":338,"context_line":"            update_data \u003d {"},{"line_number":339,"context_line":"                \u0027status\u0027: fields.NotificationStatus.IGNORED,"},{"line_number":340,"context_line":"                \u0027message\u0027: \u0027Recovery abort: the segment HA is disabled.\u0027,"},{"line_number":341,"context_line":"            }"},{"line_number":342,"context_line":"            notification.update(update_data)"},{"line_number":343,"context_line":"            notification.save()"},{"line_number":344,"context_line":"            msg \u003d (\u0027Notification %(notification_uuid)s of type: %(type)s \u0027"},{"line_number":345,"context_line":"                   \u0027is ignored, because the failover segment is disabled.\u0027"},{"line_number":346,"context_line":"                   % {\u0027notification_uuid\u0027: notification.notification_uuid,"},{"line_number":347,"context_line":"                      \u0027type\u0027: notification.type})"},{"line_number":348,"context_line":"            raise exception.FailoverSegmentDisabled(msg)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        self._process_notification(context, notification)"},{"line_number":351,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9d99cbe7_ff03602d","line":348,"range":{"start_line":336,"start_character":51,"end_line":348,"end_character":56},"updated":"2026-07-17 09:43:00.000000000","message":"This probably needs to be a separate fix.","commit_id":"c5839220349b54d1693399c5ba8f9607e6c13e16"}],"masakari/tests/unit/engine/test_engine_mgr.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b85d1dec5c13004937721b582f0bc6247a6c1dfc","unresolved":true,"context_lines":[{"line_number":776,"context_line":"                                              notification\u003dnoti_new)"},{"line_number":777,"context_line":"            mock_log.assert_called_once()"},{"line_number":778,"context_line":"            args \u003d mock_log.call_args[0]"},{"line_number":779,"context_line":"            expected_log \u003d ("},{"line_number":780,"context_line":"                \"Processing of notification is skipped to avoid \""},{"line_number":781,"context_line":"                \"recovering from failure twice. \""},{"line_number":782,"context_line":"                \"Notification \u0027%(uuid)s\u0027 current DB status is \""},{"line_number":783,"context_line":"                \"\u0027%(status)s\u0027 (expected NEW or ERROR).\""},{"line_number":784,"context_line":"            )"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"            expected_log_args_1 \u003d {"},{"line_number":787,"context_line":"                \u0027uuid\u0027: noti_new.notification_uuid,"},{"line_number":788,"context_line":"                \u0027status\u0027: \"failed\","},{"line_number":789,"context_line":"            }"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"            self.assertEqual(expected_log, args[0])"},{"line_number":792,"context_line":"            self.assertEqual(expected_log_args_1, args[1])"}],"source_content_type":"text/x-python","patch_set":3,"id":"89c5d5ed_d4f72e66","line":789,"range":{"start_line":779,"start_character":1,"end_line":789,"end_character":13},"updated":"2026-07-17 04:48:20.000000000","message":"This change looks completely unrelated.","commit_id":"3f7b01abe93102b05ec2cee53cdab38aa2636950"}],"masakari/tests/unit/test_tracepack_format.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Each test class corresponds to one finding from the security audit."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":1,"id":"eea1f3a5_2468eb75","line":22,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027datetime\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Each test class corresponds to one finding from the security audit."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f7abb18_9b3ac00e","line":22,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027datetime\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"}],"source_content_type":"text/x-python","patch_set":1,"id":"83db5584_b39ed003","line":23,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027unittest.mock\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"}],"source_content_type":"text/x-python","patch_set":1,"id":"bef18844_5788a17e","line":23,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027unittest.mock\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"}],"source_content_type":"text/x-python","patch_set":1,"id":"013dcdc8_1df97192","line":25,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027oslo_utils.timeutils\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import datetime"},{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"}],"source_content_type":"text/x-python","patch_set":1,"id":"2150335f_ce41702a","line":25,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027oslo_utils.timeutils\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f34f145_9698b994","line":26,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027webob\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from unittest import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"}],"source_content_type":"text/x-python","patch_set":1,"id":"b09f9c3b_9796acc0","line":26,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027webob\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"}],"source_content_type":"text/x-python","patch_set":1,"id":"1c49a0ce_385b7a90","line":28,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.api.openstack.ha.schemas.notifications as notif_schema\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from oslo_utils import timeutils"},{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"}],"source_content_type":"text/x-python","patch_set":1,"id":"820c6e2a_067e4773","line":28,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.api.openstack.ha.schemas.notifications as notif_schema\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"5837e156_3fb90125","line":29,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.api.validation as api_validation\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import webob"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"f1d25cd9_447438a7","line":29,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.api.validation as api_validation\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"}],"source_content_type":"text/x-python","patch_set":1,"id":"ad34e15a_6208d8ec","line":30,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.api.validation.parameter_types\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"}],"source_content_type":"text/x-python","patch_set":1,"id":"60453329_4edf0fa6","line":30,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.api.validation.parameter_types\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"}],"source_content_type":"text/x-python","patch_set":1,"id":"61525838_19a9692e","line":31,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.context as masakari_context\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from masakari.api.openstack.ha.schemas import notifications as notif_schema"},{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a01dd84_e2652fe2","line":31,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.context as masakari_context\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"edbbcbf3_5cb54cbe","line":32,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.exception\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from masakari.api import validation as api_validation"},{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a6615784_148cd546","line":32,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.exception\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"52e782d2_26b15a3a","line":33,"updated":"2026-07-16 11:43:58.000000000","message":"linters: F401 \u0027masakari.objects.fields\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from masakari.api.validation import parameter_types"},{"line_number":31,"context_line":"from masakari import context as masakari_context"},{"line_number":32,"context_line":"from masakari import exception"},{"line_number":33,"context_line":"from masakari.objects import fields"},{"line_number":34,"context_line":"from masakari import test"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-python","patch_set":1,"id":"e8f4f7cd_dbe0dd18","line":33,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: F401 \u0027masakari.objects.fields\u0027 imported but unused","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":"# High #7: traceback.format_exc() Called Outside Exception Context"},{"line_number":38,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":"class TestHigh7_TracebackCapture(test.NoDBTestCase):"},{"line_number":40,"context_line":"    \"\"\"Test that traceback is captured inside the except block.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_process_handler_captures_tb_in_except(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"6f5f71da_0bb89b6e","line":39,"updated":"2026-07-16 11:43:58.000000000","message":"linters: E302 expected 2 blank lines, found 1","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":"# High #7: traceback.format_exc() Called Outside Exception Context"},{"line_number":38,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":"class TestHigh7_TracebackCapture(test.NoDBTestCase):"},{"line_number":40,"context_line":"    \"\"\"Test that traceback is captured inside the except block.\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_process_handler_captures_tb_in_except(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7b83a98a_a393ffca","line":39,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_process_handler_captures_tb_in_except(self):"},{"line_number":43,"context_line":"        \"\"\"Verify _handle_notification_type_process captures tb in except.\"\"\""},{"line_number":44,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":45,"context_line":"        import inspect"},{"line_number":46,"context_line":"        source \u003d inspect.getsource("},{"line_number":47,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_process)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"322d7c4a_40e9877a","line":45,"updated":"2026-07-16 11:43:58.000000000","message":"linters: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_process_handler_captures_tb_in_except(self):"},{"line_number":43,"context_line":"        \"\"\"Verify _handle_notification_type_process captures tb in except.\"\"\""},{"line_number":44,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":45,"context_line":"        import inspect"},{"line_number":46,"context_line":"        source \u003d inspect.getsource("},{"line_number":47,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_process)"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"81dac1b2_70809560","line":45,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_instance_handler_captures_tb_in_except(self):"},{"line_number":57,"context_line":"        \"\"\"Verify _handle_notification_type_instance captures tb in except.\"\"\""},{"line_number":58,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":59,"context_line":"        import inspect"},{"line_number":60,"context_line":"        source \u003d inspect.getsource("},{"line_number":61,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_instance)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a4b1be2b_59f30f5c","line":59,"updated":"2026-07-16 11:43:58.000000000","message":"linters: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_instance_handler_captures_tb_in_except(self):"},{"line_number":57,"context_line":"        \"\"\"Verify _handle_notification_type_instance captures tb in except.\"\"\""},{"line_number":58,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":59,"context_line":"        import inspect"},{"line_number":60,"context_line":"        source \u003d inspect.getsource("},{"line_number":61,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_instance)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"98c0213e_b3f33bd2","line":59,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def test_host_handler_captures_tb_in_except(self):"},{"line_number":66,"context_line":"        \"\"\"Verify _handle_notification_type_host captures tb in except.\"\"\""},{"line_number":67,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":68,"context_line":"        import inspect"},{"line_number":69,"context_line":"        source \u003d inspect.getsource("},{"line_number":70,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_host)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5672e73e_8fa67826","line":68,"updated":"2026-07-16 11:43:58.000000000","message":"linters: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def test_host_handler_captures_tb_in_except(self):"},{"line_number":66,"context_line":"        \"\"\"Verify _handle_notification_type_host captures tb in except.\"\"\""},{"line_number":67,"context_line":"        from masakari.engine import manager as engine_mgr"},{"line_number":68,"context_line":"        import inspect"},{"line_number":69,"context_line":"        source \u003d inspect.getsource("},{"line_number":70,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_host)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"09e18a34_47122518","line":68,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: H306: imports not in alphabetical order (masakari.engine.manager, inspect)","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_host)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self.assertIn(\u0027exception_tb \u003d traceback.format_exc()\u0027, source)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"07c8ee80_ba5b8ac7","line":73,"updated":"2026-07-16 11:43:58.000000000","message":"linters: W391 blank line at end of file","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3c714bb088f327ecf87b04cd13789a1b8f394819","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            engine_mgr.MasakariManager._handle_notification_type_host)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self.assertIn(\u0027exception_tb \u003d traceback.format_exc()\u0027, source)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0d13d563_0d921a77","line":73,"updated":"2026-07-16 11:43:58.000000000","message":"pep8: W391 blank line at end of file","commit_id":"ac07a90724a9571d21d0c705d7e6f2236b9b220a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"51f79d190c2f3d85fd715c08f3e7a3d4444cd591","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2024 - Security Bug Fixes Test Suite"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"8b474521_fc2f06dc","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2026-07-17 01:24:37.000000000","message":"?","commit_id":"1070c267913dd44baa2a778f1adf5a5c21414217"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"51f79d190c2f3d85fd715c08f3e7a3d4444cd591","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2024 - Security Bug Fixes Test Suite"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"bcec0363_1954686e","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":48},"updated":"2026-07-17 01:24:37.000000000","message":"Do not use tool name as copyright owner. A tool can\u0027t own copyrtight.","commit_id":"1070c267913dd44baa2a778f1adf5a5c21414217"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b85d1dec5c13004937721b582f0bc6247a6c1dfc","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        self.assertNotIn("},{"line_number":33,"context_line":"            \"\\n        if exception_info:\\n\""},{"line_number":34,"context_line":"            \"            tb \u003d traceback.format_exc()\","},{"line_number":35,"context_line":"            source)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def test_instance_handler_captures_tb_in_except(self):"},{"line_number":38,"context_line":"        \"\"\"Verify _handle_notification_type_instance captures tb in except.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"34319103_9cb38c33","line":35,"updated":"2026-07-17 04:48:20.000000000","message":"We don\u0027t implement such code implementation test in unit tests. If we want such checks then these should be implemented in hacking rules.","commit_id":"3f7b01abe93102b05ec2cee53cdab38aa2636950"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(TestHigh7TracebackCapture, self).setUp()"},{"line_number":28,"context_line":"        self.manager \u003d engine_mgr.MasakariManager()"},{"line_number":29,"context_line":"        self.context \u003d mock.sentinel.context"},{"line_number":30,"context_line":"        "},{"line_number":31,"context_line":"        # Build a valid mock notification that bypasses the entry validations"},{"line_number":32,"context_line":"        self.notification \u003d mock.MagicMock()"},{"line_number":33,"context_line":"        self.notification.notification_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bb44afb2_f386129f","line":30,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(TestHigh7TracebackCapture, self).setUp()"},{"line_number":28,"context_line":"        self.manager \u003d engine_mgr.MasakariManager()"},{"line_number":29,"context_line":"        self.context \u003d mock.sentinel.context"},{"line_number":30,"context_line":"        "},{"line_number":31,"context_line":"        # Build a valid mock notification that bypasses the entry validations"},{"line_number":32,"context_line":"        self.notification \u003d mock.MagicMock()"},{"line_number":33,"context_line":"        self.notification.notification_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":5,"id":"58fecffa_03d18ddc","line":30,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @mock.patch(\u0027masakari.objects.Host.get_by_uuid\u0027)"},{"line_number":42,"context_line":"    @mock.patch(\u0027masakari.engine.utils.notify_about_notification_update\u0027)"},{"line_number":43,"context_line":"    def test_process_handler_captures_tb_in_except(self, mock_notify, mock_get_host):"},{"line_number":44,"context_line":"        self.notification.type \u003d \u0027process\u0027"},{"line_number":45,"context_line":"        mock_host \u003d mock.MagicMock()"},{"line_number":46,"context_line":"        mock_host.name \u003d \u0027fake-host\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"37eee8be_0a58e07f","line":43,"updated":"2026-07-17 11:18:37.000000000","message":"linters: E501 line too long (85 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @mock.patch(\u0027masakari.objects.Host.get_by_uuid\u0027)"},{"line_number":42,"context_line":"    @mock.patch(\u0027masakari.engine.utils.notify_about_notification_update\u0027)"},{"line_number":43,"context_line":"    def test_process_handler_captures_tb_in_except(self, mock_notify, mock_get_host):"},{"line_number":44,"context_line":"        self.notification.type \u003d \u0027process\u0027"},{"line_number":45,"context_line":"        mock_host \u003d mock.MagicMock()"},{"line_number":46,"context_line":"        mock_host.name \u003d \u0027fake-host\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"e10bd5e1_5b073363","line":43,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            message\u003d\"Simulated Failure\","},{"line_number":51,"context_line":"            notification_uuid\u003dself.notification.notification_uuid"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        "},{"line_number":54,"context_line":"        with mock.patch.object(self.manager.driver, \u0027execute_process_failure\u0027,"},{"line_number":55,"context_line":"                               side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":56,"context_line":"            "}],"source_content_type":"text/x-python","patch_set":5,"id":"de91b372_acdd4f31","line":53,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            message\u003d\"Simulated Failure\","},{"line_number":51,"context_line":"            notification_uuid\u003dself.notification.notification_uuid"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        "},{"line_number":54,"context_line":"        with mock.patch.object(self.manager.driver, \u0027execute_process_failure\u0027,"},{"line_number":55,"context_line":"                               side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":56,"context_line":"            "}],"source_content_type":"text/x-python","patch_set":5,"id":"6b9ca246_d6242661","line":53,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        "},{"line_number":54,"context_line":"        with mock.patch.object(self.manager.driver, \u0027execute_process_failure\u0027,"},{"line_number":55,"context_line":"                               side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":56,"context_line":"            "},{"line_number":57,"context_line":"            self.manager._handle_notification_type_process("},{"line_number":58,"context_line":"                self.context, self.notification)"},{"line_number":59,"context_line":"            "}],"source_content_type":"text/x-python","patch_set":5,"id":"c1d22da2_5cf24b52","line":56,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        "},{"line_number":54,"context_line":"        with mock.patch.object(self.manager.driver, \u0027execute_process_failure\u0027,"},{"line_number":55,"context_line":"                               side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":56,"context_line":"            "},{"line_number":57,"context_line":"            self.manager._handle_notification_type_process("},{"line_number":58,"context_line":"                self.context, self.notification)"},{"line_number":59,"context_line":"            "}],"source_content_type":"text/x-python","patch_set":5,"id":"09b00124_16e0d408","line":56,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            "},{"line_number":57,"context_line":"            self.manager._handle_notification_type_process("},{"line_number":58,"context_line":"                self.context, self.notification)"},{"line_number":59,"context_line":"            "},{"line_number":60,"context_line":"            mock_notify.assert_called_with("},{"line_number":61,"context_line":"                self.context,"},{"line_number":62,"context_line":"                self.notification,"}],"source_content_type":"text/x-python","patch_set":5,"id":"cce6a137_4b50fb31","line":59,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            "},{"line_number":57,"context_line":"            self.manager._handle_notification_type_process("},{"line_number":58,"context_line":"                self.context, self.notification)"},{"line_number":59,"context_line":"            "},{"line_number":60,"context_line":"            mock_notify.assert_called_with("},{"line_number":61,"context_line":"                self.context,"},{"line_number":62,"context_line":"                self.notification,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ae0d5b0c_f65bfa0a","line":59,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def test_instance_handler_captures_tb_in_except(self, mock_notify):"},{"line_number":71,"context_line":"        self.notification.type \u003d \u0027instance\u0027"},{"line_number":72,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":73,"context_line":"        "},{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"}],"source_content_type":"text/x-python","patch_set":5,"id":"8454dc82_46d68665","line":73,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def test_instance_handler_captures_tb_in_except(self, mock_notify):"},{"line_number":71,"context_line":"        self.notification.type \u003d \u0027instance\u0027"},{"line_number":72,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":73,"context_line":"        "},{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"}],"source_content_type":"text/x-python","patch_set":5,"id":"89776b3e_882a0158","line":73,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.notification.type \u003d \u0027instance\u0027"},{"line_number":72,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":73,"context_line":"        "},{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "}],"source_content_type":"text/x-python","patch_set":5,"id":"eeced98a_4c40e2b2","line":74,"updated":"2026-07-17 11:18:37.000000000","message":"linters: E501 line too long (90 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.notification.type \u003d \u0027instance\u0027"},{"line_number":72,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":73,"context_line":"        "},{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "}],"source_content_type":"text/x-python","patch_set":5,"id":"9858c73f_4b418697","line":74,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: E501 line too long (90 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ce5e2fc4_ead6f521","line":77,"updated":"2026-07-17 11:18:37.000000000","message":"linters: E501 line too long (83 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"049eb8e7_04c29cb3","line":77,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"0e954de3_491194c9","line":77,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Bypass driver structure by mocking the primary workflow engine/driver completely"},{"line_number":75,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a3b55a6f_be14684a","line":77,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("}],"source_content_type":"text/x-python","patch_set":5,"id":"d853bec3_c3cb7111","line":79,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            # Fallback to catching any operation inside the try block"},{"line_number":77,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_instance_failure\u0027, "},{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("}],"source_content_type":"text/x-python","patch_set":5,"id":"a2eccae8_67e7df75","line":79,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("},{"line_number":83,"context_line":"                    self.context, self.notification)"},{"line_number":84,"context_line":"                "}],"source_content_type":"text/x-python","patch_set":5,"id":"8b71f805_b9bb1eb6","line":81,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":79,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":80,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("},{"line_number":83,"context_line":"                    self.context, self.notification)"},{"line_number":84,"context_line":"                "}],"source_content_type":"text/x-python","patch_set":5,"id":"b492daf6_576f56fd","line":81,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("},{"line_number":83,"context_line":"                    self.context, self.notification)"},{"line_number":84,"context_line":"                "},{"line_number":85,"context_line":"                self.assertTrue(mock_notify.called)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @mock.patch(\u0027masakari.engine.utils.notify_about_notification_update\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7663972a_ee5c32e0","line":84,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                "},{"line_number":82,"context_line":"                self.manager._handle_notification_type_instance("},{"line_number":83,"context_line":"                    self.context, self.notification)"},{"line_number":84,"context_line":"                "},{"line_number":85,"context_line":"                self.assertTrue(mock_notify.called)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @mock.patch(\u0027masakari.engine.utils.notify_about_notification_update\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9e21e1c1_15ea8151","line":84,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def test_host_handler_captures_tb_in_except(self, mock_notify):"},{"line_number":89,"context_line":"        self.notification.type \u003d \u0027host\u0027"},{"line_number":90,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":91,"context_line":"        "},{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"9cb84ee3_8d883ab7","line":91,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def test_host_handler_captures_tb_in_except(self, mock_notify):"},{"line_number":89,"context_line":"        self.notification.type \u003d \u0027host\u0027"},{"line_number":90,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":91,"context_line":"        "},{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"ecae3d1c_a62d35c8","line":91,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":91,"context_line":"        "},{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a30d5b9_d7ce2a01","line":93,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        fake_exception \u003d exception.MasakariException(\"Simulated Failure\")"},{"line_number":91,"context_line":"        "},{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"28c923d2_f25461ea","line":93,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("}],"source_content_type":"text/x-python","patch_set":5,"id":"416cb534_6a90cb23","line":95,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        with mock.patch.object(self.manager, \u0027driver\u0027, mock.MagicMock()):"},{"line_number":93,"context_line":"            with mock.patch.object(self.manager.driver, \u0027execute_host_failure\u0027, "},{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("}],"source_content_type":"text/x-python","patch_set":5,"id":"510ad85d_a758fb2b","line":95,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W291 trailing whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("},{"line_number":99,"context_line":"                    self.context, self.notification)"},{"line_number":100,"context_line":"                "}],"source_content_type":"text/x-python","patch_set":5,"id":"917746fa_f34edcc0","line":97,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue), \\"},{"line_number":95,"context_line":"                 mock.patch.object(self.manager.driver, \u0027process_notification\u0027, "},{"line_number":96,"context_line":"                                   side_effect\u003dfake_exception, create\u003dTrue):"},{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("},{"line_number":99,"context_line":"                    self.context, self.notification)"},{"line_number":100,"context_line":"                "}],"source_content_type":"text/x-python","patch_set":5,"id":"37c3d3f9_10790a86","line":97,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("},{"line_number":99,"context_line":"                    self.context, self.notification)"},{"line_number":100,"context_line":"                "},{"line_number":101,"context_line":"                self.assertTrue(mock_notify.called)"}],"source_content_type":"text/x-python","patch_set":5,"id":"0d002e6d_0abc45dc","line":100,"updated":"2026-07-17 11:18:37.000000000","message":"linters: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7d573ced9eea37ae5056f7d467b121981e32e302","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                "},{"line_number":98,"context_line":"                self.manager._handle_notification_type_host("},{"line_number":99,"context_line":"                    self.context, self.notification)"},{"line_number":100,"context_line":"                "},{"line_number":101,"context_line":"                self.assertTrue(mock_notify.called)"}],"source_content_type":"text/x-python","patch_set":5,"id":"e3f098ac_2ed71cd6","line":100,"updated":"2026-07-17 11:18:37.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"1398a282d4a2a1d907d10a475d543e9508a4bf30"}]}
