Compare commits

...

19 Commits

Author SHA1 Message Date
eabdullin 8e4ba32c9a import CS sos-4.7.1-2.el8 2024-05-22 13:48:34 +00:00
eabdullin 2b6c5de85d import UBI sos-4.7.0-1.el8 2024-04-10 01:33:18 +00:00
eabdullin cce1af82c4 import UBI sos-4.6.1-1.el8 2024-02-07 19:23:16 +00:00
eabdullin 157c2d14d2 import UBI sos-4.6.0-5.el8 2023-11-02 20:04:13 +00:00
eabdullin 61cc2ee9bf import UBI sos-4.6.0-2.el8 2023-09-26 14:34:49 +00:00
eabdullin e3bb8bf563 import UBI sos-4.5.6-1.el8 2023-08-30 21:24:25 +00:00
Andrew Lukoshko fb09e4e130 import UBI sos-4.5.5-2.el8 2023-07-26 14:06:12 +00:00
Andrew Lukoshko d3882c8950 import CS sos-4.5.4-1.el8 2023-06-28 15:16:57 +00:00
CentOS Sources 4687c2a676 import sos-4.5.3-1.el8 2023-05-31 18:38:36 +00:00
CentOS Sources 6a8faadccd import sos-4.5.1-3.el8 2023-04-04 08:52:17 +00:00
CentOS Sources 060d481de2 import sos-4.5.0-1.el8 2023-03-16 11:25:06 +00:00
CentOS Sources 7e8c859249 import sos-4.3-5.el8 2022-11-08 09:22:25 +00:00
CentOS Sources d234a20dd2 import sos-4.2-22.el8_6 2022-10-25 09:32:57 +00:00
CentOS Sources ab21b6ae02 import sos-4.2-20.el8_6 2022-08-03 08:24:38 +00:00
CentOS Sources fb57ab1960 import sos-4.2-19.el8_6 2022-05-25 07:44:25 +00:00
CentOS Sources 21676fc4bb import sos-4.2-15.el8 2022-05-10 11:53:04 +00:00
CentOS Sources 749b3ee31b import sos-4.1-9.el8_5 2022-02-01 20:15:15 +00:00
CentOS Sources 76e87b6741 import sos-4.1-5.el8 2021-11-17 10:53:15 +00:00
CentOS Sources 8defa491d2 import sos-4.0-12.el8_4 2021-10-06 14:54:00 +00:00
26 changed files with 396 additions and 2362 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/sos-4.0.tar.gz
SOURCES/sos-4.7.1.tar.gz
SOURCES/sos-audit-0.3.tgz

View File

@ -1,2 +1,2 @@
f4850f7d3a4cd3e52f58bbc408e8d5e17df04741 SOURCES/sos-4.0.tar.gz
9ced981872d308e13c5dc47fee21071592ceefc2 SOURCES/sos-4.7.1.tar.gz
9d478b9f0085da9178af103078bbf2fd77b0175a SOURCES/sos-audit-0.3.tgz

View File

@ -0,0 +1,30 @@
From a0c2586e230c9600d3d3f70ab89c9f6eb52ed3ed Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 23 Apr 2024 11:00:11 +0200
Subject: [PATCH] [archive] Fix get_archive_root after files reordering
Commit d5d8c21 reordered files in the archive, such that the first
member is not the archive root directory further more. Let change the
get_archive_root method accordingly to prevent self.archive_root being
empty.
Resolves: #3616
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
sos/cleaner/archives/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/cleaner/archives/__init__.py b/sos/cleaner/archives/__init__.py
index f7c5eb587..0fa1ef43f 100644
--- a/sos/cleaner/archives/__init__.py
+++ b/sos/cleaner/archives/__init__.py
@@ -104,7 +104,7 @@ def get_archive_root(self):
if toplevel.isdir():
return toplevel.name
else:
- return os.sep
+ return os.path.dirname(toplevel.name) or os.sep
return os.path.abspath(self.archive_path)
def report_msg(self, msg):

View File

@ -1,37 +0,0 @@
From 086c1c5ca52b0ed8b810ad5a293a574ba990e635 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 13 Oct 2020 20:14:35 +0200
Subject: [PATCH] [cleaner] more streamlined sanitize_item method
Remove a duplicate call in both IF branches.
Resolves: #2272
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/cleaner/mappings/ip_map.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sos/cleaner/mappings/ip_map.py b/sos/cleaner/mappings/ip_map.py
index 45fd9739..e6dffd60 100644
--- a/sos/cleaner/mappings/ip_map.py
+++ b/sos/cleaner/mappings/ip_map.py
@@ -121,13 +121,12 @@ class SoSIPMap(SoSMap):
# network and if it has, replace the default /32 netmask that
# ipaddress applies to no CIDR-notated addresses
self.set_ip_cidr_from_existing_subnet(addr)
- return self.sanitize_ipaddr(addr)
else:
# we have a CIDR notation, so generate an obfuscated network
# address and then generate an IP address within that network's
# range
self.sanitize_network(network)
- return self.sanitize_ipaddr(addr)
+ return self.sanitize_ipaddr(addr)
def sanitize_network(self, network):
"""Obfuscate the network address provided, and if there are host bits
--
2.26.2

View File

@ -1,42 +0,0 @@
From bbd28011f8bb710d64283bd6d3ec68c0fb5430b4 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 6 Nov 2020 21:28:37 +0100
Subject: [PATCH] [ovirt] collect /etc/pki/ovirt-engine/.truststore
.truststore contains useful public CAs but a_c_s skips collecting
that hidden file.
Closes: #2296
Resolves: #2297
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/ovirt.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sos/report/plugins/ovirt.py b/sos/report/plugins/ovirt.py
index 4c112cac..127c971c 100644
--- a/sos/report/plugins/ovirt.py
+++ b/sos/report/plugins/ovirt.py
@@ -137,12 +137,15 @@ class Ovirt(Plugin, RedHatPlugin):
"/var/lib/ovirt-engine-reports/jboss_runtime/config"
])
- # Copying host certs.
+ # Copying host certs; extra copy the hidden .truststore file
self.add_forbidden_path([
"/etc/pki/ovirt-engine/keys",
"/etc/pki/ovirt-engine/private"
])
- self.add_copy_spec("/etc/pki/ovirt-engine/")
+ self.add_copy_spec([
+ "/etc/pki/ovirt-engine/",
+ "/etc/pki/ovirt-engine/.truststore",
+ ])
def postproc(self):
"""
--
2.26.2

View File

