| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Add a new plugin to retrieve an oVirt engine database backup.
Resolves: #1977
Signed-off-by: Miguel Martin <mmartinv@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default, plugins will now capture service status information from the
init system for any services defined in the plugin's `services` member,
provided that that service actually exists on the system.
This is done by calling a new method, `add_default_collections()` before
we call `Plugin.setup()` for each plugin. This will allow us to more
easily extend default collection behaviors going forward.
Resolves: #1965
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enabled by presence of /etc/sos.extras.d/ directory, the plugin will
execute all commands from all files in the directory, in order to
collect extra user-defined data e.g. specific for a given system
or product (or not yet being collected by sosreport otherwise).
Empty lines or lines starting by '#' are ignored.
Files or file patterns to be collected must be preceded by ':' ,
optionally followed by sizelimit. Examples:
:/path/to/file
:/path/to/files* sizelimit
Other lines are treated as commands to execute, with output stored under
sos_commands/sos_extras/<filename>/<command>
directory.
Resolves: #1663
Resolves: #1788
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Validation Framework provides an overview of deployed services.
For now, this Framework is linked to OpenStack and TripleO[1], but since
it might be used by other products, it's probably better to get a generic
name.
Resolves: #1970
Signed-off-by: Cédric Jeanneret <cjeanner@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Adding commands which collects smart proxies
details.
Closes: #1972
Signed-off-by: Jan Jansky <jjansky@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We no longer have to workaround an odd LXD/Travis interaction
so make simple.sh not treat Travis special.
Closes: #1921
Resolves: #1983
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Add a new plugin for collecting information about console and keyboard
including the status of console and Scroll Lock flag.
Resolves: #1981
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit d334c5dedbcf ("[sar] Fix the parameter specified in
add_copy_spec() to wildcard") appended the wildcard to the sa_path.
But since it is passed to os.listdir() as is, the following warning
is printed and later commands are not collected.
[plugin:sar] sar: could not list /var/log/sa/*
Resolves: #1978
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
On RHEL 8, modules and contexts are not in /etc/selinux/<policy>
directory anymore, but in /var/lib/selinux/<policy> directory.
Resolves: #1976
Signed-off-by: Renaud Métrich <rmetrich@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Removes the check_enablement() override for this plugin and replaces it
with the new architecture enablement check.
Closes: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Replaces the check_enablement() override with the standard package
check, and the new arch check functionality.
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
From support team feedback, power systems may not have useful pci
information. Now, gate `lspci` command collection behind the presence of
bus directories under /proc/bus/pci.
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plugins may now set an 'architectures' tuple when instantiating a Plugin
to restrict that plugin from enabling only on those architectures
provided any other enablement checks pass as well.
By default, a plugin is considered to be runnable on any architecture.
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extends SoSPredicate to allow for 'negative' presence checks, e.g. a
package is _not_ installed or a system is _not_ of a specified list of
architectures.
This is done by setting the relevant test in the 'required' dict handed
to SoSPredicate instances to be set to 'none' (the string, not the
NoneType).
For example, in order to run a command provided that a particular
service is not running, the following predicate would be used:
SoSPredicate(self, services='foobar', required={'services':
'none'})
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extends `SoSPredicate()` so that plugins may test for being run on
specific architectures.
This predicate test only really supports the 'any' test as a system can
only have one architecture, so the use of an 'all' predicate test does
not make sense.
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a command is not found on the system, sos traditionally will handle
that failed call by simply not writing any output to the archive.
However, if the command was given a suggested_filename or a root_symlink
parameter in the `add_cmd_output()` call, we would end up writing an
empty file to the archive.
Now, we will re-check the status of the command attempt after the chroot
check (and possible re-run) is done, and if the command "still" is not
found, exit immediately to avoid the empty writes.
Related: #1975
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The content of lxd database is rarely useful unless DB corruption
and can get very large.
This can be run manually if needed (outside sosreport)
lxd.buginfo command only available via SNAP installation,
would have the advantage of not needing updates whenever
lxd upstream add a new feature or find something new
that’s worth capturing.
LXD upstream reference:
https://discuss.linuxcontainers.org/t/what-lxd-information-should-be-collected-by-sosreport
https://github.com/lxc/lxd-pkg-snap/issues/14
Resolves: #1982
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
|
|
|
|
|
|
|
| |
Resolves: #1966
Signed-off-by: William Bradford Clark <wclark@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
| |
Resolves: #1958
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Various unit test source files in tests/ have unnecessary shell
"shebang" notation specifying a particular Python interpereter.
Since these files are executed under the test suite runner there
is no need for them to include these lines.
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
| |
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
| |
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Use a byte string instead of a regular string.
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Use the executable 'true' when testing is_executable() on a
non-absolute path.
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PATH has been controlled by policy for some time. This is
also used in the test suite which for performance reasons will
often instantiate an abstract policy like LinuxPolicy to avoid
costly repeat initialisation. Historically this has meant that
the policy was set up with an empty PATH environment variable.
This causes problems if the test suite attempts to resolve
executable names via PATH (e.g. to test the is_executable() fn).
Related: #1949
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixing pattern from using * to .* and also adding
$ on end of each namespace.
For example:
if you have namespaces
test1 test11 test2 test3 test333 and will use
-k networking.namespace_pattern="test3 test1*"
pattern will result as (?:test3$|test1.*$) and
only test3, test1 and test11 will be used.
Before this fix with same namespaces as
above and same input parameter pattern will
result as (?:test3|test1*)
because of * instead of .* also test2 will be
used and because of mising $ also test333
will be used.
Input parameter using same syntax as before
"ens* eth* test1 test5", * is wildcard in this
case.
Resolves: #1961
Signed-off-by: Jan Jansky <jjansky@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Adds manage entries for the various --upload options added as part of
the previous patches adding upload functionality.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Previously if `--case-id` was specific, and a user provided a blank
input for the case-id prompt (when `--batch` isn't used), this would
override the case id to be blank.
Now we properly default to `--caseid` if it is provided if a user
doesn't provide it again for the actual prompt.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
| |
This commit adds the needed bits to allow sos users on Ubuntu systems to
upload to the Canonical Support File Server as part of PR #1911.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds the ability to the Red Hat policy for users to upload archives
directly to existing technical support cases on the Red Hat Customer
Portal.
If a case number is provided, uploading to the case is the
preferred/default option the policy will take. If `--upload-user` is not
provided, users will be prompted for one as well as the password for the
Customer Portal account. Note that Red Hat's case management API
requires that the user credentials provided here have access to the case
number referenced on the Customer Portal.
If a case number is not provided, or if one is provided but Customer
Portal credentials are not provided, the policy will fallback to using
the public dropbox location for upload.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
Adds connection and authentication defaults to the Red Hat policy to use
the publicly available dropbox that Red Hat Global Support Services
makes available for support cases.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds the option to automatically upload a generated sosreport archive to
a provided location such as HTTPS or FTP servers.
Using --upload will use policy-defined defaults (if available) to upload
to a specific vendor's defined location.
Otherwise, users may supply --upload-url, --upload-directory,
--upload-user, and --upload-pass to specify a custom location/server,
directory on that server, and authentication credentials.
Resolves: #1911
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Following the upstream DNF commit below, the "yum -C repolist" command
output will no longer include package count information:
c4f57476 Do not load metadata for repolist commands...
This information is helpful for those searching for client-side
mismatches to upstream repositories. Such as in the case of two
repositories, where one is missing content that another includes, this
information can be crucial for determinining the source of the problem.
This change includes a "yum -C repolist --verbose" command in the
resulting sosreport which includes information such as the following:
Repo-id : <repoid>
Repo-name : <full reponame>
Repo-revision : <version>
Repo-updated : <datestamp>
Repo-pkgs : <total repo package count>
Repo-available-pkgs: <package count>
Repo-size : <size>
Repo-baseurl : <url>
Repo-expire : <datestamp>
Repo-filename : <path>
Resolves: #1951
Signed-off-by: Kyle Walker <kwalker@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If file/folder will be present during file list creation, but will be
missing during collection OSError will throw exception
FileNotFoundError: [Errno 2] No such file or directory
Added handling of OSError into sos/archive.py and new log message with
info level to sos_logs/sos.log
Resolves: #1890
Signed-off-by: Jan Jansky <jjansky@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Commit e51d3e6 caused some commands are called but not further
stored in an sosreport archive. This fixes that regression.
Related: #1923
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Collect and store both maps and progs list in both human readable
and JSON formats.
Resolves: #1923
Suggested-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Nokia Nuage has forked upstream OVS but basically, the same
commands should work. When a server is having nuage-ovs installed,
we don't execute the ovs plugin because it doesn't detect the
package.
Signed-off-by: David Vallee Delisle <dvd@redhat.com>
Resolves: #1933
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 285873a introduces a regression in the performance of
LinuxProfile class initialisation:
commit 285873a4f753822a88d475a1b030ab622bf4c72e
Author: Bryan Quigley <bryan.quigley@canonical.com>
Date: Tue Feb 11 15:03:16 2020 -0800
[policies] Detect systemd use instead of hardcoding it
All the patch does is to switch from testing self.init to
determine whether to use the SystemdInit() class or the
basic InitSystem() one, to looking for '/run/systemd/system'
in the file system.
This has more broad side effects than it might seem since
the test suite uses LinuxPolicy() as a mock policy object
for a large number of tests. Since SystemdInit() calls out
to systemctl to obtain the state of the init system this
both increases the run time for the tests and causes high
resource use in systemd itself:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 177196 13504 4512 R 92.7 0.1 5:24.04 systemd
This causes the run time for the Python2 and 3 test suite
(plus pep8/pycodestyle) to grow from ~5s to over 1m20s on
my test system:
285873a~1 real 0m5.683s
285873a real 1m20.353s
Allow direct users of LinuxPolicy to override the init
system detection by specifying an init= kwarg initialised
to an InitSystem-like object directly, and use this in the
test suite to avoid the cost of initialising the full
SystemdInit() class.
Resolves: #1953
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plugin does not set a class level docstring, causing it to
dump the Plugin base-class documentation into --list-plugins:
ebpf inactive This is the base class for
sosreport plugins. Plugins should subclass this and set the
class variables where applicable.
[...]
Related: #1952
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plugin does not set a class level docstring, causing it to
dump the Plugin base-class documentation into --list-plugins:
convert2rhel inactive This is the base class for
sosreport plugins. Plugins should subclass this and set the
class variables where applicable.
[...]
Closes: #1952
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Resolves: #1948
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
* Use a PEP8-style class naming
* Don't pass a list for a single add_copy_spec()
* Use a list for multiple commands w/add_cmd_output()
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This plugin groups all bpftool commands from
plugins kernel and networking, and adds a new
one command 'bpftool cgroup tree', as requested
by rhbz#1787586.
Resolves: #1907
Related: RHBZ#1787586
Signed-off-by: Jose Castillo <jose.mfcastillo@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Add a new plugin for the firmware update daemon.
Resolves: #1832
Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Exits that trap to the SystemExit handler in SoSReport.execute()
re-set the exit code passed returned by the process. Catch the
exception as 'e' and use e.code to pass on the correct value.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lsinitramfs is more likely to be installed and useful.
lsinitramfs -> initramfs-tools-core (main) -> Canonical maintain
lsinitrd -> dracut-core (universe) -> Community maintain
Also adding the '-l' argument to display long and more verbose
listing of initramfs content.
Resolves: #1942
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ceph has been focusing on administrator quality of life in the latest
releases. There are a number of shiny new tools/reports available that
should be captured to help troubleshooting ceph clusters.
This is a first pass at updating the ceph plug-in to bring it inline
with upstream changes.
This fix also addresses several inconsistencies in reports that were
captured between mon/mgr/mds/osd/radosgw services.
Further improvements are possible here, but I recommend splitting up
the ceph plug-in into service-specific modules. See Issue #1945.
Resolves: #1947
Signed-off-by: Dan Hill daniel.hill@canonical.com
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
|
|
|
|
|
|
|
|
|
|
| |
$ dpkg -S /etc/gdm3
gdm3: /etc/gdm3
Resolves: #1939
Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com>
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the current plugin is having issues when we run sosreport
on a juju controller we have decided to refactor it and make
it simpler.
We had some discussions following three separate PRs:
https://github.com/sosreport/sos/pull/1670
https://github.com/sosreport/sos/pull/1671
https://github.com/sosreport/sos/pull/1672
We decided not to gather mongodb dumps as it will leak the
password from mongodb when running `ps`.
We decided to drop the output from juju commands as this
requires the command to be run as the user that holds the juju
credentials.
This plugin will gather logs from `/var/log/juju/*.log` and agent
configuration files from `/var/lib/juju/agents/*/agent.conf`, as
well as systemd logs related to the agents.
If sosreport is run with `--all-logs` it will gather all of the above
as well as all the files from `/var/lib/juju/` and `/var/log/juju`.
Closes: #1653
Resolves: #1935
Co-authored-by: David Negreira david.negreira@canonical.com
Co-authored-by: Nick Niehoff nick.niehoff@canonical.com
Signed-off-by: David Negreira david.negreira@canonical.com
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
|