diff --git a/.gitignore b/.gitignore index 42b757e..aa670cc 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ sos-2.2.tar.gz /4.1.tar.gz /4.2.tar.gz /4.3.tar.gz +/4.4.tar.gz diff --git a/0001-host-Skip-entire-etc-sos-cleaner-directory.patch b/0001-host-Skip-entire-etc-sos-cleaner-directory.patch deleted file mode 100644 index 972e349..0000000 --- a/0001-host-Skip-entire-etc-sos-cleaner-directory.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7ebb2ce0bcd13c1b3aada648aceb20b5aff636d9 Mon Sep 17 00:00:00 2001 -From: Jake Hunsaker -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0002-man-Mention-sos-help-in-main-sos-manpage.patch b/0002-man-Mention-sos-help-in-main-sos-manpage.patch deleted file mode 100644 index b41d923..0000000 --- a/0002-man-Mention-sos-help-in-main-sos-manpage.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b5389aa195675f473acdd22f20017a8854ff82d0 Mon Sep 17 00:00:00 2001 -From: Pavel Moravec -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0003-setup-Add-sos-help-to-build-process.patch b/0003-setup-Add-sos-help-to-build-process.patch deleted file mode 100644 index ba356bf..0000000 --- a/0003-setup-Add-sos-help-to-build-process.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ac4eb48fa35c13b99ada41540831412480babf8d Mon Sep 17 00:00:00 2001 -From: Pavel Moravec -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0004-runtimes-Allow-container-IDs-to-be-used-with-contain.patch b/0004-runtimes-Allow-container-IDs-to-be-used-with-contain.patch deleted file mode 100644 index 339fb37..0000000 --- a/0004-runtimes-Allow-container-IDs-to-be-used-with-contain.patch +++ /dev/null @@ -1,78 +0,0 @@ -From d0f9d507b0ec63c9e8f3e5d7b6507d9d0f97c038 Mon Sep 17 00:00:00 2001 -From: Jake Hunsaker -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0005-ovn_central-Rename-container-responsable-of-Red-Hat-.patch b/0005-ovn_central-Rename-container-responsable-of-Red-Hat-.patch deleted file mode 100644 index ff07ec8..0000000 --- a/0005-ovn_central-Rename-container-responsable-of-Red-Hat-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From de9b020a72d1ceda39587db4c6d5acf72cd90da2 Mon Sep 17 00:00:00 2001 -From: Fernando Royo -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 ---- - 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 - diff --git a/0006-pulpcore-Stop-collecting-commands-relevant-to-old-ta.patch b/0006-pulpcore-Stop-collecting-commands-relevant-to-old-ta.patch deleted file mode 100644 index e9da405..0000000 --- a/0006-pulpcore-Stop-collecting-commands-relevant-to-old-ta.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 751530acad7cb41a461b16bb7bbedf2753847ca4 Mon Sep 17 00:00:00 2001 -From: Pavel Moravec -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0007-report-Honor-plugins-hardcoded-plugin_timeout.patch b/0007-report-Honor-plugins-hardcoded-plugin_timeout.patch deleted file mode 100644 index 7d3401f..0000000 --- a/0007-report-Honor-plugins-hardcoded-plugin_timeout.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7069e99d1c5c443f96a98a7ed6db67fa14683e67 Mon Sep 17 00:00:00 2001 -From: Pavel Moravec -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0008-networking-consistently-list-the-routing-policy-rule.patch b/0008-networking-consistently-list-the-routing-policy-rule.patch deleted file mode 100644 index 8364fd0..0000000 --- a/0008-networking-consistently-list-the-routing-policy-rule.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b6c51c5fea8115e658a0a696e2f482739441b637 Mon Sep 17 00:00:00 2001 -From: Antoine Tenart -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0009-networking-list-VRFs.patch b/0009-networking-list-VRFs.patch deleted file mode 100644 index ec362f6..0000000 --- a/0009-networking-list-VRFs.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2c1d0ff547a0ae3500f7b6d8479f801fd455be00 Mon Sep 17 00:00:00 2001 -From: Antoine Tenart -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch b/0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch deleted file mode 100644 index f8de2e7..0000000 --- a/0010-sosnode-Handle-downstream-versioning-for-runtime-opt.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 2ae16e0245e1b01b8547e507abb69c11871a8467 Mon Sep 17 00:00:00 2001 -From: Jake Hunsaker -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 -Signed-off-by: Sandro Bonazzola ---- - 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 - diff --git a/sos.spec b/sos.spec index fda6b1d..4a9b04e 100644 --- a/sos.spec +++ b/sos.spec @@ -2,35 +2,23 @@ Summary: A set of tools to gather troubleshooting information from a system Name: sos -Version: 4.3 -Release: 4%{?dist} +Version: 4.4 +Release: 1%{?dist} Source0: https://github.com/sosreport/sos/archive/%{version}.tar.gz License: GPLv2+ BuildArch: noarch Url: https://github.com/sosreport/sos BuildRequires: python3-devel BuildRequires: gettext -Requires: libxml2-python3 Requires: python3-rpm Requires: tar Requires: bzip2 Requires: xz Recommends: python3-pexpect Recommends: python3-requests +Recommends: python3-pyyaml 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 @@ -39,7 +27,6 @@ support technicians and developers. %prep %setup -qn %{name}-%{version} -%autopatch -p1 %build %py3_build @@ -62,6 +49,7 @@ rm -rf %{buildroot}/usr/config/ %{_sbindir}/sos %{_sbindir}/sosreport %{_sbindir}/sos-collector +%dir /etc/sos/cleaner %dir /etc/sos/presets.d %dir /etc/sos/extras.d %dir /etc/sos/groups.d @@ -71,9 +59,11 @@ rm -rf %{buildroot}/usr/config/ %doc AUTHORS README.md %license LICENSE %config(noreplace) %{_sysconfdir}/sos/sos.conf -%config(noreplace) %{_sysconfdir}/sos/cleaner %changelog +* Tue Aug 16 2022 Sandro Bonazzola - 4.4-1 +- Update to 4.4 (#2118549) + * Sat Jul 23 2022 Fedora Release Engineering - 4.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 1a9e959..ac67f26 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (4.3.tar.gz) = 6119abb52e2be650099c9a660a179856f1a2f64cc098a3318b685a407fdb2b8e1ad296bc124c1a6acd1142f75e106db353ce9d2b065d8cf4c077b98c40221d9c +SHA512 (4.4.tar.gz) = 0e040bd48463960872e7f14ac773edcce40a5bfb1e05967498c8c9dc41560dfe901c60f08aad5e2a987d5de8068b21729d2317ae99602c739aa4f78eb7f72251