import sos-4.0-11.el8

This commit is contained in:
CentOS Sources 2021-05-18 02:36:07 -04:00 committed by Andrew Lukoshko
parent 6af2bdc397
commit b27381e187
45 changed files with 1609 additions and 1482 deletions

2
.gitignore vendored
View File

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

View File

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

View File

@ -1,67 +0,0 @@
From ca24d4602ce46312343f1f6c6f4b270fb6092e21 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Wed, 15 Apr 2020 17:09:52 +0200
Subject: [PATCH] [navicli] replace interactive prompt by plugin option
List of ClariiOn IP addresses should be provided via
-k navicli.ipaddrs plugopt, as a space separated list.
Closes: #405
Resolves: #2020
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
---
sos/plugins/navicli.py | 30 +++++-------------------------
1 file changed, 5 insertions(+), 25 deletions(-)
diff --git a/sos/plugins/navicli.py b/sos/plugins/navicli.py
index 8e5dee50..5b6d766d 100644
--- a/sos/plugins/navicli.py
+++ b/sos/plugins/navicli.py
@@ -19,6 +19,8 @@ class Navicli(Plugin, RedHatPlugin):
plugin_name = 'navicli'
profiles = ('storage', 'hardware')
+ option_list = [("ipaddrs", "list of space separated CLARiiON IP addresses",
+ '', "")]
def check_enabled(self):
return is_executable("navicli")
@@ -57,30 +59,8 @@ class Navicli(Plugin, RedHatPlugin):
def setup(self):
self.get_navicli_config()
- CLARiiON_IP_address_list = []
- CLARiiON_IP_loop = "stay_in"
- while CLARiiON_IP_loop == "stay_in":
- try:
- ans = input("CLARiiON SP IP Address or [Enter] to exit: ")
- except Exception:
- return
- if self.exec_cmd("navicli -h %s getsptime" % (ans,))['status']:
- CLARiiON_IP_address_list.append(ans)
- else:
- if ans != "":
- print("The IP address you entered, %s, is not to an "
- "active CLARiiON SP." % ans)
- if ans == "":
- CLARiiON_IP_loop = "get_out"
- # Sort and dedup the list of CLARiiON IP Addresses
- CLARiiON_IP_address_list.sort()
- for SP_address in CLARiiON_IP_address_list:
- if CLARiiON_IP_address_list.count(SP_address) > 1:
- CLARiiON_IP_address_list.remove(SP_address)
- for SP_address in CLARiiON_IP_address_list:
- if SP_address != "":
- print(" Gathering NAVICLI information for %s..." %
- SP_address)
- self.get_navicli_SP_info(SP_address)
+ for ip in set(self.get_option("ipaddrs").split()):
+ if self.exec_cmd("navicli -h %s getsptime" % (ip))['status'] == 0:
+ self.get_navicli_SP_info(ip)
# vim: set et ts=4 sw=4 :
--
2.21.3

View File