@ -1,179 +0,0 @@
From 4e46e0c8db3e2ecea7279ae7a781ae2e22a81b69 Mon Sep 17 00:00:00 2001
From: David Vallee Delisle <dvd@redhat.com>
Date: Mon, 31 Aug 2020 18:58:42 -0400
Subject: [PATCH] [openstack_ironic] Missing ironic-inspector configs
We're missing the ironic-inspector configurations, probably because they
were in the RedHatPlugin class, at the bottom of the file and they were
probably missed when updating this plugin. Moving them at the top with
the other `add_copy_spec` will help tracking them in case something
change again.
Revamping also the way we grab logs to check if we're in a container
first.
Resolves: #2223
Signed-off-by: David Vallee Delisle <dvd@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/openstack_ironic.py | 121 +++++++++++++++++--------
1 file changed, 82 insertions(+), 39 deletions(-)
diff --git a/sos/report/plugins/openstack_ironic.py b/sos/report/plugins/openstack_ironic.py
index 314d2a58..57060a27 100644
--- a/sos/report/plugins/openstack_ironic.py
+++ b/sos/report/plugins/openstack_ironic.py
@@ -20,41 +20,95 @@ class OpenStackIronic(Plugin):
profiles = ('openstack', 'openstack_undercloud')
var_puppet_gen = "/var/lib/config-data/puppet-generated/ironic"
+ ins_puppet_gen = var_puppet_gen + "_inspector"
def setup(self):
- self.conf_list = [
- "/etc/ironic/*",
- self.var_puppet_gen + "/etc/ironic/*",
- self.var_puppet_gen + "_api/etc/ironic/*"
- ]
- self.add_copy_spec([
- "/etc/ironic/",
- self.var_puppet_gen + "/etc/xinetd.conf",
- self.var_puppet_gen + "/etc/xinetd.d/",
- self.var_puppet_gen + "/etc/ironic/",
- self.var_puppet_gen + "/etc/httpd/conf/",
- self.var_puppet_gen + "/etc/httpd/conf.d/",
- self.var_puppet_gen + "/etc/httpd/conf.modules.d/*.conf",
- self.var_puppet_gen + "/etc/my.cnf.d/tripleo.cnf",
- self.var_puppet_gen + "_api/etc/ironic/",
- self.var_puppet_gen + "_api/etc/httpd/conf/",
- self.var_puppet_gen + "_api/etc/httpd/conf.d/",
- self.var_puppet_gen + "_api/etc/httpd/conf.modules.d/*.conf",
- self.var_puppet_gen + "_api/etc/my.cnf.d/tripleo.cnf"
- ])
-
- if self.get_option("all_logs"):
+
+ in_container = self.container_exists('.*ironic_api')
+
+ if in_container:
+ self.conf_list = [
+ self.var_puppet_gen + "/etc/ironic/*",
+ self.var_puppet_gen + "/etc/ironic-inspector/*",
+ self.var_puppet_gen + "_api/etc/ironic/*",
+ self.ins_puppet_gen + "/etc/ironic-inspector/*",
+ self.ins_puppet_gen + "/var/lib/httpboot/inspector.ipxe"
+ ]
self.add_copy_spec([
- "/var/log/ironic/",
+ "/var/lib/ironic-inspector/",
+ "/var/log/containers/ironic-inspector/ramdisk/",
+ self.var_puppet_gen + "/etc/xinetd.conf",
+ self.var_puppet_gen + "/etc/xinetd.d/",
+ self.var_puppet_gen + "/etc/ironic/",
+ self.var_puppet_gen + "/etc/ironic-inspector/",
+ self.var_puppet_gen + "/etc/httpd/conf/",
+ self.var_puppet_gen + "/etc/httpd/conf.d/",
+ self.var_puppet_gen + "/etc/httpd/conf.modules.d/*.conf",
+ self.var_puppet_gen + "/etc/my.cnf.d/tripleo.cnf",
+ self.var_puppet_gen + "_api/etc/ironic/",
+ self.var_puppet_gen + "_api/etc/httpd/conf/",
+ self.var_puppet_gen + "_api/etc/httpd/conf.d/",
+ self.var_puppet_gen + "_api/etc/httpd/conf.modules.d/*.conf",
+ self.var_puppet_gen + "_api/etc/my.cnf.d/tripleo.cnf",
+ self.ins_puppet_gen + "/etc/ironic-inspector/*",
+ self.ins_puppet_gen + "/var/lib/httpboot/inspector.ipxe"
])
+
+ if self.get_option("all_logs"):
+ self.add_copy_spec([
+ "/var/log/containers/ironic/",
+ "/var/log/containers/ironic-inspector/"
+ ])
+ else:
+ self.add_copy_spec([
+ "/var/log/containers/ironic/*.log",
+ "/var/log/containers/ironic-inspector/*.log",
+ ])
+
+ for path in ['/var/lib/ironic', '/httpboot', '/tftpboot',
+ self.ins_puppet_gen + '/var/lib/httpboot/',
+ self.ins_puppet_gen + '/var/lib/tftpboot/']:
+ self.add_cmd_output('ls -laRt %s' % path)
+ self.add_cmd_output('ls -laRt %s' %
+ (self.var_puppet_gen + path))
+
+ # Let's get the packages from the containers, always helpful when
+ # troubleshooting.
+ for container_name in ['ironic_inspector_dnsmasq',
+ 'ironic_inspector', 'ironic_pxe_http',
+ 'ironic_pxe_tftp', 'ironic_neutron_agent',
+ 'ironic_conductor', 'ironic_api']:
+ if self.container_exists('.*' + container_name):
+ self.add_cmd_output(self.fmt_container_cmd(container_name,
+ 'rpm -qa'))
+
else:
+ self.conf_list = [
+ "/etc/ironic/*",
+ "/etc/ironic-inspector/*",
+ ]
self.add_copy_spec([
- "/var/log/ironic/*.log",
+ "/etc/ironic/",
+ "/etc/ironic-inspector/",
+ "/var/lib/ironic-inspector/",
+ "/var/log/ironic-inspector/ramdisk/",
+ "/etc/my.cnf.d/tripleo.cnf",
+ "/var/lib/httpboot/inspector.ipxe"
])
- for path in ['/var/lib/ironic', '/httpboot', '/tftpboot']:
- self.add_cmd_output('ls -laRt %s' % path)
- self.add_cmd_output('ls -laRt %s' % (self.var_puppet_gen + path))
+ if self.get_option("all_logs"):
+ self.add_copy_spec([
+ "/var/log/ironic/",
+ "/var/log/ironic-inspector/",
+ ])
+ else:
+ self.add_copy_spec([
+ "/var/log/ironic/*.log",
+ "/var/log/ironic-inspector/*.log",
+ ])
+
+ for path in ['/var/lib/ironic', '/httpboot', '/tftpboot']:
+ self.add_cmd_output('ls -laRt %s' % path)
vars_all = [p in os.environ for p in [
'OS_USERNAME', 'OS_PASSWORD']]
@@ -136,6 +190,7 @@ class RedHatIronic(OpenStackIronic, RedHatPlugin):
def setup(self):
super(RedHatIronic, self).setup()
+ # ironic-discoverd was renamed to ironic-inspector in Liberty
# is the optional ironic-discoverd service installed?
if any([self.is_installed(p) for p in self.discoverd_packages]):
self.conf_list.append('/etc/ironic-discoverd/*')
@@ -146,18 +201,6 @@ class RedHatIronic(OpenStackIronic, RedHatPlugin):
self.add_journal(units="openstack-ironic-discoverd")
self.add_journal(units="openstack-ironic-discoverd-dnsmasq")
- # ironic-discoverd was renamed to ironic-inspector in Liberty
- self.conf_list.append('/etc/ironic-inspector/*')
- self.conf_list.append(self.var_puppet_gen + '/etc/ironic-inspector/*')
- self.add_copy_spec('/etc/ironic-inspector/')
- self.add_copy_spec(self.var_puppet_gen + '/etc/ironic-inspector/')
- self.add_copy_spec('/var/lib/ironic-inspector/')
- if self.get_option("all_logs"):
- self.add_copy_spec('/var/log/ironic-inspector/')
- else:
- self.add_copy_spec('/var/log/ironic-inspector/*.log')
- self.add_copy_spec('/var/log/ironic-inspector/ramdisk/')
-
self.add_journal(units="openstack-ironic-inspector-dnsmasq")
if self.osc_available:
--
2.26.2

