Allow rteval to search /usr/bin/ for sysreport
Convert base64 data to text before wrapping. Add sysreport to gating tests and check the exit status. Resolves: RHEL-44437 Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
This commit is contained in:
parent
74a2db636d
commit
c261d895e5
42
rteval-Fix-sysreport-traceback-when-utility-sos-not-.patch
Normal file
42
rteval-Fix-sysreport-traceback-when-utility-sos-not-.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From 2a0b5833be4f55dbbc00f1835a4ace554e498137 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Fri, 21 Jun 2024 13:20:26 -0400
|
||||
Subject: [PATCH] rteval: Fix sysreport traceback when utility sos not found
|
||||
|
||||
When rteval is run with
|
||||
-s, --sysreport run sysreport to collect system data (default: False)
|
||||
|
||||
and sos, sosreport or sysreport cannot be found then rteval exits with
|
||||
an error.
|
||||
|
||||
Fix this by adding /usr/bin to the places to search for this program.
|
||||
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
rteval/sysinfo/osinfo.py | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/rteval/sysinfo/osinfo.py b/rteval/sysinfo/osinfo.py
|
||||
index 3d6d5f8daa96..3bdbcc81e068 100644
|
||||
--- a/rteval/sysinfo/osinfo.py
|
||||
+++ b/rteval/sysinfo/osinfo.py
|
||||
@@ -45,10 +45,16 @@ class OSInfo:
|
||||
def run_sysreport(self, repdir):
|
||||
if os.path.exists('/usr/sbin/sos'):
|
||||
exe = '/usr/sbin/sos report'
|
||||
+ elif os.path.exists('/usr/bin/sos'):
|
||||
+ exe = '/usr/bin/sos report'
|
||||
elif os.path.exists('/usr/sbin/sosreport'):
|
||||
exe = '/usr/sbin/sosreport'
|
||||
+ elif os.path.exists('/usr/bin/sosreport'):
|
||||
+ exe = '/usr/bin/sosreport'
|
||||
elif os.path.exists('/usr/sbin/sysreport'):
|
||||
exe = '/usr/sbin/sysreport'
|
||||
+ elif os.path.exists('/usr/bin/sysreport'):
|
||||
+ exe = '/usr/bin/sysreport'
|
||||
else:
|
||||
raise RuntimeError("Can't find sos/sosreport/sysreport")
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
65
rteval-sysstat-Convert-base64-data-to-text-before-wr.patch
Normal file
65
rteval-sysstat-Convert-base64-data-to-text-before-wr.patch
Normal file
@ -0,0 +1,65 @@
|
||||
From ca90d5aa7ae2ff6dac124c710fceadae028b5f4a Mon Sep 17 00:00:00 2001
|
||||
From: Crystal Wood <crwood@redhat.com>
|
||||
Date: Thu, 20 Jun 2024 21:18:05 -0500
|
||||
Subject: [PATCH 2/3] rteval: sysstat: Convert base64 data to text before
|
||||
wrapping
|
||||
|
||||
As of Python 3, b64encode() returns data, not a string, causing this:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/home/crwood/git/rteval/./rteval-cmd", line 413, in <module>
|
||||
ec = rteval.Measure()
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/home/crwood/git/rteval/rteval/__init__.py", line 246, in Measure
|
||||
self._report(measure_start, self.__rtevcfg.xslt_report)
|
||||
File "/home/crwood/git/rteval/rteval/rtevalReport.py", line 63, in _report
|
||||
self.__xmlreport.AppendXMLnodes(self._measuremods.MakeReport())
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/crwood/git/rteval/rteval/modules/measurement/__init__.py", line 190, in MakeReport
|
||||
mprep_n = mp.MakeReport()
|
||||
^^^^^^^^^^^^^^^
|
||||
File "/home/crwood/git/rteval/rteval/modules/measurement/__init__.py", line 62, in MakeReport
|
||||
rep_n = RtEvalModules.MakeReport(self)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/crwood/git/rteval/rteval/modules/__init__.py", line 559, in MakeReport
|
||||
modrep_n = mod.MakeReport()
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/home/crwood/git/rteval/rteval/modules/measurement/sysstat.py", line 83, in MakeReport
|
||||
data_n = rep_n.newTextChild(None, 'data', "\n"+"\n".join(textwrap.wrap(data, 75))+"\n")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.12/textwrap.py", line 384, in wrap
|
||||
return w.wrap(text)
|
||||
^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.12/textwrap.py", line 356, in wrap
|
||||
chunks = self._split_chunks(text)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.12/textwrap.py", line 342, in _split_chunks
|
||||
text = self._munge_whitespace(text)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib64/python3.12/textwrap.py", line 153, in _munge_whitespace
|
||||
text = text.translate(self.unicode_whitespace_trans)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
TypeError: a bytes-like object is required, not 'dict'
|
||||
|
||||
Signed-off-by: Crystal Wood <crwood@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
rteval/modules/measurement/sysstat.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rteval/modules/measurement/sysstat.py b/rteval/modules/measurement/sysstat.py
|
||||
index 57194a2b5f45..d4646c1646f4 100644
|
||||
--- a/rteval/modules/measurement/sysstat.py
|
||||
+++ b/rteval/modules/measurement/sysstat.py
|
||||
@@ -79,7 +79,7 @@ class sysstat(rtevalModulePrototype):
|
||||
fp = open(self.__datafile, "rb")
|
||||
compr = bz2.BZ2Compressor(9)
|
||||
cmpr = compr.compress(fp.read())
|
||||
- data = base64.b64encode(cmpr + compr.flush())
|
||||
+ data = base64.b64encode(cmpr + compr.flush()).decode('utf-8')
|
||||
data_n = rep_n.newTextChild(None, 'data', "\n"+"\n".join(textwrap.wrap(data, 75))+"\n")
|
||||
data_n.newProp('contents', 'sysstat/sar binary data')
|
||||
data_n.newProp('encoding', 'base64')
|
||||
--
|
||||
2.45.2
|
||||
|
12
rteval.spec
12
rteval.spec
@ -1,6 +1,6 @@
|
||||
Name: rteval
|
||||
Version: 3.8
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Utility to evaluate system suitability for RT Linux
|
||||
|
||||
Group: Development/Tools
|
||||
@ -33,6 +33,8 @@ BuildArch: noarch
|
||||
|
||||
#Patches
|
||||
Patch1: 0001-Updated-rteval-man-page.patch
|
||||
Patch2: rteval-Fix-sysreport-traceback-when-utility-sos-not-.patch
|
||||
Patch3: rteval-sysstat-Convert-base64-data-to-text-before-wr.patch
|
||||
|
||||
%description
|
||||
The rteval script is a utility for measuring various aspects of
|
||||
@ -46,6 +48,8 @@ to the screen.
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
%{__python3} setup.py build
|
||||
@ -67,6 +71,12 @@ to the screen.
|
||||
%{_bindir}/rteval
|
||||
|
||||
%changelog
|
||||
* Mon Jun 24 2024 Anubhav Shelat <ashelat@redhat.com> - 3.8-3
|
||||
- Allow rteval to search /usr/bin/ for sysreport
|
||||
- Convert base64 data to text before wrapping.
|
||||
- Add sysreport to gating tests and check the exit status.
|
||||
Resolves: RHEL-44437
|
||||
|
||||
* Mon Jun 10 2024 Anubhav Shelat <ashelat@redhat.com> - 3.8-2
|
||||
- Updated rteval man page
|
||||
Resolves: RHEL-37634
|
||||
|
@ -17,4 +17,10 @@ if [[ $? != 0 ]]; then
|
||||
exit 2
|
||||
fi
|
||||
|
||||
sudo rteval -s
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
exit 3
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user