@ -1,78 +0,0 @@
From 31e0467885ef3986b476ea070941a786b426f298 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 8 May 2020 14:06:41 +0200
Subject: [PATCH] [networking] collect iptables when proper kernel modules
loaded
Since kernel-4, iptables / ip6tables is newly provided by nf_tables
kernel module. Therefore, collecting ip[,6]tables commands should
be gated by presence of also this kernel module.
Resolves: #2054
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
---
sos/plugins/networking.py | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
index cac6ccca..5230303d 100644
--- a/sos/plugins/networking.py
+++ b/sos/plugins/networking.py
@@ -35,22 +35,24 @@ class Networking(Plugin):
ns_wide = "-W"
def collect_iptable(self, tablename):
- """ When running the iptables command, it unfortunately auto-loads
- the modules before trying to get output. Some people explicitly
- don't want this, so check if the modules are loaded before running
- the command. If they aren't loaded, there can't possibly be any
- relevant rules in that table """
+ """ Collecting iptables rules for a table loads either kernel module
+ of the table name (for kernel <= 3), or nf_tables (for kernel >= 4).
+ If neither module is present, the rules must be empty."""
modname = "iptable_" + tablename
cmd = "iptables -t " + tablename + " -nvL"
- self.add_cmd_output(cmd, pred=SoSPredicate(self, kmods=[modname]))
+ self.add_cmd_output(
+ cmd,
+ pred=SoSPredicate(self, kmods=[modname, 'nf_tables']))
def collect_ip6table(self, tablename):
""" Same as function above, but for ipv6 """
modname = "ip6table_" + tablename
cmd = "ip6tables -t " + tablename + " -nvL"
- self.add_cmd_output(cmd, pred=SoSPredicate(self, kmods=[modname]))
+ self.add_cmd_output(
+ cmd,
+ pred=SoSPredicate(self, kmods=[modname, 'nf_tables']))
def collect_nftables(self):
""" Collects nftables rulesets with 'nft' commands if the modules
@@ -151,16 +153,17 @@ class Networking(Plugin):
self.add_cmd_output(ss_cmd, pred=ss_pred, changes=True)
# When iptables is called it will load the modules
- # iptables and iptables_filter if they are not loaded.
+ # iptables_filter (for kernel <= 3) or
+ # nf_tables (for kernel >= 4) if they are not loaded.
# The same goes for ipv6.
self.add_cmd_output(
"iptables -vnxL",
- pred=SoSPredicate(self, kmods=['iptable_filter'])
+ pred=SoSPredicate(self, kmods=['iptable_filter', 'nf_tables'])
)
self.add_cmd_output(
"ip6tables -vnxL",
- pred=SoSPredicate(self, kmods=['ip6table_filter'])
+ pred=SoSPredicate(self, kmods=['ip6table_filter', 'nf_tables'])
)
# Get ethtool output for every device that does not exist in a
--
2.21.3

View File

@ -1,219 +0,0 @@
From 1875213788f4472cc11ce8e732cd4780e99ca477 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 8 May 2020 15:38:36 +0200
Subject: [PATCH] [containers_common] collect rootless containers info
Add the ability to collect data/info about rootless podman/buildah
containers, in particular:
- containers_common plugopt 'rootlessusers' as a list of users to inspect
- for each user, collect:
- its containers config
- [podman|buildah] info and [UID|GID] map
- collect user-status and few user-related config files
Resolves: #2055
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/containers_common.py | 29 +++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
index 99ae88fe..9a878849 100644
--- a/sos/plugins/containers_common.py
+++ b/sos/plugins/containers_common.py
@@ -9,6 +9,7 @@
# See the LICENSE file in the source distribution for further information.
from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin
+import os
class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
@@ -17,11 +18,39 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
plugin_name = 'containers_common'
profiles = ('container', )
packages = ('containers-common', )
+ option_list = [
+ ('rootlessusers', 'colon-separated list of users\' containers info',
+ '', ''),
+ ]
def setup(self):
self.add_copy_spec([
'/etc/containers/*',
'/usr/share/containers/*',
+ '/etc/subuid',
+ '/etc/subgid',
])
+ self.add_cmd_output(['loginctl user-status'])
+
+ users_opt = self.get_option('rootlessusers')
+ users_list = []
+ if users_opt:
+ users_list = [x for x in users_opt.split(':') if x]
+
+ user_subcmds = [
+ 'info',
+ 'unshare cat /proc/self/uid_map',
+ 'unshare cat /proc/self/gid_map'
+ ]
+ for user in users_list:
+ # collect user's containers' config
+ self.add_copy_spec(
+ '%s/.config/containers/' % (os.path.expanduser('~%s') % user))
+ # collect the user's podman/buildah info and uid/guid maps
+ for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
+ for cmd in user_subcmds:
+ self.add_cmd_output([
+ 'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
+ ])
# vim: set et ts=4 sw=4 :
--
2.21.3
From c2d4c7d1f3ecf6ac59c665cb5138cb2ddda71b3d Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 22 May 2020 08:17:30 +0200
Subject: [PATCH] [containers_common] fix user's home expansion
Apply os.path.expanduser on ~[user], not ~%s .
Relates to: #2082
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/containers_common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
index 9a878849..da360c7e 100644
--- a/sos/plugins/containers_common.py
+++ b/sos/plugins/containers_common.py
@@ -45,7 +45,7 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
for user in users_list:
# collect user's containers' config
self.add_copy_spec(
- '%s/.config/containers/' % (os.path.expanduser('~%s') % user))
+ '%s/.config/containers/' % (os.path.expanduser('~%s' % user)))
# collect the user's podman/buildah info and uid/guid maps
for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
for cmd in user_subcmds:
--
2.21.3
From 569f261801d3a4da2852c0b40be78b701056edaa Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 22 May 2020 08:20:11 +0200
Subject: [PATCH] [containers_common] Call machinectl on foreground
Commands like:
machinectl -q shell user1@ ..
hang if not called on foreground / with terminal.
Resolves: #2082
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/containers_common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
index da360c7e..92c2e9e8 100644
--- a/sos/plugins/containers_common.py
+++ b/sos/plugins/containers_common.py
@@ -51,6 +51,6 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
for cmd in user_subcmds:
self.add_cmd_output([
'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
- ])
+ ], foreground=True)
# vim: set et ts=4 sw=4 :
--
2.21.3
From 2b158a5c2a963c52cf5a96b27cc07c73b5829d59 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 9 Jul 2020 15:38:47 +0200
Subject: [PATCH] [containers_common] collect user-related commands outputs
podman and buildah commands should be collected on per-user basis,
as declared by rootlessusers plugin option.
Resolves: #2145
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/containers_common.py | 36 ++++++++++++++++++-------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
index 92c2e9e8..08962a94 100644
--- a/sos/plugins/containers_common.py
+++ b/sos/plugins/containers_common.py
@@ -30,7 +30,6 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
'/etc/subuid',
'/etc/subgid',
])
- self.add_cmd_output(['loginctl user-status'])
users_opt = self.get_option('rootlessusers')
users_list = []
@@ -38,19 +37,36 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
users_list = [x for x in users_opt.split(':') if x]
user_subcmds = [
- 'info',
- 'unshare cat /proc/self/uid_map',
- 'unshare cat /proc/self/gid_map'
+ 'podman info',
+ 'podman unshare cat /proc/self/uid_map',
+ 'podman unshare cat /proc/self/gid_map',
+ 'podman images',
+ 'podman pod ps',
+ 'podman port --all',
+ 'podman ps',
+ 'podman ps -a',
+ 'podman stats --no-stream --all',
+ 'podman version',
+ 'podman volume ls',
+ 'buildah info',
+ 'buildah unshare cat /proc/self/uid_map',
+ 'buildah unshare cat /proc/self/gid_map',
+ 'buildah containers',
+ 'buildah containers --all',
+ 'buildah images',
+ 'buildah images --all',
+ 'buildah version',
]
for user in users_list:
# collect user's containers' config
self.add_copy_spec(
'%s/.config/containers/' % (os.path.expanduser('~%s' % user)))
- # collect the user's podman/buildah info and uid/guid maps
- for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
- for cmd in user_subcmds:
- self.add_cmd_output([
- 'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
- ], foreground=True)
+ # collect user-status
+ self.add_cmd_output('loginctl user-status %s' % user)
+ # collect the user's related commands
+ self.add_cmd_output([
+ 'machinectl -q shell %s@ /usr/bin/%s' % (user, cmd)
+ for cmd in user_subcmds
+ ], foreground=True)
# vim: set et ts=4 sw=4 :
--
2.26.2

View File

@ -1,68 +0,0 @@
From 83d56e2b443edc733ffc5a5286ce8392de99586e Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 11 May 2020 14:22:18 +0200
Subject: [PATCH] [nvmetcli] Add new plugin for NVMe Target CLI
Resolves: #2056
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/nvmetcli.py | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 sos/plugins/nvmetcli.py
diff --git a/sos/plugins/nvmetcli.py b/sos/plugins/nvmetcli.py
new file mode 100644
index 00000000..b66a3a13
--- /dev/null
+++ b/sos/plugins/nvmetcli.py
@@ -0,0 +1,32 @@
+# Copyright (C) 2020 Red Hat, Inc., Nitin Yewale <nyewale@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.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
+
+
+class NvmetCli(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+
+ short_desc = 'Collect config and system information for nvmetcli'
+
+ packages = ('nvmetcli', )
+ profiles = ('storage', )
+ plugin_name = 'nvmetcli'
+
+ def setup(self):
+ self.add_cmd_output([
+ "nvmetcli ls"
+ ])
+ self.add_journal(units=["nvme", "nvmet", "nvmet_rdma"])
+ self.add_copy_spec([
+ "/sys/kernel/config/nvmet",
+ "/etc/nvmet/config.json",
+ ])
+
+# vim: set et ts=4 sw=4 :
--
diff --git a/sos/plugins/nvmetcli.py b/sos/plugins/nvmetcli.py
--- a/sos/plugins/nvmetcli.py
+++ b/sos/plugins/nvmetcli.py
@@ -12,6 +12,8 @@ from sos.plugins import Plugin, RedHatPl
class NvmetCli(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+ """Collect config and system information for nvmetcli
+ """
short_desc = 'Collect config and system information for nvmetcli'
--
2.21.3

View File

@ -1,78 +0,0 @@
From 0766cc739d424932e18c250c88f0227da06ecaed Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sun, 19 Apr 2020 16:38:50 +0200
Subject: [PATCH] [insights] collect insights-client dump
Collect data of "insights-client --offline" into
sos_commands/insights/insights-client-dump directory.
Resolves: #2030
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/insights.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sos/plugins/insights.py b/sos/plugins/insights.py
index a8fa4e5f..17b99980 100644
--- a/sos/plugins/insights.py
+++ b/sos/plugins/insights.py
@@ -31,6 +31,10 @@ class RedHatInsights(Plugin, RedHatPlugin):
else:
self.add_copy_spec("/var/log/insights-client/insights-client.log")
+ # Collect insights-client report data into given dump dir
+ path = self.get_cmd_output_path(name="insights-client-dump")
+ self.add_cmd_output("insights-client --offline --output-dir %s" % path)
+
def postproc(self):
for conf in self.config:
self.do_file_sub(
--
2.21.3
From f41a12032d1b0caf962145ddd5026b3798931026 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 12 May 2020 09:58:26 +0200
Subject: [PATCH] [insights] collect insights dump output in deterministic
filename
Currently, "insights-client --offline" stdout is stored in filename like
insights-client_--offline_--output-dir_.var.tmp.sos.cbl0ox16. (and so on)
Let make the filename unified and deterministic.
Also add the trailing vim expand tabs comment.
Resolves: #2058
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
---
sos/plugins/insights.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/insights.py b/sos/plugins/insights.py
index 75d521bc..e50bc8fb 100644
--- a/sos/plugins/insights.py
+++ b/sos/plugins/insights.py
@@ -33,7 +33,8 @@ class RedHatInsights(Plugin, RedHatPlugin):
# Collect insights-client report data into given dump dir
path = self.get_cmd_output_path(name="insights-client-dump")
- self.add_cmd_output("insights-client --offline --output-dir %s" % path)
+ self.add_cmd_output("insights-client --offline --output-dir %s" % path,
+ suggest_filename="insights-client-dump.log")
def postproc(self):
for conf in self.config:
@@ -44,3 +45,5 @@ class RedHatInsights(Plugin, RedHatPlugin):
self.do_file_sub(
conf, r'(proxy[\t\ ]*=.*)(:)(.*)(@.*)', r'\1\2********\4'
)
+
+# vim: set et ts=4 sw=4 :
--
2.21.3

View File

@ -1,34 +0,0 @@
From c805cd23b8bd73986f2546a711edd42150d855ba Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Fri, 22 May 2020 12:05:00 +0200
Subject: [PATCH] [rabbitmq] emulate TTY via timeout foreground
"docker exec -t" might hang without a terminal. Let emulate TTY via
timeout --foreground instead.
Resolves: #2083
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/rabbitmq.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sos/plugins/rabbitmq.py b/sos/plugins/rabbitmq.py
index 9ebf6c0b..8d9a16ff 100644
--- a/sos/plugins/rabbitmq.py
+++ b/sos/plugins/rabbitmq.py
@@ -38,8 +38,8 @@ class RabbitMQ(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
for container in container_names:
self.add_cmd_output('docker logs {0}'.format(container))
self.add_cmd_output(
- 'docker exec -t {0} rabbitmqctl report'
- .format(container)
+ 'docker exec {0} rabbitmqctl report'
+ .format(container), foreground=True
)
else:
self.add_cmd_output("rabbitmqctl report")
--
2.21.3

View File

@ -1,107 +0,0 @@
From 943b3c3cd096f8efaeb4f0f2008391abe4c9f7e2 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Sat, 2 May 2020 17:22:35 +0200
Subject: [PATCH] [containers_common] Add plugin for common containers configs
Move collection of whole /etc/containers and /usr/share/containers to
one containers_common plugin enabled by the package of the same name.
Since the package is a common dependency for buildah and podman, no regression
in default data collection happens.
Resolves: #2040
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/buildah.py | 7 -------
sos/plugins/containers_common.py | 27 +++++++++++++++++++++++++
sos/plugins/podman.py | 7 -------
3 files changed, 27 insertions(+), 14 deletions(-)
create mode 100644 sos/plugins/containers_common.py
diff --git a/sos/plugins/buildah.py b/sos/plugins/buildah.py
index 9d237a53..4b8b3b0a 100644
--- a/sos/plugins/buildah.py
+++ b/sos/plugins/buildah.py
@@ -20,13 +20,6 @@ class Buildah(Plugin, RedHatPlugin):
profiles = ('container',)
def setup(self):
- self.add_copy_spec([
- "/etc/containers/registries.conf",
- "/etc/containers/storage.conf",
- "/etc/containers/mounts.conf",
- "/etc/containers/policy.json",
- ])
-
subcmds = [
'containers',
'containers --all',
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
new file mode 100644
index 00000000..99ae88fe
--- /dev/null
+++ b/sos/plugins/containers_common.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2020 Red Hat, Inc., Pavel Moravec <pmoravec@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.plugins import Plugin, RedHatPlugin, UbuntuPlugin
+
+
+class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
+
+ short_desc = 'Common container configs under {/etc,/usr/share}/containers'
+ plugin_name = 'containers_common'
+ profiles = ('container', )
+ packages = ('containers-common', )
+
+ def setup(self):
+ self.add_copy_spec([
+ '/etc/containers/*',
+ '/usr/share/containers/*',
+ ])
+
+# vim: set et ts=4 sw=4 :
diff --git a/sos/plugins/podman.py b/sos/plugins/podman.py
index f6875197..f6632776 100644
--- a/sos/plugins/podman.py
+++ b/sos/plugins/podman.py
@@ -27,13 +27,6 @@ class Podman(Plugin, RedHatPlugin, UbuntuPlugin):
]
def setup(self):
- self.add_copy_spec([
- "/etc/containers/registries.conf",
- "/etc/containers/storage.conf",
- "/etc/containers/mounts.conf",
- "/etc/containers/policy.json",
- ])
-
self.add_env_var([
'HTTP_PROXY',
'HTTPS_PROXY',
--
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
--- a/sos/plugins/containers_common.py
+++ b/sos/plugins/containers_common.py
@@ -13,6 +13,8 @@ import os
class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
+ """Common container configs under {/etc,/usr/share}/containers
+ """
short_desc = 'Common container configs under {/etc,/usr/share}/containers'
plugin_name = 'containers_common'
--
2.21.3

View File

@ -1,33 +0,0 @@
From d9dd8ad790b6799491e4891ae19bb85124ab6794 Mon Sep 17 00:00:00 2001
From: Robert Thomas Manes <robb.manes@gmail.com>
Date: Fri, 17 Apr 2020 10:29:47 -0400
Subject: [PATCH] [redhat] fix RH containers without sysroot Attempting to run
sosreport in a container currently will always traceback unless
ENV_HOST_SYSROOT is set to '/'.
Allow default NoneType sysroot to function as well.
Resolves: #2028
Signed off by: Robb Manes <rmanes@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/policies/redhat.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py
index ba9bacf4..16cb23ec 100644
--- a/sos/policies/redhat.py
+++ b/sos/policies/redhat.py
@@ -144,7 +144,7 @@ class RedHatPolicy(LinuxPolicy):
self._in_container = True
if ENV_HOST_SYSROOT in os.environ:
self._host_sysroot = os.environ[ENV_HOST_SYSROOT]
- use_sysroot = self._in_container and self._host_sysroot != '/'
+ use_sysroot = self._in_container and self._host_sysroot is not None
if use_sysroot:
host_tmp_dir = os.path.abspath(self._host_sysroot + self._tmp_dir)
self._tmp_dir = host_tmp_dir
--
2.21.3

View File

@ -0,0 +1,37 @@
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,69 +0,0 @@
From af5597bfa41521e10f4ef5095f137b2ef5bcd661 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@redhat.com>
Date: Wed, 20 May 2020 15:05:03 +0200
Subject: [PATCH] [xdp] Add XDP plugin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This adds a plugin for gathering information about the loaded XDP programs
on a system, using the xdp-loader tool in the xdp-tools package. This is
complementary with the existing eBPF plugin, because this plugin supports
getting status for multiple XDP programs on each interface as supported by
libxdp.
For now, this just prints the output of 'xdp-loader status' which will list
any XDP programs attached. We don't currently support structured
output (such as JSON) from xdp-tools, but should we add that in the future
we can of course update this plugin.
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/xdp.py | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 sos/plugins/xdp.py
diff --git a/sos/plugins/xdp.py b/sos/plugins/xdp.py
new file mode 100644
index 00000000..2e18048b
--- /dev/null
+++ b/sos/plugins/xdp.py
@@ -0,0 +1,21 @@
+# 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.plugins import Plugin, RedHatPlugin, DebianPlugin, \
+ UbuntuPlugin
+
+
+class Xdp(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+
+ short_desc = 'XDP program information'
+ plugin_name = 'xdp'
+ profiles = ('system', 'kernel', 'network')
+ packages = ('xdp-tools',)
+
+ def setup(self):
+ self.add_cmd_output('xdp-loader status')
--
diff --git a/sos/plugins/xdp.py b/sos/plugins/xdp.py
--- a/sos/plugins/xdp.py
+++ b/sos/plugins/xdp.py
@@ -11,6 +11,8 @@ from sos.plugins import Plugin, RedHatPl
class Xdp(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
+ """XDP program information
+ """
short_desc = 'XDP program information'
plugin_name = 'xdp'
--
2.21.3

View File

@ -1,37 +0,0 @@
From fc831f0072c8f751f8fc2f46eb5c3e6aa9eba0a9 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 8 Jun 2020 14:58:15 +0200
Subject: [PATCH] [gluster] fix gluster volume splitlines iteration
Iterate via "gluster volue info" output split to lines,
and dont truncate the trailing character (a relict from past different
content parsing).
Resolves: #2106
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/gluster.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
index eb236f1e..9540d323 100644
--- a/sos/plugins/gluster.py
+++ b/sos/plugins/gluster.py
@@ -104,10 +104,10 @@ class Gluster(Plugin, RedHatPlugin):
volume_cmd = self.collect_cmd_output("gluster volume info")
if volume_cmd['status'] == 0:
- for line in volume_cmd['output']:
+ for line in volume_cmd['output'].splitlines():
if not line.startswith("Volume Name:"):
continue
- volname = line[12:-1]
+ volname = line[12:]
self.add_cmd_output([
"gluster volume get %s all" % volname,
"gluster volume geo-replication %s status" % volname,
--
2.26.2

View File

@ -1,150 +0,0 @@
From f7292b0121408a77d9e5ee94a046025c256cd021 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Wed, 20 May 2020 14:07:13 +0530
Subject: [PATCH] [memory]:Add support to collect memory logs
This patch updates memory plugin to collect
hugepage memory information
Resolves: #2078
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/memory.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/memory.py b/sos/plugins/memory.py
index aefb27b8..b358e44d 100644
--- a/sos/plugins/memory.py
+++ b/sos/plugins/memory.py
@@ -27,7 +27,8 @@ class Memory(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin, CosPlugin):
"/proc/pagetypeinfo",
"/proc/vmallocinfo",
"/sys/kernel/mm/ksm",
- "/sys/kernel/mm/transparent_hugepage/enabled"
+ "/sys/kernel/mm/transparent_hugepage/enabled",
+ "/sys/kernel/mm/hugepages"
])
self.add_cmd_output("free", root_symlink="free")
self.add_cmd_output([
--
2.26.2
From 2826d4ad19afaa91e2e25970eafe9353d844bfac Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Wed, 20 May 2020 14:05:48 +0530
Subject: [PATCH] [scsi]:Add support to collect scsi logs
This patch updates scsi plugin to collect
virtual I/O server information.
This patch reads lspath, lsmap and lsnports data
which provides information about virtual device
path, ports and mapping Information
Related: #2078
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/scsi.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sos/plugins/scsi.py b/sos/plugins/scsi.py
index bf6c2862..7a8efabb 100644
--- a/sos/plugins/scsi.py
+++ b/sos/plugins/scsi.py
@@ -30,6 +30,9 @@ class Scsi(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
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")
scsi_hosts = glob("/sys/class/scsi_host/*")
self.add_udev_info(scsi_hosts, attrs=True)
--
2.26.2
From 56bfae87ee5e613bb6743026a7285320f19e66d5 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Wed, 20 May 2020 14:03:58 +0530
Subject: [PATCH] [infiniband]:Add support to collect InfiniBand logs
This patch updates Infiniband plugin to collect
InfiniBand switch node information.
Related: #2078
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/infiniband.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/infiniband.py b/sos/plugins/infiniband.py
index 83c32791..670f05b6 100644
--- a/sos/plugins/infiniband.py
+++ b/sos/plugins/infiniband.py
@@ -33,7 +33,8 @@ class Infiniband(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
"ibv_devices",
"ibv_devinfo -v",
"ibstat",
- "ibstatus"
+ "ibstatus",
+ "ibswitches"
])
# run below commands for every IB device and its active port
--
2.26.2
From d8aa0a17d94ec08fc899fce3c343f25d19134eb3 Mon Sep 17 00:00:00 2001
From: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Date: Wed, 20 May 2020 14:01:40 +0530
Subject: [PATCH] [kdump]:Add support to collect kdump & fadump logs
This patch updates kdump plugin to collect kdump and
fadump information.
In this patch we are reading, kdump configuration,panic
and kexec_loaded files which are helpful to debug kdump
failure issues
This patch also reads sys/kernel/fadump_enabled
and /sys/kernel/fadump/enabled both files as there
is upstream work to deprecate these files
Related: #2078
Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/kdump.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/sos/plugins/kdump.py b/sos/plugins/kdump.py
index 5fc25a9b..41d08b5b 100644
--- a/sos/plugins/kdump.py
+++ b/sos/plugins/kdump.py
@@ -21,6 +21,15 @@ class KDump(Plugin):
def setup(self):
self.add_copy_spec([
"/proc/cmdline",
+ "/etc/sysconfig/kdump",
+ "/proc/sys/kernel/panic",
+ "/proc/sys/kernel/panic_on_oops",
+ "/sys/kernel/kexec_loaded",
+ "/sys/kernel/fadump_enabled",
+ "/sys/kernel/fadump/enabled",
+ "/sys/kernel/fadump_registered",
+ "/sys/kernel/fadump/registered",
+ "/sys/kernel/fadump/mem_reserved",
"/sys/kernel/kexec_crash_loaded",
"/sys/kernel/kexec_crash_size"
])
--
2.26.2

View File

@ -1,120 +0,0 @@
From fad72dbacc7e5c3c2721e452823750974ea31550 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Mon, 18 May 2020 11:41:17 +0200
Subject: [PATCH] [nfs] merge nfsserver plugin into nfs one
nfsserver plugin enabledness relies on legacy init scripts. A more
appropriate way to idenfity a NFS server is via nfs-utils package
(though it could be present also on a NFS client).
As that package enables nfs plugin, it is reasonable to merge the
plugins into one.
Closes: #2061
Resolves: #2073
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/nfs.py | 14 +++++++--
sos/plugins/nfsserver.py | 54 ---------------------------------
2 files changed, 12 insertions(+), 56 deletions(-)
delete mode 100644 sos/plugins/nfsserver.py
diff --git a/sos/plugins/nfs.py b/sos/plugins/nfs.py
index bebe0362..1c0d8fc8 100644
--- a/sos/plugins/nfs.py
+++ b/sos/plugins/nfs.py
@@ -14,7 +14,7 @@ class Nfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
"""
plugin_name = 'nfs'
profiles = ('storage', 'network', 'nfs')
- packages = ['nfs-utils']
+ packages = ('nfs-utils', )
def setup(self):
self.add_copy_spec([
@@ -24,8 +24,18 @@ class Nfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
"/proc/fs/nfsfs/servers",
"/proc/fs/nfsfs/volumes",
"/run/sysconfig/nfs-utils",
+ "/etc/exports",
+ "/etc/exports.d",
+ "/var/lib/nfs/etab",
+ "/var/lib/nfs/xtab",
+ "/var/lib/nfs/rmtab",
+ ])
+
+ self.add_cmd_output([
+ "rpcinfo -p localhost",
+ "nfsstat -o all",
+ "exportfs -v",
])
- return
# vim: set et ts=4 sw=4 :
diff --git a/sos/plugins/nfsserver.py b/sos/plugins/nfsserver.py
deleted file mode 100644
index 558ebd5d..00000000
--- a/sos/plugins/nfsserver.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (C) 2007 Red Hat, Inc., Eugene Teo <eteo@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.plugins import Plugin, RedHatPlugin
-import os
-from stat import ST_SIZE
-
-
-class NfsServer(Plugin, RedHatPlugin):
- """NFS server information
- """
-
- plugin_name = 'nfsserver'
- profiles = ('storage', 'network', 'services', 'nfs')
-
- def check_enabled(self):
- default_runlevel = self.policy.default_runlevel()
- nfs_runlevels = self.policy.runlevel_by_service("nfs")
- if default_runlevel in nfs_runlevels:
- return True
-
- try:
- exports = os.stat("/etc/exports")[ST_SIZE]
- xtab = os.stat("/var/lib/nfs/xtab")[ST_SIZE]
- if exports or xtab:
- return True
- except OSError:
- pass
-
- return False
-
- def setup(self):
- self.add_copy_spec([
- "/etc/exports",
- "/etc/exports.d",
- "/var/lib/nfs/etab",
- "/var/lib/nfs/xtab",
- "/var/lib/nfs/rmtab"
- ])
-
- self.add_cmd_output([
- "rpcinfo -p localhost",
- "nfsstat -o all",
- "exportfs -v"
- ])
-
-
-# vim: set et ts=4 sw=4 :
--
2.26.2

