add latest patched including fix for missing help plugin (bz#2058142)
This commit is contained in:
parent
89bfc706af
commit
e21855760a
34
0001-host-Skip-entire-etc-sos-cleaner-directory.patch
Normal file
34
0001-host-Skip-entire-etc-sos-cleaner-directory.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 7ebb2ce0bcd13c1b3aada648aceb20b5aff636d9 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Date: Tue, 15 Feb 2022 14:18:02 -0500
|
||||
Subject: [PATCH 01/10] [host] Skip entire /etc/sos/cleaner directory
|
||||
|
||||
While `default_mapping` is typically the only file expected under
|
||||
`/etc/sos/cleaner/` it is possible for other mapping files (such as
|
||||
backups) to appear there.
|
||||
|
||||
Make the `add_forbidden_path()` spec here target the entire cleaner
|
||||
directory to avoid ever capturing these map files.
|
||||
|
||||
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/host.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sos/report/plugins/host.py b/sos/report/plugins/host.py
|
||||
index 5e21da7b..95a3b9cd 100644
|
||||
--- a/sos/report/plugins/host.py
|
||||
+++ b/sos/report/plugins/host.py
|
||||
@@ -20,7 +20,7 @@ class Host(Plugin, IndependentPlugin):
|
||||
|
||||
def setup(self):
|
||||
|
||||
- self.add_forbidden_path('/etc/sos/cleaner/default_mapping')
|
||||
+ self.add_forbidden_path('/etc/sos/cleaner')
|
||||
|
||||
self.add_cmd_output('hostname', root_symlink='hostname')
|
||||
self.add_cmd_output('uptime', root_symlink='uptime')
|
||||
--
|
||||
2.27.0
|
||||
|
35
0002-man-Mention-sos-help-in-main-sos-manpage.patch
Normal file
35
0002-man-Mention-sos-help-in-main-sos-manpage.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From b5389aa195675f473acdd22f20017a8854ff82d0 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Moravec <pmoravec@redhat.com>
|
||||
Date: Wed, 16 Feb 2022 08:43:32 +0100
|
||||
Subject: [PATCH 02/10] [man] Mention sos-help in main sos manpage
|
||||
|
||||
Related to #2860
|
||||
|
||||
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
man/en/sos.1 | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/man/en/sos.1 b/man/en/sos.1
|
||||
index ce4918f9..c335b7e1 100644
|
||||
--- a/man/en/sos.1
|
||||
+++ b/man/en/sos.1
|
||||
@@ -67,6 +67,14 @@ May be invoked via either \fBsos clean\fR, \fBsos cleaner\fR, \fBsos mask\fR,
|
||||
or via the \fB--clean\fR, \fB--cleaner\fR or \fB --mask\fR options
|
||||
for \fBreport\fR and \fBcollect\fR.
|
||||
|
||||
+.TP
|
||||
+.B help
|
||||
+This subcommand is used to retrieve more detailed information on the various SoS
|
||||
+commands and components than is directly available in either other manpages or
|
||||
+--help output.
|
||||
+
|
||||
+See \fB sos help --help\fR and \fB man sos-help\fR for more information.
|
||||
+
|
||||
.SH GLOBAL OPTIONS
|
||||
sos components provide their own set of options, however the following are available
|
||||
to be set across all components.
|
||||
--
|
||||
2.27.0
|
||||
|
40
0003-setup-Add-sos-help-to-build-process.patch
Normal file
40
0003-setup-Add-sos-help-to-build-process.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From ac4eb48fa35c13b99ada41540831412480babf8d Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Moravec <pmoravec@redhat.com>
|
||||
Date: Wed, 16 Feb 2022 08:44:16 +0100
|
||||
Subject: [PATCH 03/10] [setup] Add sos-help to build process
|
||||
|
||||
Resolves: #2860
|
||||
Closes: #2861
|
||||
|
||||
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
setup.py | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 25e87a71..8db8641f 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -90,7 +90,7 @@ setup(
|
||||
('share/man/man1', ['man/en/sosreport.1', 'man/en/sos-report.1',
|
||||
'man/en/sos.1', 'man/en/sos-collect.1',
|
||||
'man/en/sos-collector.1', 'man/en/sos-clean.1',
|
||||
- 'man/en/sos-mask.1']),
|
||||
+ 'man/en/sos-mask.1', 'man/en/sos-help.1']),
|
||||
('share/man/man5', ['man/en/sos.conf.5']),
|
||||
('share/licenses/sos', ['LICENSE']),
|
||||
('share/doc/sos', ['AUTHORS', 'README.md']),
|
||||
@@ -102,7 +102,8 @@ setup(
|
||||
'sos.policies.package_managers', 'sos.policies.init_systems',
|
||||
'sos.report', 'sos.report.plugins', 'sos.collector',
|
||||
'sos.collector.clusters', 'sos.collector.transports', 'sos.cleaner',
|
||||
- 'sos.cleaner.mappings', 'sos.cleaner.parsers', 'sos.cleaner.archives'
|
||||
+ 'sos.cleaner.mappings', 'sos.cleaner.parsers', 'sos.cleaner.archives',
|
||||
+ 'sos.help'
|
||||
],
|
||||
cmdclass=cmdclass,
|
||||
command_options=command_options,
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,78 @@
|
||||
From d0f9d507b0ec63c9e8f3e5d7b6507d9d0f97c038 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Date: Tue, 15 Feb 2022 16:24:47 -0500
|
||||
Subject: [PATCH 04/10] [runtimes] Allow container IDs to be used with
|
||||
`container_exists()`
|
||||
|
||||
As container runtimes can interchange container names and container IDs,
|
||||
sos should also allow the use of container IDs when checking for the
|
||||
presence of a given container.
|
||||
|
||||
In particular, this change unblocks the use of `Plugin.exec_cmd()` when
|
||||
used in conjunction with `Plugin.get_container_by_name()` to pick a
|
||||
container based on a provided regex that the container name may match.
|
||||
|
||||
Related: #2856
|
||||
|
||||
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/policies/runtimes/__init__.py | 17 +++++++++++++++++
|
||||
sos/report/plugins/__init__.py | 6 +++---
|
||||
2 files changed, 20 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/sos/policies/runtimes/__init__.py b/sos/policies/runtimes/__init__.py
|
||||
index 5ac67354..d2837349 100644
|
||||
--- a/sos/policies/runtimes/__init__.py
|
||||
+++ b/sos/policies/runtimes/__init__.py
|
||||
@@ -147,6 +147,23 @@ class ContainerRuntime():
|
||||
vols.append(ent[-1])
|
||||
return vols
|
||||
|
||||
+ def container_exists(self, container):
|
||||
+ """Check if a given container ID or name exists on the system from the
|
||||
+ perspective of the container runtime.
|
||||
+
|
||||
+ Note that this will only check _running_ containers
|
||||
+
|
||||
+ :param container: The name or ID of the container
|
||||
+ :type container: ``str``
|
||||
+
|
||||
+ :returns: True if the container exists, else False
|
||||
+ :rtype: ``bool``
|
||||
+ """
|
||||
+ for _contup in self.containers:
|
||||
+ if container in _contup:
|
||||
+ return True
|
||||
+ return False
|
||||
+
|
||||
def fmt_container_cmd(self, container, cmd, quotecmd):
|
||||
"""Format a command to run inside a container using the runtime
|
||||
|
||||
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
|
||||
index 2988be08..cc5cb65b 100644
|
||||
--- a/sos/report/plugins/__init__.py
|
||||
+++ b/sos/report/plugins/__init__.py
|
||||
@@ -2593,7 +2593,7 @@ class Plugin():
|
||||
"""If a container runtime is present, check to see if a container with
|
||||
a given name is currently running
|
||||
|
||||
- :param name: The name of the container to check presence of
|
||||
+ :param name: The name or ID of the container to check presence of
|
||||
:type name: ``str``
|
||||
|
||||
:returns: ``True`` if `name` exists, else ``False``
|
||||
@@ -2601,8 +2601,8 @@ class Plugin():
|
||||
"""
|
||||
_runtime = self._get_container_runtime()
|
||||
if _runtime is not None:
|
||||
- con = _runtime.get_container_by_name(name)
|
||||
- return con is not None
|
||||
+ return (_runtime.container_exists(name) or
|
||||
+ _runtime.get_container_by_name(name) is not None)
|
||||
return False
|
||||
|
||||
def get_all_containers_by_regex(self, regex, get_all=False):
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,77 @@
|
||||
From de9b020a72d1ceda39587db4c6d5acf72cd90da2 Mon Sep 17 00:00:00 2001
|
||||
From: Fernando Royo <froyo@redhat.com>
|
||||
Date: Tue, 15 Feb 2022 10:00:38 +0100
|
||||
Subject: [PATCH 05/10] [ovn_central] Rename container responsable of Red Hat
|
||||
ovn_central plugin
|
||||
|
||||
ovn_central plugin is running by container with
|
||||
name 'ovn-dbs-bundle*', a typo has been identified and
|
||||
this cause plugin ovn_central not enabled by default as it
|
||||
does not recognize any container responsible of this.
|
||||
|
||||
This patch fix this container name match, searching schema db
|
||||
keeping backward compatibility with openvswitch.
|
||||
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/ovn_central.py | 23 ++++++++++++-----------
|
||||
1 file changed, 12 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/sos/report/plugins/ovn_central.py b/sos/report/plugins/ovn_central.py
|
||||
index 2f0438df..2f34bff0 100644
|
||||
--- a/sos/report/plugins/ovn_central.py
|
||||
+++ b/sos/report/plugins/ovn_central.py
|
||||
@@ -24,7 +24,7 @@ class OVNCentral(Plugin):
|
||||
short_desc = 'OVN Northd'
|
||||
plugin_name = "ovn_central"
|
||||
profiles = ('network', 'virt')
|
||||
- containers = ('ovs-db-bundle.*',)
|
||||
+ containers = ('ovn-dbs-bundle.*',)
|
||||
|
||||
def get_tables_from_schema(self, filename, skip=[]):
|
||||
if self._container_name:
|
||||
@@ -66,7 +66,7 @@ class OVNCentral(Plugin):
|
||||
cmds.append('%s list %s' % (ovn_cmd, table))
|
||||
|
||||
def setup(self):
|
||||
- self._container_name = self.get_container_by_name('ovs-dbs-bundle.*')
|
||||
+ self._container_name = self.get_container_by_name(self.containers[0])
|
||||
|
||||
ovs_rundir = os.environ.get('OVS_RUNDIR')
|
||||
for pidfile in ['ovnnb_db.pid', 'ovnsb_db.pid', 'ovn-northd.pid']:
|
||||
@@ -110,12 +110,11 @@ class OVNCentral(Plugin):
|
||||
'ovn-sbctl get-connection',
|
||||
]
|
||||
|
||||
- schema_dir = '/usr/share/openvswitch'
|
||||
-
|
||||
- nb_tables = self.get_tables_from_schema(self.path_join(
|
||||
- schema_dir, 'ovn-nb.ovsschema'))
|
||||
-
|
||||
- self.add_database_output(nb_tables, nbctl_cmds, 'ovn-nbctl')
|
||||
+ # backward compatibility
|
||||
+ for path in ['/usr/share/openvswitch', '/usr/share/ovn']:
|
||||
+ nb_tables = self.get_tables_from_schema(self.path_join(
|
||||
+ path, 'ovn-nb.ovsschema'))
|
||||
+ self.add_database_output(nb_tables, nbctl_cmds, 'ovn-nbctl')
|
||||
|
||||
cmds = ovsdb_cmds
|
||||
cmds += nbctl_cmds
|
||||
@@ -125,9 +124,11 @@ class OVNCentral(Plugin):
|
||||
format(self.ovn_sbdb_sock_path),
|
||||
"output": "Leader: self"}
|
||||
if self.test_predicate(self, pred=SoSPredicate(self, cmd_outputs=co)):
|
||||
- sb_tables = self.get_tables_from_schema(self.path_join(
|
||||
- schema_dir, 'ovn-sb.ovsschema'), ['Logical_Flow'])
|
||||
- self.add_database_output(sb_tables, sbctl_cmds, 'ovn-sbctl')
|
||||
+ # backward compatibility
|
||||
+ for path in ['/usr/share/openvswitch', '/usr/share/ovn']:
|
||||
+ sb_tables = self.get_tables_from_schema(self.path_join(
|
||||
+ path, 'ovn-sb.ovsschema'), ['Logical_Flow'])
|
||||
+ self.add_database_output(sb_tables, sbctl_cmds, 'ovn-sbctl')
|
||||
cmds += sbctl_cmds
|
||||
|
||||
# If OVN is containerized, we need to run the above commands inside
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,45 @@
|
||||
From 751530acad7cb41a461b16bb7bbedf2753847ca4 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Moravec <pmoravec@redhat.com>
|
||||
Date: Thu, 17 Feb 2022 11:51:20 +0100
|
||||
Subject: [PATCH 06/10] [pulpcore] Stop collecting commands relevant to old
|
||||
taskig system
|
||||
|
||||
The reserved resource approach was used by pulp-3 for a sporadic time
|
||||
in early pulp-3 development only. It is abandoned and should not be
|
||||
productised anywhere. So it is safe to remove the commands (together
|
||||
with rq broker status that was in charge of reserved resources).
|
||||
|
||||
Resolves: #2865
|
||||
|
||||
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/pulpcore.py | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/sos/report/plugins/pulpcore.py b/sos/report/plugins/pulpcore.py
|
||||
index 7a5d461c..426d4819 100644
|
||||
--- a/sos/report/plugins/pulpcore.py
|
||||
+++ b/sos/report/plugins/pulpcore.py
|
||||
@@ -91,9 +91,6 @@ class PulpCore(Plugin, IndependentPlugin):
|
||||
# skip collecting certificate keys
|
||||
self.add_forbidden_path("/etc/pki/pulp/**/*.key", recursive=True)
|
||||
|
||||
- self.add_cmd_output("rq info -u redis://localhost:6379/8",
|
||||
- env={"LC_ALL": "en_US.UTF-8"},
|
||||
- suggest_filename="rq_info")
|
||||
self.add_cmd_output("curl -ks https://localhost/pulp/api/v3/status/",
|
||||
suggest_filename="pulp_status")
|
||||
dynaconf_env = {"LC_ALL": "en_US.UTF-8",
|
||||
@@ -105,8 +102,6 @@ class PulpCore(Plugin, IndependentPlugin):
|
||||
|
||||
task_days = self.get_option('task-days')
|
||||
for table in ['core_task', 'core_taskgroup',
|
||||
- 'core_reservedresourcerecord',
|
||||
- 'core_taskreservedresourcerecord',
|
||||
'core_groupprogressreport', 'core_progressreport']:
|
||||
_query = "select * from %s where pulp_last_updated > NOW() - " \
|
||||
"interval '%s days' order by pulp_last_updated" % \
|
||||
--
|
||||
2.27.0
|
||||
|
40
0007-report-Honor-plugins-hardcoded-plugin_timeout.patch
Normal file
40
0007-report-Honor-plugins-hardcoded-plugin_timeout.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From 7069e99d1c5c443f96a98a7ed6db67fa14683e67 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Moravec <pmoravec@redhat.com>
|
||||
Date: Thu, 17 Feb 2022 09:14:15 +0100
|
||||
Subject: [PATCH 07/10] [report] Honor plugins' hardcoded plugin_timeout
|
||||
|
||||
Currently, plugin's plugin_timeout hardcoded default is superseded by
|
||||
whatever --plugin-timeout value, even when this option is not used and
|
||||
we eval it to TIMEOUT_DEFAULT.
|
||||
|
||||
In this case of not setting --plugin-timeout either -k plugin.timeout,
|
||||
honour plugin's plugin_timeout instead.
|
||||
|
||||
Resolves: #2863
|
||||
Closes: #2864
|
||||
|
||||
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/__init__.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sos/report/plugins/__init__.py b/sos/report/plugins/__init__.py
|
||||
index cc5cb65b..336b4d22 100644
|
||||
--- a/sos/report/plugins/__init__.py
|
||||
+++ b/sos/report/plugins/__init__.py
|
||||
@@ -636,7 +636,10 @@ class Plugin():
|
||||
if opt_timeout is None:
|
||||
_timeout = own_timeout
|
||||
elif opt_timeout is not None and own_timeout == -1:
|
||||
- _timeout = int(opt_timeout)
|
||||
+ if opt_timeout == TIMEOUT_DEFAULT:
|
||||
+ _timeout = default_timeout
|
||||
+ else:
|
||||
+ _timeout = int(opt_timeout)
|
||||
elif opt_timeout is not None and own_timeout > -1:
|
||||
_timeout = own_timeout
|
||||
else:
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,47 @@
|
||||
From b6c51c5fea8115e658a0a696e2f482739441b637 Mon Sep 17 00:00:00 2001
|
||||
From: Antoine Tenart <atenart@kernel.org>
|
||||
Date: Wed, 16 Feb 2022 17:16:48 +0100
|
||||
Subject: [PATCH 08/10] [networking] consistently list the routing policy rules
|
||||
|
||||
The commands used to list the routing policy rules were inconsistent:
|
||||
|
||||
- The IPv6 routing policy rules were not retrieved in namespaces.
|
||||
- The command used were inconsistent in the file (it's only cosmetic,
|
||||
but making it consistent helps maintenance).
|
||||
|
||||
Fix this.
|
||||
|
||||
Signed-off-by: Antoine Tenart <atenart@kernel.org>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/networking.py | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
|
||||
index 8b7f8ee9..69a7e88f 100644
|
||||
--- a/sos/report/plugins/networking.py
|
||||
+++ b/sos/report/plugins/networking.py
|
||||
@@ -97,8 +97,8 @@ class Networking(Plugin):
|
||||
"ip -6 route show table all",
|
||||
"ip -d route show cache",
|
||||
"ip -d -6 route show cache",
|
||||
- "ip -4 rule",
|
||||
- "ip -6 rule",
|
||||
+ "ip -4 rule list",
|
||||
+ "ip -6 rule list",
|
||||
"ip -s -d link",
|
||||
"ip -d address",
|
||||
"ifenslave -a",
|
||||
@@ -209,7 +209,8 @@ class Networking(Plugin):
|
||||
ns_cmd_prefix + "ip -d address show",
|
||||
ns_cmd_prefix + "ip route show table all",
|
||||
ns_cmd_prefix + "ip -s -s neigh show",
|
||||
- ns_cmd_prefix + "ip rule list",
|
||||
+ ns_cmd_prefix + "ip -4 rule list",
|
||||
+ ns_cmd_prefix + "ip -6 rule list",
|
||||
ns_cmd_prefix + "netstat %s -neopa" % self.ns_wide,
|
||||
ns_cmd_prefix + "netstat -s",
|
||||
ns_cmd_prefix + "netstat %s -agn" % self.ns_wide,
|
||||
--
|
||||
2.27.0
|
||||
|
52
0009-networking-list-VRFs.patch
Normal file
52
0009-networking-list-VRFs.patch
Normal file
@ -0,0 +1,52 @@
|
||||
From 2c1d0ff547a0ae3500f7b6d8479f801fd455be00 Mon Sep 17 00:00:00 2001
|
||||
From: Antoine Tenart <atenart@kernel.org>
|
||||
Date: Wed, 16 Feb 2022 17:42:12 +0100
|
||||
Subject: [PATCH 09/10] [networking] list VRFs
|
||||
|
||||
Add command listing VRFs and their associated tables; including in
|
||||
network namespaces. This information could be retrieved from reading the
|
||||
`ip -d address show` output, but it is hard to see quickly. As the `ip
|
||||
vrf show` output is quite small, let's include it.
|
||||
|
||||
If the system has two VRFs, the output will look like:
|
||||
|
||||
Name Table
|
||||
-----------------------
|
||||
vrf0 42
|
||||
vrf1 43
|
||||
|
||||
And if no VRF is defined the output will look like:
|
||||
|
||||
Name Table
|
||||
-----------------------
|
||||
No VRF has been configured
|
||||
|
||||
Signed-off-by: Antoine Tenart <atenart@kernel.org>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/report/plugins/networking.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/sos/report/plugins/networking.py b/sos/report/plugins/networking.py
|
||||
index 69a7e88f..2ab5d840 100644
|
||||
--- a/sos/report/plugins/networking.py
|
||||
+++ b/sos/report/plugins/networking.py
|
||||
@@ -99,6 +99,7 @@ class Networking(Plugin):
|
||||
"ip -d -6 route show cache",
|
||||
"ip -4 rule list",
|
||||
"ip -6 rule list",
|
||||
+ "ip vrf show",
|
||||
"ip -s -d link",
|
||||
"ip -d address",
|
||||
"ifenslave -a",
|
||||
@@ -211,6 +212,7 @@ class Networking(Plugin):
|
||||
ns_cmd_prefix + "ip -s -s neigh show",
|
||||
ns_cmd_prefix + "ip -4 rule list",
|
||||
ns_cmd_prefix + "ip -6 rule list",
|
||||
+ ns_cmd_prefix + "ip vrf show",
|
||||
ns_cmd_prefix + "netstat %s -neopa" % self.ns_wide,
|
||||
ns_cmd_prefix + "netstat -s",
|
||||
ns_cmd_prefix + "netstat %s -agn" % self.ns_wide,
|
||||
--
|
||||
2.27.0
|
||||
|
120
0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch
Normal file
120
0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch
Normal file
@ -0,0 +1,120 @@
|
||||
From 2ae16e0245e1b01b8547e507abb69c11871a8467 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Date: Mon, 21 Feb 2022 14:37:09 -0500
|
||||
Subject: [PATCH 10/10] [sosnode] Handle downstream versioning for runtime
|
||||
option check
|
||||
|
||||
First, adds parsing and formatting for an sos installation's release
|
||||
version according to the loaded package manager for that node.
|
||||
|
||||
Adds a fallback version check for 4.2-13 for RHEL downstreams that
|
||||
backport the `container-runtime` option into sos-4.2.
|
||||
|
||||
Carry this in upstream to account for use cases where a workstation used
|
||||
to run `collect` from may be from a different stream than those used by
|
||||
cluster nodes.
|
||||
|
||||
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
||||
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
|
||||
---
|
||||
sos/collector/sosnode.py | 60 ++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 51 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/sos/collector/sosnode.py b/sos/collector/sosnode.py
|
||||
index 7bbe0cd1..d9b998b0 100644
|
||||
--- a/sos/collector/sosnode.py
|
||||
+++ b/sos/collector/sosnode.py
|
||||
@@ -275,21 +275,34 @@ class SosNode():
|
||||
def _load_sos_info(self):
|
||||
"""Queries the node for information about the installed version of sos
|
||||
"""
|
||||
+ ver = None
|
||||
+ rel = None
|
||||
if self.host.container_version_command is None:
|
||||
pkg = self.host.package_manager.pkg_version(self.host.sos_pkg_name)
|
||||
if pkg is not None:
|
||||
ver = '.'.join(pkg['version'])
|
||||
- self.sos_info['version'] = ver
|
||||
+ if pkg['release']:
|
||||
+ rel = pkg['release']
|
||||
+
|
||||
else:
|
||||
# use the containerized policy's command
|
||||
pkgs = self.run_command(self.host.container_version_command,
|
||||
use_container=True, need_root=True)
|
||||
if pkgs['status'] == 0:
|
||||
- ver = pkgs['output'].strip().split('-')[1]
|
||||
- if ver:
|
||||
- self.sos_info['version'] = ver
|
||||
- else:
|
||||
- self.sos_info['version'] = None
|
||||
+ _, ver, rel = pkgs['output'].strip().split('-')
|
||||
+
|
||||
+ if ver:
|
||||
+ if len(ver.split('.')) == 2:
|
||||
+ # safeguard against maintenance releases throwing off the
|
||||
+ # comparison by LooseVersion
|
||||
+ ver += '.0'
|
||||
+ try:
|
||||
+ ver += '-%s' % rel.split('.')[0]
|
||||
+ except Exception as err:
|
||||
+ self.log_debug("Unable to fully parse sos release: %s" % err)
|
||||
+
|
||||
+ self.sos_info['version'] = ver
|
||||
+
|
||||
if self.sos_info['version']:
|
||||
self.log_info('sos version is %s' % self.sos_info['version'])
|
||||
else:
|
||||
@@ -381,9 +394,37 @@ class SosNode():
|
||||
"""Checks to see if the sos installation on the node is AT LEAST the
|
||||
given ver. This means that if the installed version is greater than
|
||||
ver, this will still return True
|
||||
+
|
||||
+ :param ver: Version number we are trying to verify is installed
|
||||
+ :type ver: ``str``
|
||||
+
|
||||
+ :returns: True if installed version is at least ``ver``, else False
|
||||
+ :rtype: ``bool``
|
||||
"""
|
||||
- return self.sos_info['version'] is not None and \
|
||||
- LooseVersion(self.sos_info['version']) >= ver
|
||||
+ def _format_version(ver):
|
||||
+ # format the version we're checking to a standard form of X.Y.Z-R
|
||||
+ try:
|
||||
+ _fver = ver.split('-')[0]
|
||||
+ _rel = ''
|
||||
+ if '-' in ver:
|
||||
+ _rel = '-' + ver.split('-')[-1].split('.')[0]
|
||||
+ if len(_fver.split('.')) == 2:
|
||||
+ _fver += '.0'
|
||||
+
|
||||
+ return _fver + _rel
|
||||
+ except Exception as err:
|
||||
+ self.log_debug("Unable to format '%s': %s" % (ver, err))
|
||||
+ return ver
|
||||
+
|
||||
+ _ver = _format_version(ver)
|
||||
+
|
||||
+ try:
|
||||
+ _node_ver = LooseVersion(self.sos_info['version'])
|
||||
+ _test_ver = LooseVersion(_ver)
|
||||
+ return _node_ver >= _test_ver
|
||||
+ except Exception as err:
|
||||
+ self.log_error("Error checking sos version: %s" % err)
|
||||
+ return False
|
||||
|
||||
def is_installed(self, pkg):
|
||||
"""Checks if a given package is installed on the node"""
|
||||
@@ -587,7 +628,8 @@ class SosNode():
|
||||
sos_opts.append('--cmd-timeout=%s'
|
||||
% quote(str(self.opts.cmd_timeout)))
|
||||
|
||||
- if self.check_sos_version('4.3'):
|
||||
+ # handle downstream versions that backported this option
|
||||
+ if self.check_sos_version('4.3') or self.check_sos_version('4.2-13'):
|
||||
if self.opts.container_runtime != 'auto':
|
||||
sos_opts.append(
|
||||
"--container-runtime=%s" % self.opts.container_runtime
|
||||
--
|
||||
2.27.0
|
||||
|
18
sos.spec
18
sos.spec
@ -3,7 +3,7 @@
|
||||
Summary: A set of tools to gather troubleshooting information from a system
|
||||
Name: sos
|
||||
Version: 4.3
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Source0: https://github.com/sosreport/sos/archive/%{version}.tar.gz
|
||||
License: GPLv2+
|
||||
BuildArch: noarch
|
||||
@ -19,6 +19,18 @@ Recommends: python3-pexpect
|
||||
Recommends: python3-requests
|
||||
Obsoletes: sos-collector <= 1.9
|
||||
|
||||
Patch1: 0001-host-Skip-entire-etc-sos-cleaner-directory.patch
|
||||
Patch2: 0002-man-Mention-sos-help-in-main-sos-manpage.patch
|
||||
Patch3: 0003-setup-Add-sos-help-to-build-process.patch
|
||||
Patch4: 0004-runtimes-Allow-container-IDs-to-be-used-with-contain.patch
|
||||
Patch5: 0005-ovn_central-Rename-container-responsable-of-Red-Hat-.patch
|
||||
Patch6: 0006-pulpcore-Stop-collecting-commands-relevant-to-old-ta.patch
|
||||
Patch7: 0007-report-Honor-plugins-hardcoded-plugin_timeout.patch
|
||||
Patch8: 0008-networking-consistently-list-the-routing-policy-rule.patch
|
||||
Patch9: 0009-networking-list-VRFs.patch
|
||||
Patch10: 0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch
|
||||
|
||||
|
||||
%description
|
||||
Sos is a set of tools that gathers information about system
|
||||
hardware and configuration. The information can then be used for
|
||||
@ -27,6 +39,7 @@ support technicians and developers.
|
||||
|
||||
%prep
|
||||
%setup -qn %{name}-%{version}
|
||||
%autopatch -p1
|
||||
|
||||
%build
|
||||
%py3_build
|
||||
@ -61,6 +74,9 @@ rm -rf %{buildroot}/usr/config/
|
||||
%config(noreplace) %{_sysconfdir}/sos/cleaner
|
||||
|
||||
%changelog
|
||||
* Mon Feb 28 2022 Sandro Bonazzola <sbonazzo@redhat.com> - 4.3-2
|
||||
- add latest patched including fix for missing help plugin (bz#2058142)
|
||||
|
||||
* Tue Feb 15 2022 Sandro Bonazzola <sbonazzo@redhat.com> - 4.3-1
|
||||
- Update to 4.3 (#2054895)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user