Bug 1906337

Summary: "sos collect --help" should warn it is unavailable when python3-pyexpect package missing
Product: Red Hat Enterprise Linux 8 Reporter: Pavel Moravec <pmoravec>
Component: sosAssignee: Pavel Moravec <pmoravec>
Status: CLOSED ERRATA QA Contact: Miroslav HradĂ­lek <mhradile>
Severity: medium Docs Contact:
Priority: medium    
Version: ---CC: agk, bmr, mhradile, plambri, sbradley, theute
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: sos-4.1-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 19:36:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pavel Moravec 2020-12-10 09:59:01 UTC
Description of problem:
sos collect functionality is available only when Recommended python3-pyexpect package is present. When the package is missing, sos tool should warn on all applicable places that sos-collect functionality is unavailable.

We do so when calling:
sos --help
sos collect .. (real args)

but we dont do so when calling "sos collect --help".

Let add a warning at least like:

# python3 bin/sos --help
usage: sos <component> [options]

Available components:
    report, rep                   Collect files and command output in an archive
	    clean, cleaner, mask          Obfuscate sensitive networking information in a report
    collect                       (unavailable) Collect an sos report from multiple nodes
..


Version-Release number of selected component (if applicable):
sos-4.0-2


How reproducible:
100%


Steps to Reproduce:
dnf remove python3-pyexpect -y
sos collect --help


Actual results:
No warning the subcommand is unavailable.


Expected results:
A warning or a notice about the unavailability.


Additional info:

Comment 1 Pavel Moravec 2021-04-28 20:14:26 UTC
I can confirm it is fixed:

With python3-pexpect package removed:

# sos collect --help
usage: sos collect [options]

optional arguments:
  -h, --help            show this help message and exit

Global Options:
  --batch               Do not prompt interactively
  --config-file CONFIG_FILE
                        specify alternate configuration file
  --debug               enable interactive debugging using the python debugger
  -q, --quiet           only print fatal errors
  -s SYSROOT, --sysroot SYSROOT
                        system rootdir path (default='/')
  --tmp-dir TMP_DIR     specify alternate temporary directory
  -t THREADS, --threads THREADS
                        Number of threads to use
  -v, --verbose         increase verbosity
  -z {auto,gzip,xz}, --compression-type {auto,gzip,xz}
                        compression technology to use
  --encrypt-key ENCRYPT_KEY
                        Encrypt the archive using a GPG key-pair
  --encrypt-pass ENCRYPT_PASS
                        Encrypt the archive using a password

WARNING: `collect` is not available with this installation! Please install the
python3-pexpect package for your distribution in order to enable this function
#

Comment 5 errata-xmlrpc 2021-11-09 19:36:07 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (sos bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2021:4388