View File

@ -1,46 +0,0 @@
From b34edec39189d5501b9943f73ec2afa7c7b98d58 Mon Sep 17 00:00:00 2001
From: Reid wahl <nrwahl@protonmail.com>
Date: Mon, 8 Jun 2020 22:50:00 -0700
Subject: [PATCH] [pacemaker] Fix scrubbing when password contains an equal
sign
If the password contains one or more equal signs ('='), only the substring
after the final equal sign is scrubbed. The rest of the password appears in
plain text.
This patch modifies the scrub regex to scrub all characters after the first
equal sign.
Related to RHBZ#1845386.
Resolves: #2109
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/pacemaker.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sos/plugins/pacemaker.py b/sos/plugins/pacemaker.py
index 7294c35a..8beec811 100644
--- a/sos/plugins/pacemaker.py
+++ b/sos/plugins/pacemaker.py
@@ -55,14 +55,14 @@ class Pacemaker(Plugin):
def postproc_crm_shell(self):
self.do_cmd_output_sub(
"crm configure show",
- r"passw(\S*)=\S+",
+ r"passw([^\s=]*)=\S+",
r"passw\1=********"
)
def postproc_pcs(self):
self.do_cmd_output_sub(
"pcs config",
- r"passw(\S*)=\S+",
+ r"passw([^\s=]*)=\S+",
r"passw\1=********"
)
--
2.26.2

