# Copyright 2022 Red Hat, Inc. Jake Hunsaker # This file is part of the sos project: https://github.com/sosreport/sos # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions of # version 2 of the GNU General Public License. # # See the LICENSE file in the source distribution for further information. from sos.cleaner.parsers import SoSCleanerParser from sos.cleaner.mappings.ipv6_map import SoSIPv6Map class SoSIPv6Parser(SoSCleanerParser): """Parser for handling IPv6 networks and addresses""" name = 'IPv6 Parser' map_file_key = 'ipv6_map' regex_patterns = [ # Attention: note that this is a single long regex, not several entries # This is initially based off of two regexes from the Java library # for validating an IPv6 string. However, this is modified to begin and # end with a negative lookbehind to ensure that a substring of 'ed::' # is not extracted from a log message such as 'SomeFuncUsed::ADiffFunc' # that come components may log with. Further, we optionally try to grab # a trailing prefix for the network bits. r"(?