aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [cirrus] Update Fedora images used in CI testsJake Hunsaker2022-08-314-13/+9
| | | | | | | | The Fedora 36 image is now available on GCP, so update our testing matrix to use it. Accordingly, this means we no longer need to build or maintain our own Fedora images going forward. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [policies] Add Anolis OS policymahailiang2022-08-311-0/+46
| | | | Signed-off-by: mahailiang <mahailiang@uniontech.com>
* add crio plugin support for CosVarsha Teratipally2022-08-313-3/+31
| | | | Signed-off-by: Varsha Teratipally <teratipally@google.com>
* add support for logs, kdump, release in CosPluginVarsha Teratipally2022-08-303-5/+36
| | | | Signed-off-by: Varsha Teratipally <teratipally@google.com>
* [mysql] Capture mysqlrouter config and logsJake Hunsaker2022-08-301-5/+11
| | | | | | | | | Adds collection of mysqlrouter config and log files to the `mysql` plugin. Closes: #2987 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [cirrus] Use built packages for testing tasksJake Hunsaker2022-08-291-59/+74
| | | | | | | Updates our testing posture with Cirrus to use the generated sos packages from early tasks in the later stageone and stagetwo tasks. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [tests] Allow test suite to use locally installed sosJake Hunsaker2022-08-292-5/+10
| | | | | | | | | | | | | | | Up until now, the test suite was forced to be run using the git checkout. While this is useful for on-the-fly testing, it does miss an important use case of building a test package from the checkout, and running it using that as the system installation of sos. This commit allows the use of an installed version of sos to test against. This may be leveraged by adding `-p TESTLOCAL=true` in the `avocado run` command used to launch the test suite. Setting this parameter to any other value, or omitting it entirely, will continue the current behavior or using the git checkout for running tests. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [elastic] Add the command output for /_cat/indicesscality-trevorbenson2022-08-291-1/+2
| | | | Signed-off-by: Trevor Benson <trevor.benson@scality.com>m>
* [hpssm] Per array and slot show detail subcommands.scality-trevorbenson2022-08-291-1/+3
| | | | Signed-off-by: Trevor Benson <trevor.benson@scality.com>
* [ceph_mon] Add ceph log CLI commandsPrashant D2022-08-251-1/+3
| | | | | | | | | | | | | | | Add following commands to ceph mon plugin: - Collect ceph cluster log for 'cluster' channel ceph log last 10000 debug cluster - Collect ceph cluster log for 'audit' channel ceph log last 10000 debug audit NOTE: Here number 10000 is default value of mon_log_max ceph config variable. Signed-off-by: Prashant D <pdhange@redhat.com>
* [boot] run lsinitramfs for /boot/initrd.img-* filesMauricio Faria de Oliveira2022-08-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the boot plugin captures `lsinitrd` for `/boot/initr*.img`, which doesn't help on Debian/Ubuntu with template `/boot/initrd.img-*`. Well, there is a `[/boot]/initrd.img` symlink to the current kernel, but then `lsinitrd` isn't installed by default, just `lsinitramfs`. (Note: the symlink might be in /, /boot, or both, and even point to different files, depending on the distro and release upgrades.) Let's expand the glob (backward compatible, see 'initrd.img' in test) and run `lsinitramfs -l` (goes back to good and _old_ Ubuntu 14.04), to improve the plugin on other distros. $ lsinitrd Command 'lsinitrd' not found, but can be installed with: sudo apt install dracut-core $ dpkg -S $(which lsinitramfs) initramfs-tools-core: /usr/bin/lsinitramfs Test steps: $ sudo ./bin/sos report --batch --quiet -o boot $ sudo ./bin/sos report --batch --quiet -o boot \ -k boot.all-images=on Before: $ sudo tar tf /tmp/sosreport-*.tar.xz | grep lsinitramfs $ After: $ sudo tar tf /tmp/sosreport-*.tar.xz | grep lsinitramfs .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img After (boot.all-images=on): $ sudo tar tf /tmp/sosreport-*.tar.xz | grep lsinitramfs .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img-5.15.0-41-... .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img-5.15.0-43-... .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img.old The contents of `lsinitramfs_-l_.boot.initrd.img-*` are correct. And they include 'modprobe.d/*.conf' files: # tar xf /tmp/sosreport-*.tar.xz # grep -ch '/modprobe\.d/.*\.conf' \ sosreport-*/sos_commands/boot/lsinitramfs* 19 19 19 19 Checking `lsinitramfs -l` option on Ubuntu 14.04: $ lsb_release -cs trusty $ man lsinitramfs | grep -w -- -l -l Display long and more verbose listing of initramfs... And an example of a release upgrade leftover, a broken symlink: # cat sosreport-*/sos_commands/boot/ls_-l_.initrd.img_.boot.initrd.img ... Aug 12 10:02 /boot/initrd.img -> initrd.img-5.15.0-46-generic ... Jan 1 2020 /initrd.img -> boot/initrd.img-5.0.0-37-generic # head -n1 sosreport-*/sos_commands/boot/lsinitramfs* ==> .../sos_commands/boot/lsinitramfs_-l_.boot.initrd.img <== drwxr-xr-x 3 root root 0 Dec 17 2019 . ==> .../sos_commands/boot/lsinitramfs_-l_.initrd.img <== /usr/bin/unmkinitramfs: 64: cannot open /initrd.img: No such file Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
* [kernel] copy modprobe.d/*.conf from other possible locationsMauricio Faria de Oliveira2022-08-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There might be module configuration files (modprobe.d/*.conf) not only in /etc, but also in /lib, /run, and /usr/local/lib, per modprobe.d(5) [1]. Let's copy those too. P.S.: /lib is correct for distros with distinct /usr/lib too (checked on Ubuntu 14.04/16.04/18.04 and 20.04/22.04). [1] https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/tree/man/ modprobe.d.xml?h=v30#n42 Test steps: $ for dir in /etc /lib /run /usr/local/lib do dir=$dir/modprobe.d sudo mkdir -p $dir sudo touch $dir/test.conf done $ sudo ./bin/sos report -o kernel --batch --quiet $ sudo tar tf /tmp/sosreport-*.tar.xz \ | grep -o '/.*/modprobe.d/test.conf' $ sudo rm -f /tmp/sosreport-* $ for dir in /etc /lib /run /usr/local/lib do sudo rm -f $dir/modprobe.d/test.conf done Before: $ sudo tar tf /tmp/sosreport-*.tar.xz \ | grep -o '/.*/modprobe.d/test.conf' /etc/modprobe.d/test.conf After: $ sudo tar tf /tmp/sosreport-*.tar.xz \ | grep -o '/.*/modprobe.d/test.conf' /etc/modprobe.d/test.conf /run/modprobe.d/test.conf /usr/lib/modprobe.d/test.conf /usr/local/lib/modprobe.d/test.conf Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
* [testing] Test building of snapArif Ali2022-08-171-0/+19
| | | | Signed-off-by: Arif Ali <arif.ali@canonical.com>
* [build] Bump version to sos-4.44.4Jake Hunsaker2022-08-153-4/+10
| | | | | | This commit marks the release of sos-4.4. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [snap] Further fixes in snapcraft.yaml for build and runArif Ali2022-08-151-3/+5
| | | | | | | | * Previous commit for dist was wrong, and required site-packages instead * sos report was unablt to run in bionic, and required python3-magic as dependancy Signed-off-by: Arif Ali <arif.ali@canonical.com>
* Update hpssm.py to work on all enumerated controllers. Including new ↵scality-trevorbenson2022-08-151-10/+45
| | | | | | | docstring and style adjustments. Signed-off-by: Trevor Benson <trevor.benson@scality.com> Signed-off-by: scality-trevorbenson <trevor.benson@scality.com>
* [ceph_mgr] Add orchestrator CLI commandsJose Castillo2022-08-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the following commands to the Ceph Manager plugin: - To list hosts: ceph orch host ls - To list devices on a host: ceph orch device ls - To check the curent specification file/List services known to orchestrator: ceph orch ls --export - To list daemons known to orchestrator: ceph orch ps - To check the configured backend and its status: ceph orch status --detail - To check service versions vs available and target containers: ceph orch upgrade status - To see the recent activities/log from cephadm: ceph log last cephadm Resolves: RHBZ#2116602 Signed-off-by: Jose Castillo <jcastillo@redhat.com>
* [stratis] Update plugin commands for 3.xBryn M. Reeves2022-08-111-1/+3
| | | | | | | | | Update the stratis plugin commands to unclude stopped pools, the stopped pools and managed object reports, and remove the collection of the daemon redundancy command which is no longer supported. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [teamd,tests] Add a test for teamd plugin and device enumerationJake Hunsaker2022-08-102-5/+61
| | | | | | | | | | | | | Adds a new test case for the `teamd` plugin that also inherently acts to test team device enumeration. Included with this test case is an addition to the base test classes that allows for tests to define a `post_test_tear_down()` method that will be run at the end of each test execution to allow for manual cleanup - in this case deleting a 'fake' team device created for the test. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [policies] ensure Policy.dist_version returns int and not strPavel Moravec2022-08-092-3/+3
| | | | | | | | | Int is more intuitive and already used in some plugins (foreman, python). Resolves: #2997 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [snap] Update snapcraft.yaml to fix PYTHONPATHArif Ali2022-08-081-3/+3
| | | | | Closes: #2994 Signed-off-by: Arif Ali <arif.ali@canonical.com>
* [nvme]: Update nvme plugin to collect nvme logsmamatha2022-08-041-1/+1
| | | | | | | | This patch is to update nvme plugin to collect /dev/nvme data Signed-off-by: Mamatha Inamdar <mamatha4@linux.vnet.ibm.com> Tested-by: Borislav Stoymirski <borislav.stoymirski@bg.ibm.com>
* [auditd] Capture log files when configured to a non default locationJose Castillo2022-08-021-2/+16
| | | | | | | | | | The location of the audit.log files can be changed in the configuration file /etc/audit/audit.conf. This change ensures that we capture the log files when the user specifies a different location via log_file. Signed-off-by: Jose Castillo <jcastillo@redhat.com>
* [Plugin] Don't log content of captured stringsJake Hunsaker2022-08-011-15/+4
| | | | | | | | | Stop logging the contents of strings added via `add_string_as_file()`. This can ultimately be used via sizelimiting mechanisms, which means we effectively are writing the entire sizelimited content twice, which can make the logs needlessly bloated and harder to quickly navigate. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [flake8] Fix new style alertsJake Hunsaker2022-08-012-2/+2
| | | | | | | Fix two new alerts from `flake8` that appear to have gone unnoticed until a recent update. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [collect] Standardize use of `exit()`Jake Hunsaker2022-07-291-46/+65
| | | | | | | | | | | | | | | | | | There were multiple exit paths and behaviors within sos collect, that were not the easiest to logically follow. Fix this by standardizing on leveraging `self.exit()` to exit in all situations. If a message is provided to this call, it is regarded as an error message and logged as such. This method will still set the exit code according to the `error` parameter, however that has been changed to default to 0 to signify a "clean" end of execution. Finally, there is a new `force` parameter which is meant to be used when exiting from within a child thread when the entire process needs to exit (and thus needs to leverage the lower-level `os._exit()` instead). Closes: #2882 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [python] Update version-dependent command for installed versionJake Hunsaker2022-07-281-3/+17
| | | | | | | | | | Updates the python plugin to use `python3` for Ubuntu and Debian distributions, and locks the use of `platform-python` to RHEL 8 as RHEL 9 does not continue to use of this interpreter executable. Closes: #2502 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [redhat] Simplify `dist_version()` logicJake Hunsaker2022-07-281-10/+4
| | | | | | | | | | | | | | Simplifies the logic in `dist_version()` to just return the major version of the `redhat-release` package. This will not only remove a requirement to update this check for new major version releases, but also makes the call meaningful on RH-family distros aside from RHEL, such as Fedora. Note that this may fail on RHEL 5, but that is not a valid concern as RHEL 5 does not support python3 and thus should never be in a situation where sos-4.x+ is installed on such a system. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [openstack] Ensure memcache_secret_key is maskedTakashi Kajinami2022-07-279-7/+22
| | | | | | | | The memcache_secret_key parameter from the keystonemiddleware library takes the secret key used to encrypt data stored in memcache, so it is considered as sensitive information. Signed-off-by: Takashi Kajinami <tkajinam@redhat.com>
* [tests] Update networking test in suiteJake Hunsaker2022-07-251-0/+7
| | | | | Adds a new test to the networking plugin test to ensure we iterate correctly over network devices.
* [NetworkManager] Update plugin to use add_device_cmd()Jake Hunsaker2022-07-251-9/+3
| | | | | | | Updates the plugin to use `add_device_cmd()` for the iteration of `nmcli dev` commands, rather than enumerating them directly within the plugin. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [teamd] Update teamd plugin to use add_device_cmd()Jake Hunsaker2022-07-251-20/+8
| | | | | | | | | Updates the plugin to use `add_device_cmd()`, leveraging the list of team devices discovered during intialization, rather than discovering them in the plugin (which seemed to be outdated/broken for at least a few newer versions of Fedora). Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [networking] Update plugin to use `add_device_cmd()` for device iterationJake Hunsaker2022-07-251-42/+29
| | | | | | | | | Updates the `networking` plugin to leverage `add_device_cmd()` for various command collections, like ethtool, against discovered ethernet devices so that the plugin does not have to directly discover/validate these devices. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [Plugin] Allow add_device_cmd() to handle `subdir` parameterJake Hunsaker2022-07-251-4/+9
| | | | | | | | | Previously, `add_device_cmd()` did not support the `subdir` parameter which is used to place command output into a subdir within the calling plugin's own directory. Fix this by allowing this parameter to be passed on to the eventual `add_cmd_output()` call. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [report] Add network device enumerationJake Hunsaker2022-07-251-8/+137
| | | | | | | | | | | | | | | | | | | Adds network device enumeration to the generated `devices` dict that gets handed to plugins, and used for iteration by `add_device_cmd()`. For the moment, this enumeration is limited to ethernet and bridge devices, though this is expected to be expanded on later. These devices are added to the top-level `network` element within the `devices` dict, so both can be referenced at once using that key. Additionally, namespaced network interfaces are added under a `namespaced_network` key, which contains sub-dicts for each namespace which in turn contain ethernet device lists. Note that these namespaced device lists must be referenced specifically rather than via their key strings, and this is done to avoid overlapping namespaced devices with non-namespaced devices. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [openstack_aodh] Mask more sensitive valuesTakashi Kajinami2022-07-251-18/+21
| | | | | | | This change ensures a few more sensitive values are masked when gathering the config file for the Aodh service. Signed-off-by: Takashi Kajinami <tkajinam@redhat.com>
* Georgian translationNorwayFun2022-07-251-35/+37
| | | | Signed-off-by: Temuri Doghonadze <temuri dot doghonadze at gmail dot com>
* [logging] Safeguard against attempting to log non-UTF charactersJake Hunsaker2022-07-212-1/+6
| | | | | | | | | | | | | | The `logging` module does not support non UTF-8 characters, and as such there was an exception being thrown when trying to log for example a copied file that has such characters in the file name. Safeguard against this by converting all messages logged via `Plugin._format_msg()` to UTF-8, and replace any problematic characters with `?`s to attempt to preserve context within the logs. Closes: #2790 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [Plugin] Refactor add_blockdev_cmd into add_device_cmdJake Hunsaker2022-07-208-51/+106
| | | | | | | | | | | | | | | | | | | | | | | | Initially, the design behind `add_blockdev_cmd()` made the assumption that there would (eventually) be separate methods for different kinds of devices. On review, this is less practical and less maintainable than a single method, `add_device_cmd()` paired with improved functionality for handling device lists. As such, rework `add_blockdev_cmd()` into `add_device_cmd()` and with it, change the logic on how device lists are sourced. The `devices` dict handed to plugins now has a top-level separation between device types, in this revision putting `block` and `fibre` devices under `storage` in the `devices` dict. In using `add_device_cmd()`, plugins may now specify either `block`, `fibre`, or `storage` for both. In addition, any devices passed via the `devices` parameter that aren't keys in the devices dict are returned, meaning a plugin may specify a list of devices and add `storage` to include all storage devices for command iteration. This change should allow easier addition of network device iteration. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [report] Fix loop devices data gatheringJose Castillo2022-07-191-1/+13
| | | | | | | | | | | | | | | | | | | | | When we run parted command on detached loop devices, some error messages are printed in the kernel ring buffer, like: [ +10.838245] blk_update_request: I/O error, dev loop0, sector 0 op 0x1: (WRITE) flags 0x800 phys_seg 0 prio class 0 Warning: Error fsyncing/closing /dev/loop0: Input/output error These error messages are printed as well when parted gets run while collecting sosreport. This patch solves the problem by removing detached devices from the list returned from get_block_devs(). Fixes: RHBZ#2010735 Signed-off-by: Jose Castillo <jcastillo@redhat.com>
* [openvswitch] Extend package version patternDavid Marchand2022-07-191-1/+1
| | | | | | | | | | | | The next OVS release will be numbered 3.0. In a near future, the Red Hat Fast Datapath channel will provide packages versionned in a same manner. While at it, OVS release major number may change again in the future. Use a pattern matching from OVS 2.x up to OVS 9.x. We should be fine for a while :-). Signed-off-by: David Marchand <david.marchand@redhat.com>
* [ovn_central] Query ovn-northd status with ovn-appctlTrent Lloyd2022-07-191-8/+11
| | | | | | | | This will tell us both if it is currently active or standby but also this command has been seen to hang/timeout if ovn-northd is in a bad state which was not otherwise obvious. Signed-off-by: Trent Lloyd <trent.lloyd@canonical.com>
* [cirrus] Update GCE testing imagesJake Hunsaker2022-07-191-9/+12
| | | | | | | | Updates the images for Fedora to use the stock images on GCE, the CentOS Stream images to their latest release, and the Ubuntu images to test on the latest 22.04 LTS release. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [clean] Don't re-create regex for parsers on every skip checkJake Hunsaker2022-07-192-4/+13
| | | | | | | | | | | | | When determining if a parser should be skipped for a given file, we were previously doing so ineffeciently by regenerating the regex object for every file from the parser's `skip_files` class attr. Instead, during parser initialization, use those string definitions to create a list of regex objects to be used directly by the skip file checks. This way, we only generate the regex objects once for each parser for the entire run. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [clean,IP Parser] Skip obvious version files for the IP parserJake Hunsaker2022-07-195-2/+71
| | | | | | | | | | | For files that can be considered obvious version files - those that end specifically with either `version` or `version.txt` - skip processing via the IP parser, as this may lead to improper obfuscation of certain version strings. This is also applied to files ending in `release`. Closes: #2962 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [insights] Collect /var/lib/insightsJake Hunsaker2022-07-062-2/+14
| | | | | | | | | | | Adds collection of `/var/lib/insights` to the `insights` plugin. There is an `.egg` in this location but rather than individually skipping it, add a global forbidden path on all eggs. Related: RHBZ#2103233 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [logs] Drop catalog from `this` and `last` bootJake Hunsaker2022-07-062-3/+3
| | | | | | | | | Removes catalog entries from the journal collection for `this` and `last` boot collections. Closes: #2132 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [tests] Increase default timeoutJake Hunsaker2022-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | For our CI tests, CPU resources are not guaranteed which in turn can cause longer-than-expected run times for test executions. In practice, this is only seen occasionally but it requires manual intervention when the timeouts are hit (and thus far it has been seen that the changes these timeouts are hit on are not actually causing the timeouts). Previous conversations have revolved around improving test efficiency, however this seems unlikely given the nature of some of the test setup and further, even with the most efficienct approach possible we would still be at the whim of resource availability. As such, increase the default timeout to account for this resource consideration. Closes: #2700 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [PackageManager] Make pkg_by_name() more predictableJake Hunsaker2022-06-287-37/+28
| | | | | | | | | | | | | | | | | | | | As highlighted in #1817, `pkg_by_name()` could provide unpredictable results, when using wildcards. As such, limited this method to only returning package info for exact package name matches. In turn, change `Plugin.is_installed()` to leverage `PackageManager.all_pkgs_by_name()` which does explicitly support wildcards and returns information on _all_ matching packages, not just the last one found. In so doing, clean up the `PackageManager` design to use a new `packages` property for these lookups, and update the former usage of `all_pkgs()` accordingly. Similarly, signal `get_pkg_list()` should be private (in any sense that a python method can be) by renaming to `_get_pkg_list()` and update the single Plugin (`etcd`) referencing this method. Closes: #1817 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* General data do main.fmfMaros Kopec2022-06-282-6/+9
| | | | Signed-off-by: Maros Kopec <makopec@redhat.com>