)]}'
{"neutron_tempest_plugin/tap_as_a_service/scenario/test_tap_mirror_erspan.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import re"},{"line_number":14,"context_line":"import socket"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"87cef651_9cbc4a62","line":15,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.lib.decorators, tempest.lib.common.utils.test_utils)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import re"},{"line_number":14,"context_line":"import socket"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a4eedaec_1e872a6e","line":16,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.lib.common.utils.test_utils, tempest.lib.common.utils.linux.remote_client)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import socket"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3c385392_fccce7ec","line":17,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.lib.common.utils.linux.remote_client, tempest.lib.common.utils.data_utils)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"a7016ed1_5fc6df9e","line":18,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.lib.common.utils.data_utils, tempest.config)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"}],"source_content_type":"text/x-python","patch_set":1,"id":"d7a2fa8f_5501bf8e","line":19,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.config, tempest.common.utils)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ebfbcf7_297a6593","line":20,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: H306: imports not in alphabetical order (tempest.common.utils, re)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"}],"source_content_type":"text/x-python","patch_set":1,"id":"4f255a83_30f4dd65","line":21,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":19,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"},{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"2f068407_e5809fc9","line":22,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"},{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":26,"context_line":"from tempest.lib import decorators"}],"source_content_type":"text/x-python","patch_set":1,"id":"952479b0_1dc1a163","line":23,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.common import utils"},{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"},{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":26,"context_line":"from tempest.lib import decorators"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ca2eb53_7df362a0","line":24,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"},{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":26,"context_line":"from tempest.lib import decorators"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron_tempest_plugin.tap_as_a_service.scenario import manager"}],"source_content_type":"text/x-python","patch_set":1,"id":"23c88df5_ef22ea83","line":25,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":24,"context_line":"from tempest.lib.common.utils.linux import remote_client"},{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":26,"context_line":"from tempest.lib import decorators"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron_tempest_plugin.tap_as_a_service.scenario import manager"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c3c7f292_3ee591a6","line":26,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from tempest.lib.common.utils import test_utils"},{"line_number":26,"context_line":"from tempest.lib import decorators"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron_tempest_plugin.tap_as_a_service.scenario import manager"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d config.CONF"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"07443f09_c7889107","line":28,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E402 module level import not at top of file","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    @utils.requires_ext(extension\u003d\u0027tap-mirror\u0027, service\u003d\u0027network\u0027)"},{"line_number":43,"context_line":"    @utils.requires_ext(extension\u003d\u0027tap-mirror-both-direction\u0027, service\u003d\u0027network\u0027)"},{"line_number":44,"context_line":"    def skip_checks(cls):"},{"line_number":45,"context_line":"        super().skip_checks()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab8ecd8e_848ff950","line":42,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    @utils.requires_ext(extension\u003d\u0027tap-mirror\u0027, service\u003d\u0027network\u0027)"},{"line_number":43,"context_line":"    @utils.requires_ext(extension\u003d\u0027tap-mirror-both-direction\u0027, service\u003d\u0027network\u0027)"},{"line_number":44,"context_line":"    def skip_checks(cls):"},{"line_number":45,"context_line":"        super().skip_checks()"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d85265a3_d482b6cf","line":43,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        def _try_decode(raw):"},{"line_number":64,"context_line":"            try:"},{"line_number":65,"context_line":"                offset \u003d 14 * ((raw[12] \u003c\u003c 8 | raw[13]) \u003d\u003d 0x0800"},{"line_number":66,"context_line":"                               and (raw[14] \u003e\u003e 4) \u003d\u003d 4)"},{"line_number":67,"context_line":"                assert (raw[offset] \u003e\u003e 4) \u003d\u003d 4 and raw[offset + 9] \u003d\u003d 47"},{"line_number":68,"context_line":"                offset +\u003d (raw[offset] \u0026 0xf) * 4"},{"line_number":69,"context_line":"                gre_flags \u003d raw[offset] \u003c\u003c 8 | raw[offset + 1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"f16cab03_e676763f","line":66,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: W503 line break before binary operator","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                    proto_num \u003d raw[offset + 9]"},{"line_number":78,"context_line":"                    src \u003d socket.inet_ntoa(raw[offset + 12:offset + 16])"},{"line_number":79,"context_line":"                    dst \u003d socket.inet_ntoa(raw[offset + 16:offset + 20])"},{"line_number":80,"context_line":"                    proto \u003d {1: \u0027ICMP\u0027, 6: \u0027TCP\u0027, 17: \u0027UDP\u0027}.get(proto_num, str(proto_num))"},{"line_number":81,"context_line":"                    icmp_type \u003d raw[offset + (raw[offset] \u0026 0xf) * 4] if proto_num \u003d\u003d 1 else None"},{"line_number":82,"context_line":"                elif ethertype \u003d\u003d 0x86dd:"},{"line_number":83,"context_line":"                    assert (raw[offset] \u003e\u003e 4) \u003d\u003d 6"}],"source_content_type":"text/x-python","patch_set":1,"id":"4792b166_45de2149","line":80,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (91 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    src \u003d socket.inet_ntoa(raw[offset + 12:offset + 16])"},{"line_number":79,"context_line":"                    dst \u003d socket.inet_ntoa(raw[offset + 16:offset + 20])"},{"line_number":80,"context_line":"                    proto \u003d {1: \u0027ICMP\u0027, 6: \u0027TCP\u0027, 17: \u0027UDP\u0027}.get(proto_num, str(proto_num))"},{"line_number":81,"context_line":"                    icmp_type \u003d raw[offset + (raw[offset] \u0026 0xf) * 4] if proto_num \u003d\u003d 1 else None"},{"line_number":82,"context_line":"                elif ethertype \u003d\u003d 0x86dd:"},{"line_number":83,"context_line":"                    assert (raw[offset] \u003e\u003e 4) \u003d\u003d 6"},{"line_number":84,"context_line":"                    proto_num \u003d raw[offset + 6]"}],"source_content_type":"text/x-python","patch_set":1,"id":"8b752a7f_85963f37","line":81,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (97 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                elif ethertype \u003d\u003d 0x86dd:"},{"line_number":83,"context_line":"                    assert (raw[offset] \u003e\u003e 4) \u003d\u003d 6"},{"line_number":84,"context_line":"                    proto_num \u003d raw[offset + 6]"},{"line_number":85,"context_line":"                    src \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 8:offset + 24])"},{"line_number":86,"context_line":"                    dst \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 24:offset + 40])"},{"line_number":87,"context_line":"                    proto \u003d {58: \u0027ICMPv6\u0027, 6: \u0027TCP\u0027, 17: \u0027UDP\u0027}.get(proto_num, str(proto_num))"},{"line_number":88,"context_line":"                    icmp_type \u003d raw[offset + 40] if proto_num \u003d\u003d 58 else None"}],"source_content_type":"text/x-python","patch_set":1,"id":"11150a90_d1104dc4","line":85,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                    assert (raw[offset] \u003e\u003e 4) \u003d\u003d 6"},{"line_number":84,"context_line":"                    proto_num \u003d raw[offset + 6]"},{"line_number":85,"context_line":"                    src \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 8:offset + 24])"},{"line_number":86,"context_line":"                    dst \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 24:offset + 40])"},{"line_number":87,"context_line":"                    proto \u003d {58: \u0027ICMPv6\u0027, 6: \u0027TCP\u0027, 17: \u0027UDP\u0027}.get(proto_num, str(proto_num))"},{"line_number":88,"context_line":"                    icmp_type \u003d raw[offset + 40] if proto_num \u003d\u003d 58 else None"},{"line_number":89,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fb386053_6d5935ec","line":86,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (89 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                    proto_num \u003d raw[offset + 6]"},{"line_number":85,"context_line":"                    src \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 8:offset + 24])"},{"line_number":86,"context_line":"                    dst \u003d socket.inet_ntop(socket.AF_INET6, raw[offset + 24:offset + 40])"},{"line_number":87,"context_line":"                    proto \u003d {58: \u0027ICMPv6\u0027, 6: \u0027TCP\u0027, 17: \u0027UDP\u0027}.get(proto_num, str(proto_num))"},{"line_number":88,"context_line":"                    icmp_type \u003d raw[offset + 40] if proto_num \u003d\u003d 58 else None"},{"line_number":89,"context_line":"                else:"},{"line_number":90,"context_line":"                    return None"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ba424d3_529dcef5","line":87,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (94 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        for line in tcpdump_output.splitlines():"},{"line_number":99,"context_line":"            if re.match(r\u0027\\s+0x[0-9a-f]{4}:\u0027, line):"},{"line_number":100,"context_line":"                hex_part \u003d re.split(r\u0027\\s{2,}\u0027, line.split(\u0027:\u0027, 1)[1].strip())[0]"},{"line_number":101,"context_line":"                current_bytes +\u003d [int(g[i:i+2], 16) for g in hex_part.split()"},{"line_number":102,"context_line":"                                   for i in range(0, len(g)-1, 2)]"},{"line_number":103,"context_line":"            elif current_bytes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"54142926_b0d4c2a8","line":100,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        for line in tcpdump_output.splitlines():"},{"line_number":99,"context_line":"            if re.match(r\u0027\\s+0x[0-9a-f]{4}:\u0027, line):"},{"line_number":100,"context_line":"                hex_part \u003d re.split(r\u0027\\s{2,}\u0027, line.split(\u0027:\u0027, 1)[1].strip())[0]"},{"line_number":101,"context_line":"                current_bytes +\u003d [int(g[i:i+2], 16) for g in hex_part.split()"},{"line_number":102,"context_line":"                                   for i in range(0, len(g)-1, 2)]"},{"line_number":103,"context_line":"            elif current_bytes:"},{"line_number":104,"context_line":"                packets.append(bytes(current_bytes))"}],"source_content_type":"text/x-python","patch_set":1,"id":"82370ae2_ff93dd94","line":101,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E226 missing whitespace around arithmetic operator","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            if re.match(r\u0027\\s+0x[0-9a-f]{4}:\u0027, line):"},{"line_number":100,"context_line":"                hex_part \u003d re.split(r\u0027\\s{2,}\u0027, line.split(\u0027:\u0027, 1)[1].strip())[0]"},{"line_number":101,"context_line":"                current_bytes +\u003d [int(g[i:i+2], 16) for g in hex_part.split()"},{"line_number":102,"context_line":"                                   for i in range(0, len(g)-1, 2)]"},{"line_number":103,"context_line":"            elif current_bytes:"},{"line_number":104,"context_line":"                packets.append(bytes(current_bytes))"},{"line_number":105,"context_line":"                current_bytes \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"e4f2dd16_16297640","line":102,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            if re.match(r\u0027\\s+0x[0-9a-f]{4}:\u0027, line):"},{"line_number":100,"context_line":"                hex_part \u003d re.split(r\u0027\\s{2,}\u0027, line.split(\u0027:\u0027, 1)[1].strip())[0]"},{"line_number":101,"context_line":"                current_bytes +\u003d [int(g[i:i+2], 16) for g in hex_part.split()"},{"line_number":102,"context_line":"                                   for i in range(0, len(g)-1, 2)]"},{"line_number":103,"context_line":"            elif current_bytes:"},{"line_number":104,"context_line":"                packets.append(bytes(current_bytes))"},{"line_number":105,"context_line":"                current_bytes \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"6a74c1d1_033d1a4b","line":102,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E226 missing whitespace around arithmetic operator","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        subnet_v6 \u003d None"},{"line_number":134,"context_line":"        if ipv6:"},{"line_number":135,"context_line":"            # IPv6 SLAAC subnet on the same network so ports get dual-stack IPs."},{"line_number":136,"context_line":"            subnet_v6 \u003d self._create_subnet("},{"line_number":137,"context_line":"                network\u003dself.network,"},{"line_number":138,"context_line":"                ip_version\u003d6,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da55f556_8584a749","line":135,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                network\u003dself.network,"},{"line_number":138,"context_line":"                ip_version\u003d6,"},{"line_number":139,"context_line":"                ipv6_ra_mode\u003d\u0027slaac\u0027,"},{"line_number":140,"context_line":"                ipv6_address_mode\u003d\u0027slaac\u0027)"},{"line_number":141,"context_line":"            self.client.add_router_interface_with_subnet_id("},{"line_number":142,"context_line":"                router_id\u003dself.router[\u0027id\u0027], subnet_id\u003dsubnet_v6[\u0027id\u0027])"},{"line_number":143,"context_line":"            self.addCleanup("}],"source_content_type":"text/x-python","patch_set":1,"id":"0b1824f9_49438092","line":140,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            (vm1_ip, vm0_ip, \u0027ICMP\u0027, 0), decoded,"},{"line_number":261,"context_line":"            \"ICMP echo reply (OUT) not found in decoded ERSPAN packets\")"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        # BOTH direction mirrors all traffic on vm1\u0027s port; since ERSPAN carries"},{"line_number":264,"context_line":"        # no GRE tunnel key, IN/OUT/BOTH frames are indistinguishable in the"},{"line_number":265,"context_line":"        # raw capture.  The IN and OUT assertions above implicitly cover BOTH."},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"4759bd4f_46761785","line":263,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # raw capture.  The IN and OUT assertions above implicitly cover BOTH."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @testtools.skipUnless("},{"line_number":268,"context_line":"        (CONF.neutron_plugin_options.advanced_image_ref or"},{"line_number":269,"context_line":"         CONF.neutron_plugin_options.default_image_is_advanced),"},{"line_number":270,"context_line":"        \"Advanced image is required to run this test.\")"},{"line_number":271,"context_line":"    @decorators.idempotent_id(\u0027b4c5d6e7-f8a9-01bc-def0-234567890abc\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5c5db927_ba6eac19","line":268,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[{"line_number":333,"context_line":"            (vm1_ipv6, vm0_ipv6, \u0027ICMPv6\u0027, 129), decoded,"},{"line_number":334,"context_line":"            \"ICMPv6 echo reply (OUT) not found in decoded ERSPAN packets\")"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        # BOTH direction mirrors all traffic on vm1\u0027s port; since ERSPAN carries"},{"line_number":337,"context_line":"        # no GRE tunnel key, IN/OUT/BOTH frames are indistinguishable in the"},{"line_number":338,"context_line":"        # raw capture.  The IN and OUT assertions above implicitly cover BOTH."}],"source_content_type":"text/x-python","patch_set":1,"id":"6896d222_6a0220c0","line":336,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b5deaa4276cb8053adfc58df3b8f25d0faace056","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"13ff45db_e20fcf36","line":341,"updated":"2026-06-22 18:49:41.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"ac4a71f84fadbeb5a378eef5a7f60fc6dc217eff"}]}