View File

@ -0,0 +1,42 @@
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,29 +0,0 @@
From b85039b9ed658a4a59c637552a67ca9f2cf843b1 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Wed, 24 Jun 2020 10:06:31 -0400
Subject: [PATCH] [block] Fix typo in LUKS detection
Fixes a typo in detecting LUKS partitions for cryptsetup output
collection.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/block.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sos/plugins/block.py b/sos/plugins/block.py
index 2af25e7a..69548af6 100644
--- a/sos/plugins/block.py
+++ b/sos/plugins/block.py
@@ -52,7 +52,7 @@ class Block(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin):
# for LUKS devices, collect cryptsetup luksDump
if lsblk['status'] == 0:
for line in lsblk['output'].splitlines():
- if 'crypto LUKS' in line:
+ if 'crypto_LUKS' in line:
dev = line.split()[0]
self.add_cmd_output('cryptsetup luksDump /dev/%s' % dev)
--
2.26.2

View File

@ -1,54 +0,0 @@
From 8c2b07adeebed573306bc52a26b37b6def75a925 Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Tue, 7 Jul 2020 18:57:15 +0200
Subject: [PATCH] [logs] collect also non-persistent journal logs
Collect journalctl logs also when journal is configured to store logs
in memory only.
Further, apply --since option to journal catalog logs.
Further, when --all-logs is provided, collect the transient logs in
/var/log/journal dir as well.
Resolves: #2130
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
---
sos/plugins/logs.py | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/sos/plugins/logs.py b/sos/plugins/logs.py
index c92cc1f0..e3b6b884 100644
--- a/sos/plugins/logs.py
+++ b/sos/plugins/logs.py
@@ -59,13 +59,21 @@ class Logs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin, CosPlugin):
self.add_cmd_output("journalctl --disk-usage")
self.add_cmd_output('ls -alRh /var/log/')
- journal = os.path.exists("/var/log/journal/")
- if journal and self.is_installed("systemd"):
+ # collect journal logs if:
+ # - there is some data present, either persistent or runtime only
+ # - systemd-journald service exists
+ # otherwise fallback to collecting few well known logfiles directly
+ journal = any([os.path.exists(p + "/log/journal/")
+ for p in ["/var", "/run"]])
+ if journal and self.is_service("systemd-journald"):
self.add_journal(since=since)
- self.add_journal(boot="this", catalog=True)
- self.add_journal(boot="last", catalog=True)
+ self.add_journal(boot="this", catalog=True, since=since)
+ self.add_journal(boot="last", catalog=True, since=since)
if self.get_option("all_logs"):
- self.add_copy_spec("/var/log/journal/*")
+ self.add_copy_spec([
+ "/var/log/journal/*",
+ "/run/log/journal/*"
+ ])
else: # If not using journal
if not self.get_option("all_logs"):
self.add_copy_spec([
--
2.26.2

View File

@ -1,36 +0,0 @@
From 1368498e8d5c5e2d9cd93c335252efe8e08316a4 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Thu, 30 Apr 2020 14:05:21 -0400
Subject: [PATCH] [Plugin] Fix enablement triggers when only restriction is
architecture
When a plugin, such as the `powerpc` plugin, only defines an
architecture enablement trigger and no files, commands, packages, etc...
our current enablement checks would return false. When the 'normal'
trigger restrictions are all empty, but there is an architecture
trigger, now properly enable based solely on that architecture.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/__init__.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
index 011113b0..c632d5e4 100644
--- a/sos/plugins/__init__.py
+++ b/sos/plugins/__init__.py
@@ -1775,6 +1775,11 @@ class Plugin(object):
return True
def _check_plugin_triggers(self, files, packages, commands, services):
+
+ if not any([files, packages, commands, services]):
+ # no checks beyond architecture restrictions
+ return self.check_is_architecture()
+
return ((any(os.path.exists(fname) for fname in files) or
any(self.is_installed(pkg) for pkg in packages) or
any(is_executable(cmd) for cmd in commands) or
--
2.26.2

View File

@ -1,54 +0,0 @@
From c5a3dd0fb1e256772d83f19bc458e79b2cf5baf7 Mon Sep 17 00:00:00 2001
From: Jake Hunsaker <jhunsake@redhat.com>
Date: Fri, 3 Jul 2020 12:24:10 -0400
Subject: [PATCH] [pci] Update gating for lspci commands
It was reported that certain arches may create subdir structures under
/proc/bus/pci differently than others - most notably that the first
device subdir could be '0000:00' instead of just '00'.
Rather than chase these different layouts, update the gating check for
running `lspci` commands to being that /proc/bus/pci exists and it has
more than just the `devices` file present, as this file may be present
but empty when nothing else exists under `/proc/bus/pci`.
This is the legacy-3.9 backport from #2138
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/pci.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/pci.py b/sos/plugins/pci.py
index ac90f09d..053307cd 100644
--- a/sos/plugins/pci.py
+++ b/sos/plugins/pci.py
@@ -17,6 +17,16 @@ class Pci(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
plugin_name = "pci"
profiles = ('hardware', 'system')
+ def check_for_bus_devices(self):
+ if not os.path.isdir('/proc/bus/pci'):
+ return False
+ # ensure that more than just the 'devices' file, which can be empty,
+ # exists in the pci directory. This implies actual devices are present
+ content = os.listdir('/proc/bus/pci')
+ if 'devices' in content:
+ content.remove('devices')
+ return len(content) > 0
+
def setup(self):
self.add_copy_spec([
"/proc/ioports",
@@ -24,7 +34,7 @@ class Pci(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
"/proc/bus/pci"
])
- if os.path.isdir("/proc/bus/pci/00"):
+ if self.check_for_bus_devices():
self.add_cmd_output("lspci -nnvv", root_symlink="lspci")
self.add_cmd_output("lspci -tv")
--
2.26.2

View File

@ -1,82 +0,0 @@
From 2b46bf710ff266a5727f5c101872c778d470dcb4 Mon Sep 17 00:00:00 2001
From: Jan Jansky <jjansky@redhat.com>
Date: Wed, 15 Jul 2020 13:38:52 +0200
Subject: [PATCH] [gluster] remove only dump files
Removes only dump files and leaving
other files as .socket or sock.
Resolves: #2152
Signed-off-by: Jan Jansky <jjansky@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/gluster.py | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
index 9540d323..9815bbe7 100644
--- a/sos/plugins/gluster.py
+++ b/sos/plugins/gluster.py
@@ -40,15 +40,14 @@ class Gluster(Plugin, RedHatPlugin):
ret = string.count(last_line, 'DUMP_END_TIME')
def postproc(self):
- if not os.path.exists(self.statedump_dir):
- return
- try:
- for dirs in os.listdir(self.statedump_dir):
- os.remove(os.path.join(self.statedump_dir, dirs))
- os.rmdir(self.statedump_dir)
- os.unlink('/tmp/glusterdump.options')
- except OSError:
- pass
+ if self.get_option("dump"):
+ if not os.path.exists(self.statedump_dir):
+ return
+ try:
+ for name in glob.glob(self.statedump_dir + '/*.dump.[0-9]*'):
+ os.remove(name)
+ except OSError:
+ pass
def setup(self):
self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem")
--
2.26.2
From 7994ea1cc22ae256f08426ef37931b7b58f0fefc Mon Sep 17 00:00:00 2001
From: Jan Jansky <jjansky@redhat.com>
Date: Thu, 16 Jul 2020 14:34:49 +0200
Subject: [PATCH] [gluster] remove generated state files
Remove also generated state files in
/run/gluster.
Resolves: #2154
Signed-off-by: Jan Jansky <jjansky@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/gluster.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py
index 9815bbe7..7b6a9298 100644
--- a/sos/plugins/gluster.py
+++ b/sos/plugins/gluster.py
@@ -45,7 +45,10 @@ class Gluster(Plugin, RedHatPlugin):
if not os.path.exists(self.statedump_dir):
return
try:
- for name in glob.glob(self.statedump_dir + '/*.dump.[0-9]*'):
+ remove_files = glob.glob(self.statedump_dir + '/*.dump.[0-9]*')
+ remove_files.extend(glob.glob(self.statedump_dir +
+ '/glusterd_state_[0-9]*_[0-9]*'))
+ for name in remove_files:
os.remove(name)
except OSError:
pass
--
2.26.2

View File

@ -1,37 +0,0 @@
From 482029d991e1aa075aafb122cbeee911afad341c Mon Sep 17 00:00:00 2001
From: Pavel Moravec <pmoravec@redhat.com>
Date: Thu, 23 Jul 2020 15:35:31 +0200
Subject: [PATCH] [kubernetes] ignore blank+empty lines in "kubectl get nodes"
output
In a theoretical case when the command output contains empty or blank
line, we must skip them before finding the first word there.
Resolves: #2162
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/kubernetes.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/kubernetes.py b/sos/plugins/kubernetes.py
index 03f2c498..5f21fa3d 100644
--- a/sos/plugins/kubernetes.py
+++ b/sos/plugins/kubernetes.py
@@ -105,7 +105,11 @@ class Kubernetes(Plugin):
nodes = self.collect_cmd_output("%s get nodes" % self.kube_cmd)
if nodes['status'] == 0:
for line in nodes['output'].splitlines()[1:]:
- node = line.split()[0]
+ # find first word in the line and ignore empty+blank lines
+ words = line.split()
+ if not words:
+ continue
+ node = words[0]
self.add_cmd_output(
"%s describe node %s" % (self.kube_cmd, node),
subdir='nodes'
--
2.26.2

View File

@ -1,47 +0,0 @@
From 34c77d6902ee1df403dc3836b4092d413fb95350 Mon Sep 17 00:00:00 2001
From: suresh2514 <suresh2514@gmail.com>
Date: Fri, 14 Aug 2020 22:59:34 +0530
Subject: [PATCH] [networking] remove 'ethtool -e' option for bnx2x NICs
Running EEPROM dump (ethtool -e) can result in bnx2x driver NICs to
pause for few seconds and is not recommended in production environment.
Resolves: #2188
Resolves: #2200
Signed-off-by: suresh2514 <suresh2514@gmail.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/networking.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
index ba9c0fb11..397549a56 100644
--- a/sos/plugins/networking.py
+++ b/sos/plugins/networking.py
@@ -182,7 +182,6 @@ def setup(self):
"ethtool -a " + eth,
"ethtool -c " + eth,
"ethtool -g " + eth,
- "ethtool -e " + eth,
"ethtool -P " + eth,
"ethtool -l " + eth,
"ethtool --phy-statistics " + eth,
@@ -189,6 +189,17 @@ class Networking(Plugin):
"ethtool --show-eee " + 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)
+
# Collect information about bridges (some data already collected via
# "ip .." commands)
self.add_cmd_output([

View File

@ -0,0 +1,179 @@
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

@ -0,0 +1,228 @@
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

@ -0,0 +1,70 @@
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

@ -0,0 +1,211 @@
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

@ -0,0 +1,36 @@
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

@ -0,0 +1,49 @@
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

@ -0,0 +1,40 @@
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

@ -0,0 +1,36 @@
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

@ -0,0 +1,34 @@
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

@ -0,0 +1,32 @@
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

@ -0,0 +1,53 @@
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

@ -0,0 +1,56 @@
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

@ -0,0 +1,56 @@
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

@ -0,0 +1,32 @@
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

@ -0,0 +1,33 @@
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

@ -0,0 +1,33 @@
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

@ -0,0 +1,35 @@
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

@ -12,13 +12,13 @@ Resolves: #2376
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
---
sos/plugins/networking.py | 22 +++++++++++-----------
sos/report/plugins/networking.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
index e4236ed9..5bdb697e 100644
--- a/sos/plugins/networking.py
+++ b/sos/plugins/networking.py
--- 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),
@ -31,7 +31,7 @@ index e4236ed9..5bdb697e 100644
# 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.

View File

@ -0,0 +1,95 @@
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

@ -0,0 +1,101 @@
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,

View File

@ -4,8 +4,8 @@
Summary: A set of tools to gather troubleshooting information from a system
Name: sos
Version: 3.9.1
Release: 7%{?dist}
Version: 4.0
Release: 11%{?dist}
Group: Applications/System
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
Source1: sos-audit-%{auditversion}.tgz
@ -13,34 +13,36 @@ License: GPLv2+
BuildArch: noarch
Url: http://github.com/sosreport/sos
BuildRequires: python3-devel
BuildRequires: python3-six
BuildRequires: gettext
Requires: libxml2-python3
Requires: bzip2
Requires: xz
Requires: python3-six
Conflicts: vdsm < 4.40
Patch1: sos-bz1825283-env-host-in-container.patch
Patch2: sos-bz1823488-containers-common.patch
Patch3: sos-bz1819662-rabbitmqctl-on-foreground.patch
Patch4: sos-bz1814867-insights-archive.patch
Patch5: sos-bz1785546-nvmetcli.patch
Patch6: sos-bz1776549-podman-buildah-rootless.patch
Patch7: sos-bz1633006-iptables-kmods.patch
Patch8: sos-bz1457191-navicli-noniteractively.patch
Patch9: sos-bz1838123-xdp-plugin.patch
Patch10: sos-bz1843562-gluster-volume-specific.patch
Patch11: sos-bz1844853-nfs-etc-exports.patch
Patch12: sos-bz1845386-pacemaker-passwords-with-equal-sign.patch
Patch13: sos-bz1843754-powerpc-logs-for-components.patch
Patch14: sos-bz1850926-logs-no-journal.patch
Patch15: sos-bz1850554-luks-not-detected.patch
Patch16: sos-bz1851923-powerpc-missing-logs.patch
Patch17: sos-bz1853700-pci-too-strong-condition.patch
Patch18: sos-bz1857590-gluster-removes-sockfiles.patch
Patch19: sos-bz1859888-kubernetes-indexerror-on-nodes.patch
Patch20: sos-bz1869724-ethtool-not-on-bnx2x.patch
Patch21: sos-bz1928627-networking-ethtool-e-conditionally.patch
Obsoletes: sos-collector
Recommends: python3-pexpect
Patch1: sos-bz1827801-streamlined-sanitize_item.patch
Patch2: sos-bz1874295-osp-ironic-inspector-configs.patch
Patch3: sos-bz1880372-power-logs.patch
Patch4: sos-bz1881118-crio-conf-d.patch
Patch5: sos-bz1882368-upload-functionality-issues.patch
Patch6: sos-bz1886782-exclude-panfs.patch
Patch7: sos-bz1887390-kdump-logfiles.patch
Patch8: sos-bz1888012-stratis-new-feature-output.patch
Patch9: sos-bz1891562-tmp-dir-relative-path.patch
Patch10: sos-bz1848095-collect-rhev-pki.patch
Patch11: sos-bz1895316-collector--cluster-type.patch
Patch12: sos-bz1904045-preset-ignores-verbosity.patch
Patch13: sos-bz1905657-empty-file-stops-zero-sizelimit.patch
Patch14: sos-bz1906598-collect-broken-symlinks.patch
Patch15: sos-bz1912889-plugopts-ignored-in-configfile.patch
Patch16: sos-bz1912821-sos-collector-declare-sysroot.patch
Patch17: sos-bz1912910-empty-file-stops-collecting.patch
Patch18: sos-bz1917196-networking-ethtool-e-conditionally.patch
Patch19: sos-bz1887402-kexec-logs.patch
Patch20: sos-bz1916729-ftp-upload-no-passwd.patch
Patch21: sos-bz1925419-gluster-pubkeys-statusfile.patch
Patch22: sos-bz1928650-powerpc-nhv-scsi-logs.patch
%description
Sos is a set of tools that gathers information about system
@ -50,6 +52,7 @@ support technicians and developers.
%prep
%setup -qn %{name}-%{version}
%setup -T -D -a1 -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
@ -71,7 +74,7 @@ support technicians and developers.
%patch19 -p1
%patch20 -p1
%patch21 -p1
%setup -T -D -a1 -q
%patch22 -p1
%build
%py3_build
@ -79,7 +82,7 @@ support technicians and developers.
%install
%py3_install '--install-scripts=%{_sbindir}'
install -Dm644 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf
install -Dm644 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
%find_lang %{name} || echo 0
@ -87,14 +90,25 @@ cd %{name}-audit-%{auditversion}
DESTDIR=%{buildroot} ./install.sh
cd ..
mkdir -p %{buildroot}%{_sysconfdir}/sos/cleaner
%files -f %{name}.lang
%{_sbindir}/sosreport
%{_sbindir}/sos
%{_sbindir}/sos-collector
%{python3_sitelib}/*
%{_mandir}/man1/sosreport.1.gz
%{_mandir}/man1/sos-clean.1.gz
%{_mandir}/man1/sos-collect.1.gz
%{_mandir}/man1/sos-collector.1.gz
%{_mandir}/man1/sos-mask.1.gz
%{_mandir}/man1/sos-report.1.gz
%{_mandir}/man1/sos.1.gz
%{_mandir}/man5/sos.conf.5.gz
%doc AUTHORS README.md
%license LICENSE
%config(noreplace) %{_sysconfdir}/sos.conf
%config(noreplace) %{_sysconfdir}/sos/sos.conf
%config(noreplace) %{_sysconfdir}/sos/cleaner
%package audit
Summary: Audit use of some commands for support purposes
@ -123,9 +137,79 @@ of the system. Currently storage and filesystem commands are audited.
%ghost /etc/audit/rules.d/40-sos-storage.rules
%changelog
* Mon Feb 15 2021 Pavel Moravec <pmoravec@redhat.com> = 3.9.1-7
* Wed Mar 17 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-11
- [gluster] collect public keys from the right dir
Resolves: bz1925419
* Thu Mar 11 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-10
- [powerpc] Collect logs for power specific components (HNV and SCSI)
Resolves: bz1928650
* Fri Mar 05 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-9
- [gluster] Add glusterd public keys and status files
Resolves: bz1925419
* Tue Feb 16 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-8
- Automatically create directory for sos-cleaner default_mapping
Resolves: bz1923937
* Fri Jan 29 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-7
- [kdump] Gather the file kexec-dmesg.log
Resolves: bz1887402
- [Policy] Handle additional FTP authentication issues
Resolves: bz1916729
* Thu Jan 21 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-6
- [networking] Collect 'ethtool -e <device>' conditionally only
Resolves: bz1928627
Resolves: bz1917196
* Wed Jan 06 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-5
- [component] honour plugopts from config file
Resolves: bz1912889
- [collector] declare sysroot for each component
Resolves: bz1912821
- [plugins] Dont stop collecting by empty specfile when sizelimit=0
Resolves: bz1912910
* Mon Jan 04 2021 Pavel Moravec <pmoravec@redhat.com> = 4.0-4
- [component] Use sysroot from Policy when opts doesn't specify it
Resolves: bz1881118
* Mon Dec 14 2020 Pavel Moravec <pmoravec@redhat.com> = 4.0-3
- [ovirt] collect /etc/pki/ovirt-engine/.truststore
Resolves: bz1848095
- [collector] allow overriding plain --cluster-type
Resolves: bz1895316
- [component] Add log verbosity from presets
Resolves: bz1904045
- [options] Fix --log-size=0 being ignored and unreported
Resolves: bz1905657
- [report] collect broken symlinks
Resolves: bz1906598
* Thu Oct 29 2020 Pavel Moravec <pmoravec@redhat.com> = 4.0-2
- [cleaner] more streamlined sanitize_item method
Resolves: bz1827801
- [openstack_ironic] Missing ironic-inspector configs
Resolves: bz1874295
- Add support to collect hardware component logs
Resolves: bz1880372
- [crio] collect /etc/crio/crio.conf.d/
Resolves: bz1881118
- [policy] Handle additional failure conditions for FTP uploads
Resolves: bz1882368
- [filesys] never collect content of /proc/fs/panfs
Resolves: bz1886782
- [kdump] Collect new kdump logfiles
Resolves: bz1887390
- [stratis] Collect key list and report engine
Resolves: bz1888012
- return tmp-dir with absolute path
Resolves: bz1891562
* Tue Oct 13 2020 Pavel Moravec <pmoravec@redhat.com> = 4.0-1
- Rebase on upstream 4.0
Resolves: bz1827801
* Wed Aug 19 2020 Pavel Moravec <pmoravec@redhat.com> = 3.9.1-6
- [networking] remove 'ethtool -e' option for bnx2x NICs