View File

@ -1,228 +0,0 @@
From b8da3e3ed94075fa5ccf74a61ce64812b904d0c5 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Tue, 25 Aug 2020 14:16:52 +0530
Subject: [PATCH] [powerpc]Add support to collect hardware component logs
This patch updates powerpc plugin to collect Hardware and
firmware information.
In this patch we are reading Hardware and firmware version
details through lsvpd, lscfg and lsmcode commands
Related: #2213
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Reported-by: Borislav Stoymirski <borislav.stoymirski@bg.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/powerpc.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/powerpc.py b/sos/report/plugins/powerpc.py
index 6cd8dd14..9f38bd7d 100644
--- a/sos/report/plugins/powerpc.py
+++ b/sos/report/plugins/powerpc.py
@@ -50,7 +50,10 @@ class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
"ppc64_cpu --run-mode",
"ppc64_cpu --frequency",
"ppc64_cpu --dscr",
- "diag_encl -v"
+ "diag_encl -v",
+ "lsvpd -D",
+ "lsmcode -A",
+ "lscfg -v"
])
if ispSeries:
--
2.26.2
From 3d25bbfdadf6c5f33dba7522536f744da1940794 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Tue, 25 Aug 2020 14:21:21 +0530
Subject: [PATCH] [iprconfig]Add support to collect RAID adapter logs
This patch updates iprconfig plugin to collect IBM Power
RAID adapter device driver information.
Related: #2213
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Reported-by: Borislav Stoymirski <borislav.stoymirski@bg.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/iprconfig.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/sos/report/plugins/iprconfig.py b/sos/report/plugins/iprconfig.py
index 08503a78..f7511a6c 100644
--- a/sos/report/plugins/iprconfig.py
+++ b/sos/report/plugins/iprconfig.py
@@ -32,6 +32,7 @@ class IprConfig(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
"iprconfig -c show-af-disks",
"iprconfig -c show-all-af-disks",
"iprconfig -c show-slots",
+ "iprconfig -c dump"
])
show_ioas = self.collect_cmd_output("iprconfig -c show-ioas")
--
2.26.2
From effdb3b84ab80fa68d41af1438bfae465c571127 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Tue, 25 Aug 2020 14:30:23 +0530
Subject: [PATCH] [kernel]Add support to collect network debugging logs
This patch is to collect hybrid network debugging messages
Related: #2213
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Reported-by: Luciano Chavez <lnx1138@linux.vnet.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/kernel.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/sos/report/plugins/kernel.py b/sos/report/plugins/kernel.py
index febe2ad0..27e0e4d0 100644
--- a/sos/report/plugins/kernel.py
+++ b/sos/report/plugins/kernel.py
@@ -106,6 +106,7 @@ class Kernel(Plugin, IndependentPlugin):
"/proc/misc",
"/var/log/dmesg",
"/sys/fs/pstore",
+ "/var/log/hcnmgr",
clocksource_path + "available_clocksource",
clocksource_path + "current_clocksource"
])
--
2.26.2
From b3fd83f0cc92b89e7adf8d66c446f3cf5ab1388b Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Mon, 31 Aug 2020 10:56:15 +0530
Subject: [PATCH] [mvcli]Add support to collect mvCLI PCI adapter infomation
This patch is to add new plugin mvcli to collect
SATA drives connected to system backplane adapter information.
infor -o vd ----> If the virtual disk was successfully
created, show a new RAID virtual disk
info -o pd -----> To show all physical disks and IDs:
info -o hba -----> To show all host bus adapters (HBAs):
smart -p 0 -----> To check for errors on a disk:
Related: #2213
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Reported-by: Borislav Stoymirski <borislav.stoymirski@bg.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/mvcli.py | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 sos/report/plugins/mvcli.py
diff --git a/sos/report/plugins/mvcli.py b/sos/report/plugins/mvcli.py
new file mode 100644
index 00000000..ce7bf77b
--- /dev/null
+++ b/sos/report/plugins/mvcli.py
@@ -0,0 +1,35 @@
+# 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.
+
+
+# This sosreport plugin is meant for sas adapters.
+# This plugin logs inforamtion on each adapter it finds.
+
+from sos.report.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class mvCLI(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+
+ short_desc = 'mvCLI Integrated RAID adapter information'
+
+ plugin_name = "mvcli"
+ commands = ("/opt/marvell/bin/mvcli",)
+
+ def setup(self):
+
+ # get list of adapters
+ subcmds = [
+ 'info -o vd',
+ 'info -o pd',
+ 'info -o hba',
+ 'smart -p 0',
+ ]
+
+ self.add_cmd_output(["/opt/marvell/bin/mvcli %s" % s for s in subcmds])
+
+# vim: et ts=4 sw=4
--
2.26.2
From 48ac730fbf4b168604079b18675867c5ed6dc1ae Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Mon, 31 Aug 2020 11:54:52 +0530
Subject: [PATCH] [arcconf]Add support to collect arcconf adapter infomation
This patch is to add new arcconf plugin to collect
SATA drives connected to system backplane adapter information.
arcconf getconfig 1 ----> To list the logical drives and
device configurations
Closes: #2213
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Reported-by: Borislav Stoymirski <borislav.stoymirski@bg.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/arcconf.py | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 sos/report/plugins/arcconf.py
diff --git a/sos/report/plugins/arcconf.py b/sos/report/plugins/arcconf.py
new file mode 100644
index 00000000..64d6bb1e
--- /dev/null
+++ b/sos/report/plugins/arcconf.py
@@ -0,0 +1,28 @@
+# 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.
+
+
+# This sosreport plugin is meant for sas adapters.
+# This plugin logs inforamtion on each adapter it finds.
+
+from sos.report.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class arcconf(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+
+ short_desc = 'arcconf Integrated RAID adapter information'
+
+ plugin_name = "arcconf"
+ commands = ("arcconf",)
+
+ def setup(self):
+
+ # get list of adapters
+ self.add_cmd_output("arcconf getconfig 1")
+
+# vim: et ts=4 sw=4
--
2.26.2

View File

@ -1,70 +0,0 @@
From 019f7c49768f27ef15f39d80db8a03b2aaa453ee Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 21 Sep 2020 17:33:25 +0200
Subject: [PATCH] [crio] collect /etc/crio/crio.conf.d/
Crio configs can be newly in the dir also.
Resolves: #2240
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/crio.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/sos/report/plugins/crio.py b/sos/report/plugins/crio.py
index dacc0745..e8b566c3 100644
--- a/sos/report/plugins/crio.py
+++ b/sos/report/plugins/crio.py
@@ -31,6 +31,7 @@ class CRIO(Plugin, RedHatPlugin, UbuntuPlugin):
"/etc/crictl.yaml",
"/etc/crio/crio.conf",
"/etc/crio/seccomp.json",
+ "/etc/crio/crio.conf.d/",
"/etc/systemd/system/cri-o.service",
"/etc/sysconfig/crio-*"
])
--
2.26.2
From 7f72a36144b3e235159556689b5129b7453294e3 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 15 Dec 2020 14:19:34 +0100
Subject: [PATCH] [component] Use sysroot from Policy when opts doesn't specify
it
Until --sysroot option is specified, Archive (sub)classes should
be called with sysroot determined from Policy.
Resolves: #2346
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/component.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sos/component.py b/sos/component.py
index 69d3b755..7774c05a 100644
--- a/sos/component.py
+++ b/sos/component.py
@@ -246,13 +246,13 @@ class SoSComponent():
auto_archive = self.policy.get_preferred_archive()
self.archive = auto_archive(archive_name, self.tmpdir,
self.policy, self.opts.threads,
- enc_opts, self.opts.sysroot,
+ enc_opts, self.sysroot,
self.manifest)
else:
self.archive = TarFileArchive(archive_name, self.tmpdir,
self.policy, self.opts.threads,
- enc_opts, self.opts.sysroot,
+ enc_opts, self.sysroot,
self.manifest)
self.archive.set_debug(True if self.opts.debug else False)
--
2.26.2

