import sos-4.0-11.el8
This commit is contained in:
parent
6af2bdc397
commit
b27381e187
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
SOURCES/sos-3.9.1.tar.gz
|
SOURCES/sos-4.0.tar.gz
|
||||||
SOURCES/sos-audit-0.3.tgz
|
SOURCES/sos-audit-0.3.tgz
|
||||||
|
@ -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
|
9d478b9f0085da9178af103078bbf2fd77b0175a SOURCES/sos-audit-0.3.tgz
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
37
SOURCES/sos-bz1827801-streamlined-sanitize_item.patch
Normal file
37
SOURCES/sos-bz1827801-streamlined-sanitize_item.patch
Normal 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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
42
SOURCES/sos-bz1848095-collect-rhev-pki.patch
Normal file
42
SOURCES/sos-bz1848095-collect-rhev-pki.patch
Normal 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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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([
|
|
179
SOURCES/sos-bz1874295-osp-ironic-inspector-configs.patch
Normal file
179
SOURCES/sos-bz1874295-osp-ironic-inspector-configs.patch
Normal 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
|
||||||
|
|
228
SOURCES/sos-bz1880372-power-logs.patch
Normal file
228
SOURCES/sos-bz1880372-power-logs.patch
Normal 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
|
||||||
|
|
70
SOURCES/sos-bz1881118-crio-conf-d.patch
Normal file
70
SOURCES/sos-bz1881118-crio-conf-d.patch
Normal 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
|
||||||
|
|
211
SOURCES/sos-bz1882368-upload-functionality-issues.patch
Normal file
211
SOURCES/sos-bz1882368-upload-functionality-issues.patch
Normal 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
|
||||||
|
|
36
SOURCES/sos-bz1886782-exclude-panfs.patch
Normal file
36
SOURCES/sos-bz1886782-exclude-panfs.patch
Normal 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
|
||||||
|
|
49
SOURCES/sos-bz1887390-kdump-logfiles.patch
Normal file
49
SOURCES/sos-bz1887390-kdump-logfiles.patch
Normal 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
|
||||||
|
|
40
SOURCES/sos-bz1887402-kexec-logs.patch
Normal file
40
SOURCES/sos-bz1887402-kexec-logs.patch
Normal 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):
|
36
SOURCES/sos-bz1888012-stratis-new-feature-output.patch
Normal file
36
SOURCES/sos-bz1888012-stratis-new-feature-output.patch
Normal 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
|
||||||
|
|
34
SOURCES/sos-bz1891562-tmp-dir-relative-path.patch
Normal file
34
SOURCES/sos-bz1891562-tmp-dir-relative-path.patch
Normal 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'
|
||||||
|
|
32
SOURCES/sos-bz1895316-collector--cluster-type.patch
Normal file
32
SOURCES/sos-bz1895316-collector--cluster-type.patch
Normal 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
|
||||||
|
|
53
SOURCES/sos-bz1904045-preset-ignores-verbosity.patch
Normal file
53
SOURCES/sos-bz1904045-preset-ignores-verbosity.patch
Normal 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
|
||||||
|
|
56
SOURCES/sos-bz1905657-empty-file-stops-zero-sizelimit.patch
Normal file
56
SOURCES/sos-bz1905657-empty-file-stops-zero-sizelimit.patch
Normal 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
|
||||||
|
|
56
SOURCES/sos-bz1906598-collect-broken-symlinks.patch
Normal file
56
SOURCES/sos-bz1906598-collect-broken-symlinks.patch
Normal 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
|
||||||
|
|
32
SOURCES/sos-bz1912821-sos-collector-declare-sysroot.patch
Normal file
32
SOURCES/sos-bz1912821-sos-collector-declare-sysroot.patch
Normal 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
|
||||||
|
|
33
SOURCES/sos-bz1912889-plugopts-ignored-in-configfile.patch
Normal file
33
SOURCES/sos-bz1912889-plugopts-ignored-in-configfile.patch
Normal 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
|
||||||
|
|
33
SOURCES/sos-bz1912910-empty-file-stops-collecting.patch
Normal file
33
SOURCES/sos-bz1912910-empty-file-stops-collecting.patch
Normal 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
|
||||||
|
|
35
SOURCES/sos-bz1916729-ftp-upload-no-passwd.patch
Normal file
35
SOURCES/sos-bz1916729-ftp-upload-no-passwd.patch
Normal 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:
|
@ -12,13 +12,13 @@ Resolves: #2376
|
|||||||
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||||
Signed-off-by: Jake Hunsaker <jhunsake@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(-)
|
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
|
index e4236ed9..5bdb697e 100644
|
||||||
--- a/sos/plugins/networking.py
|
--- a/sos/report/plugins/networking.py
|
||||||
+++ b/sos/plugins/networking.py
|
+++ b/sos/report/plugins/networking.py
|
||||||
@@ -27,7 +27,8 @@ class Networking(Plugin):
|
@@ -27,7 +27,8 @@ class Networking(Plugin):
|
||||||
("namespaces", "Number of namespaces to collect, 0 for unlimited. " +
|
("namespaces", "Number of namespaces to collect, 0 for unlimited. " +
|
||||||
"Incompatible with the namespace_pattern plugin option", "slow", 0),
|
"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
|
# switch to enable netstat "wide" (non-truncated) output mode
|
||||||
@@ -141,16 +142,15 @@ class Networking(Plugin):
|
@@ -141,16 +142,15 @@ class Networking(Plugin):
|
||||||
"ethtool --show-eee " + eth
|
"ethtool --show-eee " + eth
|
||||||
])
|
], tags=eth)
|
||||||
|
|
||||||
- # skip EEPROM collection for 'bnx2x' NICs as this command
|
- # skip EEPROM collection for 'bnx2x' NICs as this command
|
||||||
- # can pause the NIC and is not production safe.
|
- # can pause the NIC and is not production safe.
|
95
SOURCES/sos-bz1925419-gluster-pubkeys-statusfile.patch
Normal file
95
SOURCES/sos-bz1925419-gluster-pubkeys-statusfile.patch
Normal 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
|
||||||
|
|
101
SOURCES/sos-bz1928650-powerpc-nhv-scsi-logs.patch
Normal file
101
SOURCES/sos-bz1928650-powerpc-nhv-scsi-logs.patch
Normal 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,
|
144
SPECS/sos.spec
144
SPECS/sos.spec
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
Summary: A set of tools to gather troubleshooting information from a system
|
Summary: A set of tools to gather troubleshooting information from a system
|
||||||
Name: sos
|
Name: sos
|
||||||
Version: 3.9.1
|
Version: 4.0
|
||||||
Release: 7%{?dist}
|
Release: 11%{?dist}
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
|
Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz
|
||||||
Source1: sos-audit-%{auditversion}.tgz
|
Source1: sos-audit-%{auditversion}.tgz
|
||||||
@ -13,34 +13,36 @@ License: GPLv2+
|
|||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Url: http://github.com/sosreport/sos
|
Url: http://github.com/sosreport/sos
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
BuildRequires: python3-six
|
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
Requires: libxml2-python3
|
Requires: libxml2-python3
|
||||||
Requires: bzip2
|
Requires: bzip2
|
||||||
Requires: xz
|
Requires: xz
|
||||||
Requires: python3-six
|
|
||||||
Conflicts: vdsm < 4.40
|
Conflicts: vdsm < 4.40
|
||||||
Patch1: sos-bz1825283-env-host-in-container.patch
|
Obsoletes: sos-collector
|
||||||
Patch2: sos-bz1823488-containers-common.patch
|
Recommends: python3-pexpect
|
||||||
Patch3: sos-bz1819662-rabbitmqctl-on-foreground.patch
|
Patch1: sos-bz1827801-streamlined-sanitize_item.patch
|
||||||
Patch4: sos-bz1814867-insights-archive.patch
|
Patch2: sos-bz1874295-osp-ironic-inspector-configs.patch
|
||||||
Patch5: sos-bz1785546-nvmetcli.patch
|
Patch3: sos-bz1880372-power-logs.patch
|
||||||
Patch6: sos-bz1776549-podman-buildah-rootless.patch
|
Patch4: sos-bz1881118-crio-conf-d.patch
|
||||||
Patch7: sos-bz1633006-iptables-kmods.patch
|
Patch5: sos-bz1882368-upload-functionality-issues.patch
|
||||||
Patch8: sos-bz1457191-navicli-noniteractively.patch
|
Patch6: sos-bz1886782-exclude-panfs.patch
|
||||||
Patch9: sos-bz1838123-xdp-plugin.patch
|
Patch7: sos-bz1887390-kdump-logfiles.patch
|
||||||
Patch10: sos-bz1843562-gluster-volume-specific.patch
|
Patch8: sos-bz1888012-stratis-new-feature-output.patch
|
||||||
Patch11: sos-bz1844853-nfs-etc-exports.patch
|
Patch9: sos-bz1891562-tmp-dir-relative-path.patch
|
||||||
Patch12: sos-bz1845386-pacemaker-passwords-with-equal-sign.patch
|
Patch10: sos-bz1848095-collect-rhev-pki.patch
|
||||||
Patch13: sos-bz1843754-powerpc-logs-for-components.patch
|
Patch11: sos-bz1895316-collector--cluster-type.patch
|
||||||
Patch14: sos-bz1850926-logs-no-journal.patch
|
Patch12: sos-bz1904045-preset-ignores-verbosity.patch
|
||||||
Patch15: sos-bz1850554-luks-not-detected.patch
|
Patch13: sos-bz1905657-empty-file-stops-zero-sizelimit.patch
|
||||||
Patch16: sos-bz1851923-powerpc-missing-logs.patch
|
Patch14: sos-bz1906598-collect-broken-symlinks.patch
|
||||||
Patch17: sos-bz1853700-pci-too-strong-condition.patch
|
Patch15: sos-bz1912889-plugopts-ignored-in-configfile.patch
|
||||||
Patch18: sos-bz1857590-gluster-removes-sockfiles.patch
|
Patch16: sos-bz1912821-sos-collector-declare-sysroot.patch
|
||||||
Patch19: sos-bz1859888-kubernetes-indexerror-on-nodes.patch
|
Patch17: sos-bz1912910-empty-file-stops-collecting.patch
|
||||||
Patch20: sos-bz1869724-ethtool-not-on-bnx2x.patch
|
Patch18: sos-bz1917196-networking-ethtool-e-conditionally.patch
|
||||||
Patch21: sos-bz1928627-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
|
%description
|
||||||
Sos is a set of tools that gathers information about system
|
Sos is a set of tools that gathers information about system
|
||||||
@ -50,6 +52,7 @@ support technicians and developers.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -qn %{name}-%{version}
|
%setup -qn %{name}-%{version}
|
||||||
|
%setup -T -D -a1 -q
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
@ -71,7 +74,7 @@ support technicians and developers.
|
|||||||
%patch19 -p1
|
%patch19 -p1
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch21 -p1
|
%patch21 -p1
|
||||||
%setup -T -D -a1 -q
|
%patch22 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%py3_build
|
%py3_build
|
||||||
@ -79,7 +82,7 @@ support technicians and developers.
|
|||||||
%install
|
%install
|
||||||
%py3_install '--install-scripts=%{_sbindir}'
|
%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
|
%find_lang %{name} || echo 0
|
||||||
|
|
||||||
@ -87,14 +90,25 @@ cd %{name}-audit-%{auditversion}
|
|||||||
DESTDIR=%{buildroot} ./install.sh
|
DESTDIR=%{buildroot} ./install.sh
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/sos/cleaner
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%{_sbindir}/sosreport
|
%{_sbindir}/sosreport
|
||||||
|
%{_sbindir}/sos
|
||||||
|
%{_sbindir}/sos-collector
|
||||||
%{python3_sitelib}/*
|
%{python3_sitelib}/*
|
||||||
%{_mandir}/man1/sosreport.1.gz
|
%{_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
|
%{_mandir}/man5/sos.conf.5.gz
|
||||||
%doc AUTHORS README.md
|
%doc AUTHORS README.md
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%config(noreplace) %{_sysconfdir}/sos.conf
|
%config(noreplace) %{_sysconfdir}/sos/sos.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/sos/cleaner
|
||||||
|
|
||||||
%package audit
|
%package audit
|
||||||
Summary: Audit use of some commands for support purposes
|
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
|
%ghost /etc/audit/rules.d/40-sos-storage.rules
|
||||||
|
|
||||||
%changelog
|
%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
|
- [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
|
* Wed Aug 19 2020 Pavel Moravec <pmoravec@redhat.com> = 3.9.1-6
|
||||||
- [networking] remove 'ethtool -e' option for bnx2x NICs
|
- [networking] remove 'ethtool -e' option for bnx2x NICs
|
||||||
|
Loading…
Reference in New Issue
Block a user