| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Trevor Benson <trevor.benson@scality.com>m>
|
|
|
|
| |
Signed-off-by: Trevor Benson <trevor.benson@scality.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Arif Ali <arif.ali@canonical.com>
|
|
|
|
|
|
| |
This commit marks the release of sos-4.4.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
| |
docstring and style adjustments.
Signed-off-by: Trevor Benson <trevor.benson@scality.com>
Signed-off-by: scality-trevorbenson <trevor.benson@scality.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
Int is more intuitive and already used in some plugins (foreman,
python).
Resolves: #2997
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
| |
Closes: #2994
Signed-off-by: Arif Ali <arif.ali@canonical.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Fix two new alerts from `flake8` that appear to have gone unnoticed
until a recent update.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Adds a new test to the networking plugin test to ensure we iterate
correctly over network devices.
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Temuri Doghonadze <temuri dot doghonadze at gmail dot com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
Removes catalog entries from the journal collection for `this` and
`last` boot collections.
Closes: #2132
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Maros Kopec <makopec@redhat.com>
|
|
|
|
|
|
|
|
| |
Using tmt/fmf enable testing on Testing Farm via Packit.
The executed tests are stable BeakrLib tests which were upstreamed for
this purpose.
Signed-off-by: Maros Kopec <makopec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Removes the `runlevel_by_service()` methods from the redhat and suse
policies, as these methods are both outdated (by trying to leverage
`chkconfig`) and entirely unsued.
Further, removes the `LinuxPolicy.default_runlevel()` method as it is
similarly unused in sos.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes the `LC_ALL` locale env var used for all command collections
from `C` to `C.UTF-8` which should provide safer/more reliable output
from non-English localizations. This is backed up by PEP-538:
https://peps.python.org/pep-0538/
Closes: #2946
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, there was a small but not impossible situation for a race
condition within `clean`'s handling of symlinks where a symlink name
could be obfuscated differently than what the link's target could be
obfuscated too.
Fix this by handling symlinks separately than the rest of the archive,
like what we do for directory names. When obfuscating files, archives
will now skip over symlinks and yield file names for iteration, rather
than generating and returning full file lists. Once the obfuscation of
"real" files is complete, then separately iterate over symlinks. Since
the file obfuscation also includes file names, this means that link
targets are already known to the mappings and we eliminate the potential
race condition.
Closes: #2852
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
The `namespaces` option was presented to `sos collect`, but was not
actually being passed to nodes.
Fix this, and gate the usage of the option to version 4.3, or the
relevant RHEL backport version like we do for `--container-runtime`.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new `--disable-parsers` option that allows users to selectively
disable parsers for a given execution of `sos clean`.
This may be useful in specific scenarios where obfuscation is not
strictly needed for all the types of data we obfuscate, and where the
user trusts whomever may be receiving the archive for review.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The base `InitSystem` used when systemd is not present (or at least
functional), defaults to returning `True` for all probes, in an effort
to not inadvertantly block service queries.
This works well for most scenarios, however it backfires when checking
for runlevel-analogous systemd targets for items such as the `cantboot`
preset - in that the base `InitSystem` will always enable that preset.
Fix that by allowing calls to `InitSystem.is_running()` to specify a
default value to return, instead of blindly always returning `True`.
Similarly, update the preset check to default to `False` to avoid
improperly enabling that preset when systemd is unavailable.
Closes: #2913
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|