View File

@ -1,211 +0,0 @@
From a3b493a8accc338158faa53b9e221067323b75f5 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Thu, 24 Sep 2020 10:06:17 -0400
Subject: [PATCH] [redhat] Ease upload url determination logic
The logic for determining if an archive should be uploaded to the
Customer Portal was too strict, ease it to now properly only block on a
missing case number since username and passwords may now be provided via
env vars.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/__init__.py | 6 ++++--
sos/policies/redhat.py | 8 ++++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
index 9a1aac07..215739bd 100644
--- a/sos/policies/__init__.py
+++ b/sos/policies/__init__.py
@@ -1427,8 +1427,8 @@ class LinuxPolicy(Policy):
"""Should be overridden by policies to determine if a password needs to
be provided for upload or not
"""
- if ((not self.upload_password and not self._upload_password) and
- self.upload_user):
+ if not self.get_upload_password() and (self.get_upload_user() !=
+ self._upload_user):
msg = (
"Please provide the upload password for %s: "
% self.upload_user
@@ -1472,7 +1473,8 @@ class LinuxPolicy(Policy):
Print a more human-friendly string than vendor URLs
"""
self.upload_archive = archive
- self.upload_url = self.get_upload_url()
+ if not self.upload_url:
+ self.upload_url = self.get_upload_url()
if not self.upload_url:
raise Exception("No upload destination provided by policy or by "
"--upload-url")
diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
index 34b421f3..f2f847a5 100644
--- a/sos/policies/redhat.py
+++ b/sos/policies/redhat.py
@@ -320,12 +320,16 @@ support representative.
"Enter your Red Hat Customer Portal username (empty to use "
"public dropbox): ")
)
+ if not self.upload_user:
+ self.upload_url = RH_FTP_HOST
+ self.upload_user = self._upload_user
def get_upload_url(self):
+ if self.upload_url:
+ return self.upload_url
if self.commons['cmdlineopts'].upload_url:
return self.commons['cmdlineopts'].upload_url
- if (not self.case_id or not self.upload_user or not
- self.upload_password):
+ if not self.case_id:
# Cannot use the RHCP. Use anonymous dropbox
self.upload_user = self._upload_user
self.upload_directory = self._upload_directory
--
2.26.2
From 11cc6f478a9b41ce81b5b74faab5ca42930262ee Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Thu, 24 Sep 2020 10:17:25 -0400
Subject: [PATCH] [policy] Use user-provided FTP directory if specified
Fixes an issue whereby we ignore a user-provided FTP directory.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/__init__.py | 2 +-
sos/policies/redhat.py | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
index 215739bd..32f271d9 100644
--- a/sos/policies/__init__.py
+++ b/sos/policies/__init__.py
@@ -1677,7 +1677,7 @@ class LinuxPolicy(Policy):
password = self.get_upload_password()
if not directory:
- directory = self._upload_directory
+ directory = self.upload_directory or self._upload_directory
try:
session = ftplib.FTP(url, user, password)
diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
index f2f847a5..d079406f 100644
--- a/sos/policies/redhat.py
+++ b/sos/policies/redhat.py
@@ -332,7 +332,8 @@ support representative.
if not self.case_id:
# Cannot use the RHCP. Use anonymous dropbox
self.upload_user = self._upload_user
- self.upload_directory = self._upload_directory
+ if self.upload_directory is None:
+ self.upload_directory = self._upload_directory
self.upload_password = None
return RH_FTP_HOST
else:
--
2.26.2
From caa9a2f2a511689080d019ffab61a4de5787d8be Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Thu, 24 Sep 2020 10:25:00 -0400
Subject: [PATCH] [policy] Handle additional failure conditions for FTP uploads
Adds a timeout and a timeout handler for FTP connections, rather than
letting the connection attempt continue indefinitely.
Second, adds exception handling for an edge case where the connection to
the FTP server fails, but does not generate an exception from the ftplib
module.
Additionally, correct the type-ing of the error numbers being checked so
that we actually match them.
Resolves: #2245
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/__init__.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
index 32f271d9..826d022e 100644
--- a/sos/policies/__init__.py
+++ b/sos/policies/__init__.py
@@ -1680,15 +1680,20 @@ class LinuxPolicy(Policy):
directory = self.upload_directory or self._upload_directory
try:
- session = ftplib.FTP(url, user, password)
+ session = ftplib.FTP(url, user, password, timeout=15)
+ if not session:
+ raise Exception("connection failed, did you set a user and "
+ "password?")
session.cwd(directory)
+ except socket.timeout:
+ raise Exception("timeout hit while connecting to %s" % url)
except socket.gaierror:
raise Exception("unable to connect to %s" % url)
except ftplib.error_perm as err:
errno = str(err).split()[0]
- if errno == 503:
+ if errno == '503':
raise Exception("could not login as '%s'" % user)
- if errno == 550:
+ if errno == '550':
raise Exception("could not set upload directory to %s"
% directory)
--
2.26.2
From 21720a0f8c9cf6739e26470b2280e005f0f3e3f1 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 15 Oct 2020 13:45:37 +0200
Subject: [PATCH] [policy] Use FTP server when user isnt set in batch mode
Caling "sos report --upload --case-id=123 --batch" should fallback
to uploading to FTP server as the upload user is unknown and can't
be prompted in batch mode.
Resolves: #2276
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/redhat.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
index d079406f..3a65b9fa 100644
--- a/sos/policies/redhat.py
+++ b/sos/policies/redhat.py
@@ -324,13 +324,21 @@ support representative.
self.upload_url = RH_FTP_HOST
self.upload_user = self._upload_user
+ def _upload_user_set(self):
+ user = self.get_upload_user()
+ return user and (user != 'anonymous')
+
def get_upload_url(self):
if self.upload_url:
return self.upload_url
if self.commons['cmdlineopts'].upload_url:
return self.commons['cmdlineopts'].upload_url
- if not self.case_id:
- # Cannot use the RHCP. Use anonymous dropbox
+ # anonymous FTP server should be used as fallback when either:
+ # - case id is not set, or
+ # - upload user isn't set AND batch mode prevents to prompt for it
+ if (not self.case_id) or \
+ ((not self._upload_user_set()) and
+ self.commons['cmdlineopts'].batch):
self.upload_user = self._upload_user
if self.upload_directory is None:
self.upload_directory = self._upload_directory
--
2.26.2

View File

@ -1,36 +0,0 @@
From 6a4e3fb718a5c3249425dc4ae167b977abdb7f2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
Date: Thu, 8 Oct 2020 11:51:13 +0200
Subject: [PATCH] [filesys] never collect content of /proc/fs/panfs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
panfs (from Panasas company) provides statistics under /proc/fs/panfs
which makes sosreports become several hundreds of GBs. This path must
hence be blacklisted.
Resolves: #2262
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/filesys.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sos/report/plugins/filesys.py b/sos/report/plugins/filesys.py
index 3baec3ce..57f608d0 100644
--- a/sos/report/plugins/filesys.py
+++ b/sos/report/plugins/filesys.py
@@ -43,6 +43,8 @@ class Filesys(Plugin, DebianPlugin, UbuntuPlugin, CosPlugin):
"lslocks"
])
+ self.add_forbidden_path('/proc/fs/panfs')
+
if self.get_option('lsof'):
self.add_cmd_output("lsof -b +M -n -l -P", root_symlink="lsof")
--
2.26.2

View File

@ -1,49 +0,0 @@
From be347440d5f8d650791ff044970c5e65ee8ec2a3 Mon Sep 17 00:00:00 2001
From: Jose Castillo <jcastillo@redhat.com>
Date: Mon, 12 Oct 2020 13:47:47 +0100
Subject: [PATCH] [kdump] Collect new kdump logfiles
Two new logfiles are available in kdump:
/var/log/kdump.log
/var/crash/*/kexec-kdump.log
The path for the second logfile mentioned above is the
default one, but this patch deals with a change in
default directory the same way that we do with the
file vmcore-dmesg.txt.
Resolves: RHBZ#1817042 and RHBZ#1887390.
Resolves: #2270
Signed-off-by: Jose Castillo <jcastillo@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/kdump.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/kdump.py b/sos/report/plugins/kdump.py
index 41d08b5b..4eccb3ff 100644
--- a/sos/report/plugins/kdump.py
+++ b/sos/report/plugins/kdump.py
@@ -71,7 +71,8 @@ class RedHatKDump(KDump, RedHatPlugin):
self.add_copy_spec([
"/etc/kdump.conf",
"/etc/udev/rules.d/*kexec.rules",
- "/var/crash/*/vmcore-dmesg.txt"
+ "/var/crash/*/vmcore-dmesg.txt",
+ "/var/log/kdump.log"
])
try:
path = self.read_kdump_conffile()
@@ -80,6 +81,7 @@ class RedHatKDump(KDump, RedHatPlugin):
path = "/var/crash"
self.add_copy_spec("{}/*/vmcore-dmesg.txt".format(path))
+ self.add_copy_spec("{}/*/kexec-kdump.log".format(path))
class DebianKDump(KDump, DebianPlugin, UbuntuPlugin):
--
2.26.2

View File

@ -1,40 +0,0 @@
From a0cb4efb473a553fa034aaa8980635897adf1894 Mon Sep 17 00:00:00 2001
From: Jose Castillo <jcastillo@redhat.com>
Date: Tue, 26 Jan 2021 16:20:44 +0100
Subject: [PATCH] [kdump] Gather the file kexec-dmesg.log
Moved the file name from kexec-kdump.log to
the right one, kexec-dmesg.log and
added it to the list of files to gather via
add_copy_spec as per #1546.
Resolves: RHBZ#1817042
Resolves: #2386
Signed-off-by: Jose Castillo <jcastillo@redhat.com>
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
sos/report/plugins/kdump.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/kdump.py b/sos/report/plugins/kdump.py
index 4eccb3ffe..6bcb7f74d 100644
--- a/sos/report/plugins/kdump.py
+++ b/sos/report/plugins/kdump.py
@@ -72,6 +72,7 @@ def setup(self):
"/etc/kdump.conf",
"/etc/udev/rules.d/*kexec.rules",
"/var/crash/*/vmcore-dmesg.txt",
+ "/var/crash/*/kexec-dmesg.log",
"/var/log/kdump.log"
])
try:
@@ -81,7 +82,7 @@ def setup(self):
path = "/var/crash"
self.add_copy_spec("{}/*/vmcore-dmesg.txt".format(path))
- self.add_copy_spec("{}/*/kexec-kdump.log".format(path))
+ self.add_copy_spec("{}/*/kexec-dmesg.log".format(path))
class DebianKDump(KDump, DebianPlugin, UbuntuPlugin):

View File

@ -1,36 +0,0 @@
From 22b19739d94f0a40fb8dfd3236e63991a0c027b9 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Wed, 14 Oct 2020 08:33:28 +0200
Subject: [PATCH] [stratis] Collect key list and report engine
Required for troubleshooting Stratis-engine v. 2.1.0.
Resolves: #2274
Closes: #2273
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/stratis.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/stratis.py b/sos/report/plugins/stratis.py
index b6071d32..a41c9476 100644
--- a/sos/report/plugins/stratis.py
+++ b/sos/report/plugins/stratis.py
@@ -24,8 +24,11 @@ class Stratis(Plugin, RedHatPlugin):
'pool list',
'filesystem list',
'blockdev list',
+ 'key list',
'daemon redundancy',
- 'daemon version'
+ 'daemon version',
+ 'report engine_state_report',
+ '--version',
]
self.add_cmd_output(["stratis %s" % subcmd for subcmd in subcmds])
--
2.26.2

View File

@ -1,34 +0,0 @@
From c07bdbc94269603d2b910ccafa289512478160aa Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Mon, 26 Oct 2020 14:11:56 -0400
Subject: [PATCH] [sos] Fix use of relative paths for --tmp-dir
Fixes an issue where the use of relative paths for `--tmp-dir` causes a
failure in the building of the final archive. Previously, a relative
path would cause the tarball to be produced in a nested directory under
the temp directory of the same name, which would in turn cause
compression and all further operations for the archive to fail.
Fix this by converting relative paths in the option to the absolute path
internally.
Resolves: RHBZ#1891562
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/component.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/component.py b/sos/component.py
index 0aef770c6..b44fdf829 100644
--- a/sos/component.py
+++ b/sos/component.py
@@ -138,7 +138,7 @@ def get_tmpdir_default(self):
use a standardized env var to redirect to the host's filesystem instead
"""
if self.opts.tmp_dir:
- return self.opts.tmp_dir
+ return os.path.abspath(self.opts.tmp_dir)
tmpdir = '/var/tmp'

View File

@ -1,32 +0,0 @@
From 1c6efee74557f433dfc5b67fb8ab76b0d9e6f988 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 8 Dec 2020 20:02:37 +0100
Subject: [PATCH] [collector] allow overriding plain --cluster-type
In few user scenarios, it is useful to force sos collect to override
cluster type, but let it generate list of nodes by itself. For that,
it is sufficient to set the self.cluster_type accordingly.
Resolves: #2331
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/collector/__init__.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/sos/collector/__init__.py b/sos/collector/__init__.py
index 1abb08ae..bd84acaf 100644
--- a/sos/collector/__init__.py
+++ b/sos/collector/__init__.py
@@ -764,6 +764,7 @@ class SoSCollector(SoSComponent):
self.cluster = self.clusters['jbon']
else:
self.cluster = self.clusters[self.opts.cluster_type]
+ self.cluster_type = self.opts.cluster_type
self.cluster.master = self.master
else:
--
2.26.2

View File

@ -1,53 +0,0 @@
From 169898b47b26734a8cdcb748157f7314f7f8821b Mon Sep 17 00:00:00 2001
From: Erik Bernoth <ebernoth@redhat.com>
Date: Tue, 10 Nov 2020 18:32:40 +0100
Subject: [PATCH] [component] Add log verbosity from presets
Closes: #2289
The main problem this tries to solve was that preset verbosity was
ignored in logging.
With a simple test this could be reproduced:
sudo sh -c "source /path/to/repo/sosreport/venv/bin/activate; \
cd /tmp/foo; sos report --preset sostestpreset; cd -"
The bug is that without a change of code there are no messages from the
plugin `host` (no lines of output start wiht "[plugin:host]").
The problem is that the logging is set in the inherited __init__() method
from Component, but the presets are only handled afterwards in the
Report's __init__().
Since it is good to have logging configured from the beginning, the
only option is to reconfigure it after the preset config is known.
The simplest method is to reinitialize the logging, although maybe not
the most efficient.
Signed-off-by: Erik Bernoth <ebernoth@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/__init__.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sos/report/__init__.py b/sos/report/__init__.py
index 2e97010b..c6b0c21c 100644
--- a/sos/report/__init__.py
+++ b/sos/report/__init__.py
@@ -153,6 +153,12 @@ class SoSReport(SoSComponent):
self.opts.merge(self.preset.opts)
# re-apply any cmdline overrides to the preset
self.opts = self.apply_options_from_cmdline(self.opts)
+ if hasattr(self.preset.opts, 'verbosity') and \
+ self.preset.opts.verbosity > 0:
+ print('\nWARNING: It is not recommended to set verbosity via the '
+ 'preset as it might have\nunforseen consequences for your '
+ 'report logs.\n')
+ self._setup_logging()
self._set_directories()
--
2.26.2

View File

@ -1,56 +0,0 @@
From c2ddb50fbbb045daffa6fe5cf489fe47aeef4590 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Wed, 9 Dec 2020 10:21:32 -0500
Subject: [PATCH] [options] Fix --log-size=0 being ignored and unreported
otherwise
The `--log-size` option was being silently ignored, due to a too-loose
conditional in `Component.apply_options_from_cmdline()` which was
inadvertently filtering out the option when a user set it to 0. Note
that this did not affect `sos.conf` settings for this same value.
Similarly, reporting the effective options after preset and cmdline
merging was skipping log-size when it was set to 0, since we normally
want to filter out null-value options (which imply they were not
invoked). Adding an explicit check for `log-size` here is the easiest
route forward to allow the reporting we expect.
Closes: #2334
Resolves: #2335
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/component.py | 2 +-
sos/options.py | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/component.py b/sos/component.py
index 00f27f5e..69d3b755 100644
--- a/sos/component.py
+++ b/sos/component.py
@@ -192,7 +192,7 @@ class SoSComponent():
for opt, val in codict.items():
if opt not in cmdopts.arg_defaults.keys():
continue
- if val and val != opts.arg_defaults[opt]:
+ if val is not None and val != opts.arg_defaults[opt]:
setattr(opts, opt, val)
return opts
diff --git a/sos/options.py b/sos/options.py
index ba3db130..b82a7d36 100644
--- a/sos/options.py
+++ b/sos/options.py
@@ -282,6 +282,9 @@ class SoSOptions():
"""
if name in ("add_preset", "del_preset", "desc", "note"):
return False
+ # Exception list for options that still need to be reported when 0
+ if name in ['log_size', 'plugin_timeout'] and value == 0:
+ return True
return has_value(name, value)
def argify(name, value):
--
2.26.2

View File

@ -1,56 +0,0 @@
From 15e54577289a29e72c636f8987859e91c3a55a7c Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 10 Dec 2020 20:23:03 +0100
Subject: [PATCH] [report] collect broken symlinks
Information about broken symlink destination is useful information
that sos report should collect. Currently it stops doing so as
stat-ing the symlink to determine filesize fails.
Closes: #2333
Resolves: #2338
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/__init__.py | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
index 510e116e..1527caea 100644
--- a/sos/report/plugins/__init__.py
+++ b/sos/report/plugins/__init__.py
@@ -1449,11 +1449,16 @@ class Plugin(object):
continue
try:
- filestat = os.stat(_file)
+ file_size = os.stat(_file)[stat.ST_SIZE]
except OSError:
- self._log_info("failed to stat '%s'" % _file)
- continue
- current_size += filestat[stat.ST_SIZE]
+ # if _file is a broken symlink, we should collect it,
+ # otherwise skip it
+ if os.path.islink(_file):
+ file_size = 0
+ else:
+ self._log_info("failed to stat '%s', skipping" % _file)
+ continue
+ current_size += file_size
if sizelimit and current_size > sizelimit:
limit_reached = True
@@ -1467,8 +1472,7 @@ class Plugin(object):
strfile = (
file_name.replace(os.path.sep, ".") + ".tailed"
)
- add_size = (sizelimit + filestat[stat.ST_SIZE]
- - current_size)
+ add_size = sizelimit + file_size - current_size
self.add_string_as_file(tail(_file, add_size), strfile)
rel_path = os.path.relpath('/', os.path.dirname(_file))
link_path = os.path.join(rel_path, 'sos_strings',
--
2.26.2

View File

@ -1,32 +0,0 @@
From debb61f8137c53bdaf8d4473756c68c5e4d5cca2 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 5 Jan 2021 13:35:34 +0100
Subject: [PATCH] [collector] declare sysroot for each component
Commit 7f72a36 requires self.sysroot to exist for each component,
but it is not set for sos-collector. Let pre-fill self.sysroot
every time.
Resolves: #2358
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/component.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/sos/component.py b/sos/component.py
index bd008761..223c3812 100644
--- a/sos/component.py
+++ b/sos/component.py
@@ -108,6 +108,7 @@ class SoSComponent():
try:
import sos.policies
self.policy = sos.policies.load(sysroot=self.opts.sysroot)
+ self.sysroot = self.policy.host_sysroot()
except KeyboardInterrupt:
self._exit(0)
self._is_root = self.policy.is_root()
--
2.26.2

View File

@ -1,33 +0,0 @@
From cd56e096afc8ef06c215c45cbf025bda60f0169c Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 5 Jan 2021 15:06:24 +0100
Subject: [PATCH] [component] honour plugopts from config file
Currently, config file plugopts are ignored as we overwrite it
in apply_options_from_cmdline by empty list default value from
cmdline.
Resolves: #2359
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/component.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/component.py b/sos/component.py
index 7774c05a..bd008761 100644
--- a/sos/component.py
+++ b/sos/component.py
@@ -192,7 +192,7 @@ class SoSComponent():
for opt, val in codict.items():
if opt not in cmdopts.arg_defaults.keys():
continue
- if val is not None and val != opts.arg_defaults[opt]:
+ if val not in [None, [], ''] and val != opts.arg_defaults[opt]:
setattr(opts, opt, val)
return opts
--
2.26.2

View File

@ -1,33 +0,0 @@
From 03642cf2e5619f11c762b63c61c9c69fb2b00cdf Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 8 Dec 2020 19:33:07 +0100
Subject: [PATCH] [plugins] Dont stop collecting by empty specfile when
sizelimit=0
When sizelimit=0, collecting an empty file would set limit_reached
wrongly and stop collecting further files. Let fix this corner case.
Resolves: #2330
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
index deb46c93..510e116e 100644
--- a/sos/report/plugins/__init__.py
+++ b/sos/report/plugins/__init__.py
@@ -1483,7 +1483,7 @@ class Plugin(object):
self._add_copy_paths([_file])
# in the corner case we just reached the sizelimit, we
# should collect the whole file and stop
- limit_reached = (current_size == sizelimit)
+ limit_reached = (sizelimit and current_size == sizelimit)
if self.manifest:
self.manifest.files.append({
'specification': copyspec,
--
2.26.2

View File

@ -1,35 +0,0 @@
From 486a7918934041306bae8ccc11da2196e8f4c9bb Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Wed, 13 Jan 2021 10:57:58 -0500
Subject: [PATCH] [Policy] Handle additional FTP authentication issues
It was found that some implementations will return a 530 rather than a
503 as the more specific error for incorrect passwords. Handle this
error code explicitly, and then also add a catch-all for any other
ftplib errors that may get raised.
Resolves: #2368
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/__init__.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py
index c5fb4801e..a4f550c96 100644
--- a/sos/policies/__init__.py
+++ b/sos/policies/__init__.py
@@ -477,9 +477,13 @@ def upload_ftp(self, url=None, directory=None, user=None, password=None):
errno = str(err).split()[0]
if errno == '503':
raise Exception("could not login as '%s'" % user)
+ if errno == '530':
+ raise Exception("invalid password for user '%s'" % user)
if errno == '550':
raise Exception("could not set upload directory to %s"
% directory)
+ raise Exception("error trying to establish session: %s"
+ % str(err))
try:
with open(self.upload_archive, 'rb') as _arcfile:

View File

@ -1,60 +0,0 @@
From aca8bd83117e177f2beac6b9434d36d446a7de64 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 18 Jan 2021 22:45:43 +0100
Subject: [PATCH] [networking] Collect 'ethtool -e <device>' conditionally only
EEPROM dump collection might hang on specific types of devices, or
negatively impact the system otherwise. As a safe option, sos report
should collect the command when explicitly asked via a plugopt only.
Resolves: #2376
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/networking.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
index e4236ed9..5bdb697e 100644
--- a/sos/report/plugins/networking.py
+++ b/sos/report/plugins/networking.py
@@ -27,7 +27,8 @@ class Networking(Plugin):
("namespaces", "Number of namespaces to collect, 0 for unlimited. " +
"Incompatible with the namespace_pattern plugin option", "slow", 0),
("ethtool_namespaces", "Define if ethtool commands should be " +
- "collected for namespaces", "slow", True)
+ "collected for namespaces", "slow", True),
+ ("eepromdump", "collect 'ethtool -e' for all devices", "slow", False)
]
# switch to enable netstat "wide" (non-truncated) output mode
@@ -141,16 +142,15 @@ class Networking(Plugin):
"ethtool --show-eee " + eth
], tags=eth)
- # skip EEPROM collection for 'bnx2x' NICs as this command
- # can pause the NIC and is not production safe.
- bnx_output = {
- "cmd": "ethtool -i %s" % eth,
- "output": "bnx2x"
- }
- bnx_pred = SoSPredicate(self,
- cmd_outputs=bnx_output,
- required={'cmd_outputs': 'none'})
- self.add_cmd_output("ethtool -e %s" % eth, pred=bnx_pred)
+ # skip EEPROM collection by default, as it might hang or
+ # negatively impact the system on some device types
+ if self.get_option("eepromdump"):
+ cmd = "ethtool -e %s" % eth
+ self._log_warn("WARNING (about to collect '%s'): collecting "
+ "an eeprom dump is known to cause certain NIC "
+ "drivers (e.g. bnx2x/tg3) to interrupt device "
+ "operation" % cmd)
+ self.add_cmd_output(cmd)
# Collect information about bridges (some data already collected via
# "ip .." commands)
--
2.26.2

View File

@ -1,95 +0,0 @@
From 51e8213fd3a83e717fe7ef35d48d5c541b077c5f Mon Sep 17 00:00:00 2001
From: Jose Castillo <jcastillo@redhat.com>
Date: Mon, 8 Feb 2021 16:25:34 +0100
Subject: [PATCH] [gluster] Add glusterd public keys and status files
This patch helps capture some missing files in the
gluster plugin, i.e.:
Files inside /var/lib/glusterd/glusterfind, like
*.status files, that store the required timestamps,
*.pem.pub files, that store ssh public keys.
We also need to omit the glusterfind_*_secret.pem,
which contains the openssh private key.
Files inside /var/lib/glusterd/.keys, that contains
*.pem.pub, the ssh public key.
Closes: RHBZ#1925035, RHBZ#1925419
Resolves: #2411
Signed-off-by: Jose Castillo <jcastillo@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/gluster.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sos/report/plugins/gluster.py b/sos/report/plugins/gluster.py
index 7b6a9298..e1a89df2 100644
--- a/sos/report/plugins/gluster.py
+++ b/sos/report/plugins/gluster.py
@@ -55,6 +55,9 @@ class Gluster(Plugin, RedHatPlugin):
def setup(self):
self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem")
+ self.add_forbidden_path(
+ "/var/lib/glusterd/glusterfind/glusterfind_*_secret.pem"
+ )
self.add_cmd_output([
"gluster peer status",
@@ -72,7 +75,10 @@ class Gluster(Plugin, RedHatPlugin):
"/etc/glusterfs",
"/var/lib/glusterd/",
# collect nfs-ganesha related configuration
- "/run/gluster/shared_storage/nfs-ganesha/"
+ "/run/gluster/shared_storage/nfs-ganesha/",
+ # collect status files and public ssh keys
+ "/var/lib/glusterd/.keys/",
+ "/var/lib/glusterd/glusterfind/"
] + glob.glob('/run/gluster/*tier-dht/*'))
if not self.get_option("all_logs"):
--
2.26.2
From 4fb834ec862228afb276ccbd45aa86c66044ea66 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 15 Mar 2021 09:09:51 +0100
Subject: [PATCH] [gluster] collect public keys from the right dir
Collection of glusterfind dir is achieved by /var/lib/gluster
so it doesn't be collected explicitly.
/var/lib/glusterd/glusterfind/.keys/ subdir is required to be
explicitly collected, as add_copy_spec uses glob.glob() that skips
hidden files.
Resolves: #2451
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/report/plugins/gluster.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sos/report/plugins/gluster.py b/sos/report/plugins/gluster.py
index e1a89df2..952cab63 100644
--- a/sos/report/plugins/gluster.py
+++ b/sos/report/plugins/gluster.py
@@ -76,9 +76,8 @@ class Gluster(Plugin, RedHatPlugin):
"/var/lib/glusterd/",
# collect nfs-ganesha related configuration
"/run/gluster/shared_storage/nfs-ganesha/",
- # collect status files and public ssh keys
- "/var/lib/glusterd/.keys/",
- "/var/lib/glusterd/glusterfind/"
+ # collect public ssh keys (a_s_c skips implicit hidden files)
+ "/var/lib/glusterd/glusterfind/.keys/",
] + glob.glob('/run/gluster/*tier-dht/*'))
if not self.get_option("all_logs"):
--
2.26.2

View File

@ -1,101 +0,0 @@
From 271c35b9be95cf4957150fd702823fbb46ddaa6b Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Tue, 19 Jan 2021 19:54:26 +0530
Subject: [PATCH 1/2] [powerpc]:Add support to collect HNV infomation
This patch is to update powerpc plugin to collect
Hyper-V Network Virtualization information.
/var/log/hcnmgr -- hybridnetwork debugging messages. Must collect
/var/ct/IBM.DRM.stderr -- DynamicRM log messages
/var/ct/IW/log/mc/IBM.DRM/trace* -- IBM DRM traces
lsdevinfo
ournalctl
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
---
sos/report/plugins/kernel.py | 1 -
sos/report/plugins/powerpc.py | 9 +++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/sos/report/plugins/kernel.py b/sos/report/plugins/kernel.py
index 27e0e4d00..febe2ad0a 100644
--- a/sos/report/plugins/kernel.py
+++ b/sos/report/plugins/kernel.py
@@ -106,7 +106,6 @@ def setup(self):
"/proc/misc",
"/var/log/dmesg",
"/sys/fs/pstore",
- "/var/log/hcnmgr",
clocksource_path + "available_clocksource",
clocksource_path + "current_clocksource"
])
diff --git a/sos/report/plugins/powerpc.py b/sos/report/plugins/powerpc.py
index d29eb0a63..c63551cad 100644
--- a/sos/report/plugins/powerpc.py
+++ b/sos/report/plugins/powerpc.py
@@ -63,7 +63,10 @@ def setup(self):
"/proc/ppc64/systemcfg",
"/var/log/platform",
"/var/log/drmgr",
- "/var/log/drmgr.0"
+ "/var/log/drmgr.0",
+ "/var/log/hcnmgr",
+ "/var/ct/IBM.DRM.stderr",
+ "/var/ct/IW/log/mc/IBM.DRM/trace*"
])
ctsnap_path = self.get_cmd_output_path(name="ctsnap", make=True)
self.add_cmd_output([
@@ -74,8 +77,10 @@ def setup(self):
"serv_config -l",
"bootlist -m both -r",
"lparstat -i",
- "ctsnap -xrunrpttr -d %s" % (ctsnap_path)
+ "ctsnap -xrunrpttr -d %s" % (ctsnap_path),
+ "lsdevinfo"
])
+ self.add_service_status("hcn-init")
if isPowerNV:
self.add_copy_spec([
From 692eba8eeec6254bdb356a6bfdc8cfa1f77bfbbc Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Tue, 19 Jan 2021 19:58:53 +0530
Subject: [PATCH 2/2] [scsi]:Add support to collect SCSI debugging logs
This patch updates scsi plugin to collect
additional logs for SCSI devices
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
---
sos/report/plugins/scsi.py | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/sos/report/plugins/scsi.py b/sos/report/plugins/scsi.py
index 50cfca0f7..28d1396c6 100644
--- a/sos/report/plugins/scsi.py
+++ b/sos/report/plugins/scsi.py
@@ -29,10 +29,18 @@ def setup(self):
])
self.add_cmd_output("lsscsi -i", suggest_filename="lsscsi")
- self.add_cmd_output("sg_map -x")
- self.add_cmd_output("lspath")
- self.add_cmd_output("lsmap -all")
- self.add_cmd_output("lsnports")
+
+ self.add_cmd_output([
+ "sg_map -x",
+ "lspath",
+ "lsmap -all",
+ "lsnports",
+ "lsscsi -H",
+ "lsscsi -g",
+ "lsscsi -d",
+ "lsscsi -s",
+ "lsscsi -L"
+ ])
scsi_hosts = glob("/sys/class/scsi_host/*")
self.add_blockdev_cmd("udevadm info -a %(dev)s", devices=scsi_hosts,

File diff suppressed because it is too large Load Diff