File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/preppers.tar
Back
keywords.py 0000644 00000002211 15030274066 0006764 0 ustar 00 # Copyright 2023 Red Hat, Inc. Jake Hunsaker <jhunsake@redhat.com> # 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. import os from sos.cleaner.preppers import SoSPrepper class KeywordPrepper(SoSPrepper): """ Prepper to handle keywords passed to cleaner via either the `--keywords` or `--keyword-file` options. """ name = 'keyword' # pylint: disable=unused-argument def _get_items_for_keyword(self, archive): items = [] for kw in self.opts.keywords: items.append(kw) if self.opts.keyword_file and os.path.exists(self.opts.keyword_file): with open(self.opts.keyword_file, 'r', encoding='utf-8') as kwf: items.extend(kwf.read().splitlines()) for item in items: self.regex_items['keyword'].add(item) return items # vim: set et ts=4 sw=4 : hostname.py 0000644 00000004325 15030274066 0006743 0 ustar 00 # Copyright 2023 Red Hat, Inc. Jake Hunsaker <jhunsake@redhat.com> # 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.preppers import SoSPrepper class HostnamePrepper(SoSPrepper): """ Prepper for providing domain and hostname information to the hostname mapping. The items from hostname sources are handled manually via the _get_items method, rather than passing the file directly, as the parser does not know what hostnames or domains to match on initially. This will also populate the regex_items list with local short names. """ name = 'hostname' def _get_items_for_hostname(self, archive): items = [] _file = 'hostname' if archive.is_sos: _file = 'sos_commands/host/hostname' elif archive.is_insights: _file = 'data/insights_commands/hostname_-f' content = archive.get_file_content(_file) if content and content != 'localhost': domains = content.split('.') if len(domains) > 1: items.append(domains[0]) self.regex_items['hostname'].add((domains[0])) if len(domains) > 3: # make sure we get example.com if the system's hostname # is something like foo.bar.example.com top_domain = '.'.join(domains[-2:]) items.append(top_domain.strip()) items.append(content.strip()) _hosts = archive.get_file_content('etc/hosts') for line in _hosts.splitlines(): if line.startswith('#') or 'localhost' in line: continue hostln = line.split()[1:] for host in hostln: if len(host.split('.')) == 1: self.regex_items['hostname'].add(host) else: items.append(host) for domain in self.opts.domains: items.append(domain) return items __pycache__/mac.cpython-310.pyc 0000644 00000001362 15030274066 0012222 0 ustar 00 o -�_ga � @ s d dl mZ G dd� de�ZdS )� )� SoSPrepperc @ s e Zd ZdZdZdd� ZdS )� MacPrepperzS Prepper for sourcing the host's MAC address in order to prep the mapping. �macc C s |j rdgS |jrdgS g S )Nz%sos_commands/networking/ip_-d_addresszdata/insights_commands/ip_addr)�is_sos�is_insights)�self�archive� r �:/usr/lib/python3/dist-packages/sos/cleaner/preppers/mac.py�_get_mac_file_list s zMacPrepper._get_mac_file_listN)�__name__� __module__�__qualname__�__doc__�namer r r r r r s r N)�sos.cleaner.preppersr r r r r r �<module> s __pycache__/__init__.cpython-310.pyc 0000644 00000011713 15030274066 0013222 0 ustar 00 o -�_gW � @ s d dl Z G dd� d�ZdS )� Nc @ sP e Zd ZdZdZdZdd� Zdd� Zdd � Zd d� Z dd � Z dd� Zdd� ZdS )� SoSPreppera� A prepper is a way to prepare loaded mappings with selected items within an sos report prior to beginning the full obfuscation routine. This was previously handled directly within archives, however this is a bit cumbersome and doesn't allow for all the flexibility we could use in this effort. Preppers are separated from parsers but will leverage them in order to feed parser-matched strings from files highlighted by a Prepper() to the appropriate mapping for initial obfuscation. Preppers may specify their own priority in order to influence the order in which mappings are prepped. Further, Preppers have two ways to prepare the maps - either by generating a list of filenames or via directly pulling content out of select files without the assistance of a parser. A lower priority value means the prepper should run sooner than those with higher values. For the former approach, `Prepper._get_$parser_file_list()` should be used and should yield filenames that exist in target archives. For the latter, the `Prepper._get_items_for_$map()` should be used. Finally, a `regex_items` dict is available for storing individual regex items for parsers that rely on them. These items will be added after all files and other individual items are handled. This dict has keys set to parser/mapping names, and the values should be sets of items, so preppers should add to them like so: self.regex_items['hostname'].add('myhostname') � Undefined�d c C sB t � t � t � t � t � t � d�| _|| _t�d�| _t�d�| _d S )N)�hostname�ip�ipv6�keyword�mac�username�sos�sos_ui)�set�regex_items�opts�logging� getLogger�soslog�ui_log)�self�options� r �?/usr/lib/python3/dist-packages/sos/cleaner/preppers/__init__.py�__init__2 s �zSoSPrepper.__init__c C s d| j � d|� �S )Nz [prepper:z] )�name�r �msgr r r �_fmt_log_msg? s zSoSPrepper._fmt_log_msgc C � | j �| �|�� d S �N)r �debugr r r r r � log_debugB � zSoSPrepper.log_debugc C r r )r �infor r r r r �log_infoE r! zSoSPrepper.log_infoc C r r )r �errorr r r r r � log_errorH r! zSoSPrepper.log_errorc C s( d|� d�}t | |�rt| |�|�S g S )a Helper that calls the appropriate Prepper method for the specified parser. This allows Preppers to be able to provide items for multiple types of parsers without needing to handle repetitious logic to determine which parser we're interested within each individual call. The convention to use is to define `_get_$parser_file_list()` methods within Preppers, e.g. `_get_hostname_file_list()` would be used to provide filenames for the hostname parser. If such a method is not defined within a Prepper for a given parser, we handle that here so that individual Preppers do not need to. :param parser: The _name_ of the parser to get a file list for :type parser: ``str`` :param archive: The archive we are operating on currently for the specified parser :type archive: ``SoSObfuscationArchive`` :returns: A list of filenames within the archive to prep with :rtype: ``list`` �_get_� _file_list��hasattr�getattr)r �parser�archive�_checkr r r �get_parser_file_listK s zSoSPrepper.get_parser_file_listc C s&