sos updates to RHEL9.0
Resolves: bz2011537 bz2024893 bz2037350 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
This commit is contained in:
parent
bc612715bd
commit
da2634f52d
@ -363,3 +363,57 @@ index 10952566..a4c92acc 100644
|
|||||||
--
|
--
|
||||||
2.31.1
|
2.31.1
|
||||||
|
|
||||||
|
From c6a5bbb8d75aadd5c7f76d3f469929aba2cf8060 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pavel Moravec <pmoravec@redhat.com>
|
||||||
|
Date: Wed, 5 Jan 2022 10:33:58 +0100
|
||||||
|
Subject: [PATCH] [report] Provide better warning about estimate-mode
|
||||||
|
|
||||||
|
As --estimate-only calculates disk usage based on `stat` data that
|
||||||
|
differs from outputs of other commands like `du`, enhance the warning
|
||||||
|
about reliability of the calculated estimation.
|
||||||
|
|
||||||
|
Also add a rule-of-thumb recommendation of real disk space requirements.
|
||||||
|
|
||||||
|
Resolves: #2815
|
||||||
|
|
||||||
|
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||||
|
---
|
||||||
|
man/en/sos-report.1 | 10 +++++++---
|
||||||
|
sos/report/__init__.py | 3 ++-
|
||||||
|
2 files changed, 9 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/man/en/sos-report.1 b/man/en/sos-report.1
|
||||||
|
index 464a77e54..e34773986 100644
|
||||||
|
--- a/man/en/sos-report.1
|
||||||
|
+++ b/man/en/sos-report.1
|
||||||
|
@@ -343,9 +343,13 @@ is available at the end.
|
||||||
|
|
||||||
|
Plugins will be collected sequentially, size of collected files and commands outputs
|
||||||
|
will be calculated and the plugin files will be immediatelly deleted prior execution
|
||||||
|
-of the next plugin. This still can consume whole free disk space, though. Please note,
|
||||||
|
-size estimations may not be accurate for highly utilized systems due to changes between
|
||||||
|
-an estimate and a real execution.
|
||||||
|
+of the next plugin. This still can consume whole free disk space, though.
|
||||||
|
+
|
||||||
|
+Please note, size estimations may not be accurate for highly utilized systems due to
|
||||||
|
+changes between an estimate and a real execution. Also some difference between
|
||||||
|
+estimation (using `stat` command) and other commands used (i.e. `du`).
|
||||||
|
+
|
||||||
|
+A rule of thumb is to reserve at least double the estimation.
|
||||||
|
.TP
|
||||||
|
.B \--upload
|
||||||
|
If specified, attempt to upload the resulting archive to a vendor defined location.
|
||||||
|
diff --git a/sos/report/__init__.py b/sos/report/__init__.py
|
||||||
|
index ef61fb344..e0617b45e 100644
|
||||||
|
--- a/sos/report/__init__.py
|
||||||
|
+++ b/sos/report/__init__.py
|
||||||
|
@@ -1330,7 +1330,8 @@ def final_work(self):
|
||||||
|
self.ui_log.info("Please note the estimation is relevant to the "
|
||||||
|
"current options.")
|
||||||
|
self.ui_log.info("Be aware that the real disk space requirements "
|
||||||
|
- "might be different.")
|
||||||
|
+ "might be different. A rule of thumb is to "
|
||||||
|
+ "reserve at least double the estimation.")
|
||||||
|
self.ui_log.info("")
|
||||||
|
|
||||||
|
# package up and compress the results
|
||||||
|
@ -1595,3 +1595,205 @@ index 5cd8e9857..33b0e6c80 100644
|
|||||||
ob_domain = self._new_obfuscated_domain(dname)
|
ob_domain = self._new_obfuscated_domain(dname)
|
||||||
ob_domain = '.'.join([ob_domain, top_domain])
|
ob_domain = '.'.join([ob_domain, top_domain])
|
||||||
self.dataset['.'.join(domain)] = ob_domain
|
self.dataset['.'.join(domain)] = ob_domain
|
||||||
|
From f5e1298162a9393ea2d9f5c4df40dfece50f5f88 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
Date: Thu, 6 Jan 2022 13:15:15 -0500
|
||||||
|
Subject: [PATCH 1/3] [hostname] Fix loading and detection of long base domains
|
||||||
|
|
||||||
|
Our domain matching has up to now assumed that users would be providing
|
||||||
|
'base' domains such as 'example.com' whereby something like
|
||||||
|
'foo.bar.example.com' is a subdomain (or host) within that base domain.
|
||||||
|
|
||||||
|
However, the use case exists to provide 'foo.bar.example.com' as the
|
||||||
|
base domain, without wanting to obfuscate 'example.com' directly.
|
||||||
|
|
||||||
|
This commit fixes our handling of both loading these longer domains and
|
||||||
|
doing the 'domain is part of a domain we want to obfuscate' check.
|
||||||
|
|
||||||
|
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
---
|
||||||
|
sos/cleaner/mappings/hostname_map.py | 9 ++++++++-
|
||||||
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/sos/cleaner/mappings/hostname_map.py b/sos/cleaner/mappings/hostname_map.py
|
||||||
|
index 33b0e6c8..7a7cf6b8 100644
|
||||||
|
--- a/sos/cleaner/mappings/hostname_map.py
|
||||||
|
+++ b/sos/cleaner/mappings/hostname_map.py
|
||||||
|
@@ -50,10 +50,14 @@ class SoSHostnameMap(SoSMap):
|
||||||
|
in this parser, we need to re-inject entries from the map_file into
|
||||||
|
these dicts and not just the underlying 'dataset' dict
|
||||||
|
"""
|
||||||
|
- for domain in self.dataset:
|
||||||
|
+ for domain, ob_pair in self.dataset.items():
|
||||||
|
if len(domain.split('.')) == 1:
|
||||||
|
self.hosts[domain.split('.')[0]] = self.dataset[domain]
|
||||||
|
else:
|
||||||
|
+ if ob_pair.startswith('obfuscateddomain'):
|
||||||
|
+ # directly exact domain matches
|
||||||
|
+ self._domains[domain] = ob_pair.split('.')[0]
|
||||||
|
+ continue
|
||||||
|
# strip the host name and trailing top-level domain so that
|
||||||
|
# we in inject the domain properly for later string matching
|
||||||
|
|
||||||
|
@@ -102,9 +106,12 @@ class SoSHostnameMap(SoSMap):
|
||||||
|
and should be obfuscated
|
||||||
|
"""
|
||||||
|
host = domain.split('.')
|
||||||
|
+ no_tld = '.'.join(domain.split('.')[0:-1])
|
||||||
|
if len(host) == 1:
|
||||||
|
# don't block on host's shortname
|
||||||
|
return host[0] in self.hosts.keys()
|
||||||
|
+ elif any([no_tld.endswith(_d) for _d in self._domains]):
|
||||||
|
+ return True
|
||||||
|
else:
|
||||||
|
domain = host[0:-1]
|
||||||
|
for known_domain in self._domains:
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
||||||
|
From e241cf33a14ecd4e848a5fd857c5d3d7d07fbd71 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
Date: Thu, 6 Jan 2022 13:18:44 -0500
|
||||||
|
Subject: [PATCH 2/3] [cleaner] Improve parser-specific file skipping
|
||||||
|
|
||||||
|
This commit improves our handling of skipping files on a per-parser
|
||||||
|
basis, by first filtering the list of parsers that `obfuscate_line()`
|
||||||
|
will iterate over by the parser's `skip_file` class attr, rather than
|
||||||
|
relying on higher-level checks.
|
||||||
|
|
||||||
|
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
---
|
||||||
|
sos/cleaner/__init__.py | 17 ++++++++++++++---
|
||||||
|
1 file changed, 14 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sos/cleaner/__init__.py b/sos/cleaner/__init__.py
|
||||||
|
index 3f530d44..5686e213 100644
|
||||||
|
--- a/sos/cleaner/__init__.py
|
||||||
|
+++ b/sos/cleaner/__init__.py
|
||||||
|
@@ -12,6 +12,7 @@ import hashlib
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
+import re
|
||||||
|
import shutil
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
@@ -640,10 +641,16 @@ third party.
|
||||||
|
self.log_debug("Obfuscating %s" % short_name or filename,
|
||||||
|
caller=arc_name)
|
||||||
|
tfile = tempfile.NamedTemporaryFile(mode='w', dir=self.tmpdir)
|
||||||
|
+ _parsers = [
|
||||||
|
+ _p for _p in self.parsers if not
|
||||||
|
+ any([
|
||||||
|
+ re.match(p, short_name) for p in _p.skip_files
|
||||||
|
+ ])
|
||||||
|
+ ]
|
||||||
|
with open(filename, 'r') as fname:
|
||||||
|
for line in fname:
|
||||||
|
try:
|
||||||
|
- line, count = self.obfuscate_line(line)
|
||||||
|
+ line, count = self.obfuscate_line(line, _parsers)
|
||||||
|
subs += count
|
||||||
|
tfile.write(line)
|
||||||
|
except Exception as err:
|
||||||
|
@@ -713,7 +720,7 @@ third party.
|
||||||
|
pass
|
||||||
|
return string_data
|
||||||
|
|
||||||
|
- def obfuscate_line(self, line):
|
||||||
|
+ def obfuscate_line(self, line, parsers=None):
|
||||||
|
"""Run a line through each of the obfuscation parsers, keeping a
|
||||||
|
cumulative total of substitutions done on that particular line.
|
||||||
|
|
||||||
|
@@ -721,6 +728,8 @@ third party.
|
||||||
|
|
||||||
|
:param line str: The raw line as read from the file being
|
||||||
|
processed
|
||||||
|
+ :param parsers: A list of parser objects to obfuscate
|
||||||
|
+ with. If None, use all.
|
||||||
|
|
||||||
|
Returns the fully obfuscated line and the number of substitutions made
|
||||||
|
"""
|
||||||
|
@@ -729,7 +738,9 @@ third party.
|
||||||
|
count = 0
|
||||||
|
if not line.strip():
|
||||||
|
return line, count
|
||||||
|
- for parser in self.parsers:
|
||||||
|
+ if parsers is None:
|
||||||
|
+ parsers = self.parsers
|
||||||
|
+ for parser in parsers:
|
||||||
|
try:
|
||||||
|
line, _count = parser.parse_line(line)
|
||||||
|
count += _count
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
||||||
|
From 96c9a833e77639a853b7d3d6f1df68bbbbe5e9cb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
Date: Thu, 6 Jan 2022 13:20:32 -0500
|
||||||
|
Subject: [PATCH 3/3] [cleaner] Add skips for known files and usernames
|
||||||
|
|
||||||
|
Adds skips for `/proc/kallsyms` which should never be obfuscated, as
|
||||||
|
well as any packaging-related log file for the IP parser. Further, do
|
||||||
|
not obfuscate the `stack` users, as that is a well-known user for many
|
||||||
|
configurations that, if obfuscated, could result in undesired string
|
||||||
|
substitutions in normal logging.
|
||||||
|
|
||||||
|
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||||
|
---
|
||||||
|
sos/cleaner/archives/__init__.py | 2 ++
|
||||||
|
sos/cleaner/parsers/ip_parser.py | 3 ++-
|
||||||
|
sos/cleaner/parsers/username_parser.py | 1 +
|
||||||
|
3 files changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/sos/cleaner/archives/__init__.py b/sos/cleaner/archives/__init__.py
|
||||||
|
index 795c5a78..cbf1f809 100644
|
||||||
|
--- a/sos/cleaner/archives/__init__.py
|
||||||
|
+++ b/sos/cleaner/archives/__init__.py
|
||||||
|
@@ -43,6 +43,7 @@ class SoSObfuscationArchive():
|
||||||
|
type_name = 'undetermined'
|
||||||
|
description = 'undetermined'
|
||||||
|
is_nested = False
|
||||||
|
+ skip_files = []
|
||||||
|
prep_files = {}
|
||||||
|
|
||||||
|
def __init__(self, archive_path, tmpdir):
|
||||||
|
@@ -111,6 +112,7 @@ class SoSObfuscationArchive():
|
||||||
|
Returns: list of files and file regexes
|
||||||
|
"""
|
||||||
|
return [
|
||||||
|
+ 'proc/kallsyms',
|
||||||
|
'sosreport-',
|
||||||
|
'sys/firmware',
|
||||||
|
'sys/fs',
|
||||||
|
diff --git a/sos/cleaner/parsers/ip_parser.py b/sos/cleaner/parsers/ip_parser.py
|
||||||
|
index 71d38be8..b007368c 100644
|
||||||
|
--- a/sos/cleaner/parsers/ip_parser.py
|
||||||
|
+++ b/sos/cleaner/parsers/ip_parser.py
|
||||||
|
@@ -37,7 +37,8 @@ class SoSIPParser(SoSCleanerParser):
|
||||||
|
'sos_commands/snappy/snap_list_--all',
|
||||||
|
'sos_commands/snappy/snap_--version',
|
||||||
|
'sos_commands/vulkan/vulkaninfo',
|
||||||
|
- 'var/log/.*dnf.*'
|
||||||
|
+ 'var/log/.*dnf.*',
|
||||||
|
+ 'var/log/.*packag.*' # get 'packages' and 'packaging' logs
|
||||||
|
]
|
||||||
|
|
||||||
|
map_file_key = 'ip_map'
|
||||||
|
diff --git a/sos/cleaner/parsers/username_parser.py b/sos/cleaner/parsers/username_parser.py
|
||||||
|
index 229c7de4..3208a655 100644
|
||||||
|
--- a/sos/cleaner/parsers/username_parser.py
|
||||||
|
+++ b/sos/cleaner/parsers/username_parser.py
|
||||||
|
@@ -32,6 +32,7 @@ class SoSUsernameParser(SoSCleanerParser):
|
||||||
|
'nobody',
|
||||||
|
'nfsnobody',
|
||||||
|
'shutdown',
|
||||||
|
+ 'stack',
|
||||||
|
'reboot',
|
||||||
|
'root',
|
||||||
|
'ubuntu',
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
5532
sos-bz2037350-ocp-backports.patch
Normal file
5532
sos-bz2037350-ocp-backports.patch
Normal file
File diff suppressed because it is too large
Load Diff
12
sos.spec
12
sos.spec
@ -5,7 +5,7 @@
|
|||||||
Summary: A set of tools to gather troubleshooting information from a system
|
Summary: A set of tools to gather troubleshooting information from a system
|
||||||
Name: sos
|
Name: sos
|
||||||
Version: 4.2
|
Version: 4.2
|
||||||
Release: 8%{?dist}
|
Release: 9%{?dist}
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
|
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
|
||||||
Source1: sos-audit-%{auditversion}.tgz
|
Source1: sos-audit-%{auditversion}.tgz
|
||||||
@ -41,6 +41,7 @@ Patch14: sos-bz2024893-cleaner-hostnames-improvements.patch
|
|||||||
Patch15: sos-bz2025611-RHTS-api-change.patch
|
Patch15: sos-bz2025611-RHTS-api-change.patch
|
||||||
Patch16: sos-bz2034001-nvidia-GPU-info.patch
|
Patch16: sos-bz2034001-nvidia-GPU-info.patch
|
||||||
Patch17: sos-bz2031777-rhui-logs.patch
|
Patch17: sos-bz2031777-rhui-logs.patch
|
||||||
|
Patch18: sos-bz2037350-ocp-backports.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Sos is a set of tools that gathers information about system
|
Sos is a set of tools that gathers information about system
|
||||||
@ -68,6 +69,7 @@ support technicians and developers.
|
|||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
|
%patch18 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%py3_build
|
%py3_build
|
||||||
@ -135,6 +137,14 @@ of the system. Currently storage and filesystem commands are audited.
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 07 2022 Pavel Moravec <pmoravec@redhat.com> = 4.2-9
|
||||||
|
- add oc transport, backport various PRs for OCP
|
||||||
|
Resolves: bz2037350
|
||||||
|
- [report] Provide better warning about estimate-mode
|
||||||
|
Resolves: bz2011537
|
||||||
|
- [hostname] Fix loading and detection of long base domains
|
||||||
|
Resolves: bz2024893
|
||||||
|
|
||||||
* Sun Dec 19 2021 Pavel Moravec <pmoravec@redhat.com> = 4.2-8
|
* Sun Dec 19 2021 Pavel Moravec <pmoravec@redhat.com> = 4.2-8
|
||||||
- [rhui] New log folder
|
- [rhui] New log folder
|
||||||
Resolves: bz2031777
|
Resolves: bz2031777
|
||||||
|
Loading…
Reference in New Issue
Block a user