| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a services member to facilitate plugin enablement. This is tied to
a new InitSystem class that gets attached to policies. The InitSystem
class is used to determine services that are present on the system and
what those service statuses currently are (e.g. enabled/disable).
Plugins can now specify a set of services to enable the plugin on if
that service exists on the system, similar to the file, command, and
package checks.
Additionally, the Plugin class now has methods to check on service
states, and make decisions based off of. For example:
def setup(self):
if self.is_service('foobar'):
self.add_cmd_output('barfoo')
Currently, only systemd has actual functionality for this. The base
InitSystem inherited by policies by default will always return False for
service checks, thus resulting in the same behavior as before this
change.
The Red Hat family of distributions has been set to systemd, as all
current versions of those distributions use systemd.
Closes: #83
Resolves: #1387
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
oVirt Node is a small scaled down version used for hosting virtual
machines. The plugin collects node specific information like
upgrade log, the layer structure etc.
Resolves: #1381
Signed-off-by: Nijin Ashok nashok@redhat.com
Signed-off-by: Bryn M. Reeves bmr@redhat.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 'multipath -t' command prints the internal hardware table
of device-mapper-multipath. These are the true, hard-coded
defaults that multipath will follow if no other configuration
is set. The hardware table is specific to the
device-mapper-multipath version that is in use, so it is subject
to change across release, making it difficult to track. Prior to
the -t flag creation, the user would have to check the source
package or /usr/share/doc/device-mapper-multipath for the table.
The output is needed as a piece of the puzzle in how the
'multipathd show config' command presents the current, running
configuration (it uses the .conf and the hardware table). This
makes it very useful in troubleshooting activities.
Resolves: #1379
Signed-off-by: John Pittman <jpittman@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 'multipath -l' command, per the man page, shows the topology as
'fetched in sysfs and the device mapper' and 'multipath -ll' shows
the topology from 'all available information'. The '-ll' option,
among other things, includes useful items such as prio values and
path checkers, without adding much more verbosity. For example,
prio value ommission seen below:
|-+- policy='service-time 0' prio=0 status=active
| |- 2:0:1:2 sdh 8:112 active undef unknown
| `- 5:0:1:2 sdal 66:80 active undef unknown
`-+- policy='service-time 0' prio=0 status=enabled
|- 2:0:0:2 sdc 8:32 active undef unknown
`- 5:0:0:2 sdag 66:0 active undef unknown
|-+- policy='service-time 0' prio=50 status=active
| |- 2:0:1:2 sdh 8:112 active ready running
| `- 5:0:1:2 sdal 66:80 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 2:0:0:2 sdc 8:32 active ready running
`- 5:0:0:2 sdag 66:0 active ready running
Gather 'multipath -ll' instead of 'multipath -l' as the additional
information adds value without additional verbosity.
Signed-off-by: John Pittman <jpittman@redhat.com>
|
|
|
|
| |
Signed-off-by: Paul Peereboom <paul.peereboom@duo.nl>
|
|
|
|
|
|
|
|
|
| |
Adds collection of stonith and quorum states within the cluster to the
pacemaker plugin. If either of these are not used in a given cluster,
these commands simply report that the resource is not in use so this is
safe to run on all clusters.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
not only *.log ones
Resolves: #1371
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Python os.makedirs() implementation is inadequate for sos's
needs: it will create leading directories given an intended path
destination, but it is not able to reflect cases where some of
the intermediate paths are actually symbolic links.
Replace the use of os.makedirs() with a method that walks over
the path, and either creates directories, or symbolic links (and
their directory target) to better correspond with the content of
the host file system.
This fixes a situation where two plugins can race in the archive,
leading to an exception in the plugin that runs last:
- /foo/bar exists and is a link to /foo/bar.qux
- One plugin attempts to collect /foo/bar
- Another plugin attempts to collect a link /foo/qux -> /foo/bar/baz
If the 2nd plugin happens to run first it will create the path
"/foo/bar" as a _directory_ (via _makedirs()). Since the archive
now checks for matching object types when a path collision occurs,
the first plugin will arrive at add_dir(), note that "/foo/bar" is
present and is not a symbolic link, and will raise an exception.
Correct this by ensuring that whichever plugin executes first, the
correct link/directory path structure will be set up.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Always set a valid dest_dir in _check_path() and do not assume
that it can be obtained by splitting the path: in the case of
a directory it is the unmodified 'dest' value.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify the makedirs() method of FileCacheArchive and have it
bypass _check_path() and directly call os.makedirs(): a subsequent
patch will restrict the use of the method to setting up the sos_*
directories in the archive root.
File, directory and other object type add_* methods will use a
new method that correctly handles symbolic links in intermediate
path components.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
OSError and IOError exceptions were not raised to the terminal
when --debug is in effect since they were silently caught in the
generic exception handler.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Stop copying extended attributes of files under /sys and /proc
that can raise SELinux denials on that attempt.
Resolves: #1399
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
| |
Call "cryptsetup luksDump /dev/sd*" for all encrypted devices
Resolves: #1390
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
gssproxy stores its configuration in /etc/gssproxy. Also capture the
mech configuration so that we can tell if gssproxy is enabled and any
other GSS mechs in use.
Resolves: #1386
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add files for KDC configuration and logging, including kadmin files
and a klist of the K/M stash.
Gather any additional configuration snippet files in
/etc/krb5.conf.d (which is configured by default on Fedora- and
RHEL-like systems, and hopefully on Debian systems in the future).
The sssd plugin already takes care of
/var/lib/sss/pubconf/krb5.include.d/, so don't include that.
Resolves: #1385
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Adds collection of 'oc adm top' output for images and imagestreams.
Resolves: #1165
Closes: #1383
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
Versions of kubernetes after 1.5 use --kubeconfig instead of --config to
specify a configuration file to use for kubectl commands. Update the
kubernetes plugin to use the proper syntax.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
| |
The 3.10 version of OCP changes the deployment configurations for etcd
and kubernetes components, and additionally changes the way the etcdctl
command is called when running in a static pod. Update these plugins to
support this new deployment style.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1395
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
| |
Make lsof calls on OSP systems disabled by default.
Relevant to: #1395
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Make calling of lsof command optional (but enabled by default).
Also remove "collect lsof-threads when --all-logs" as all-logs
has nothing in common.
Resolves: #1394
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
| |
similarly like we sanitize case id, we should sanitize report label
to e.g. exclude spaces from final tarball name.
Resolves: #1389
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
| |
Closes: #1380.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This commit adds the plugin rhv-log-collector-analyzer, it will
collect:
- Output of rhv-log-collector-analyer --json
- Generated HTML file from --live
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
|
|
|
|
|
|
|
|
| |
commit 29a40b7 removed leading '/' from two forbidden paths
Resolves: #1388
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Detection of CDS node on RHUI 3 cant rely on deprecated pulp-cds package
but rather on rhui-mirrorlist one.
Resolves: #1375
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
They're just missing the S_ in front of them so if that code gets
reached it fails.
Fixes: #1373
Resolves: #1374
Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds an option to encrypt the resulting archive that sos generates.
There are two methods for doing so:
--encrypt-key Uses a key-pair for asymmetric encryption
--encrypt-pass Uses a password for symmetric encryption
For key-pair encryption, the key-to-be-used must be imported into the
root user's keyring, as gpg does not allow for the use of keyfiles.
If the encryption process fails, sos will not abort as the unencrypted
archive will have already been created. The assumption being that the
archive is still of use and/or the user has another means of encrypting
it.
Resolves: #1320
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Always output the tarball or build tree location, regardless of
the value of -q/--quiet.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A change in the handling of add_string() operations in the archive
class causes the Plugin string substitution methods to fail (since
the archive was enforcing a check that the path did not already
exist - for substitutions this is always the case).
Maintain the check for content that is being copied into the
archive anew, but make the add_string() method override this and
disable the existence checks.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Collect a 'list' and 'print --allregions' (do not generate a
report as this will re-set region counters in the kernel).
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1365
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since setting sizelimit to be equal to the log_size option unless
explicitly set otherwise, there is no longer a need for plugins to do
something like:
self.limit = self.get_option('log_size')
self.add_copy_spec('/foo/bar', sizelimit=self.limit)
As such, update plugins that were just using the log_size setting to no
longer set this sizelimit value unnecessarily.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
The RHELPolicy dist_version() was always returning False due to an
invalid call to all_pkgs_by_name_regex(). Correct this call and use the
discovered redhat-release package to determine version.
Resolves: #216
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Allows commands that set their own environment variables to also filter
out variables that are undesired for the given command. Plugins that
need to do this should set the environment variable in question None
when setting 'env' for an add_cmd_output() call.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
| |
Removes the LC_ALL environment variable from the collection of 'locale'
which would cause all locale output to show a setting of 'C' which was
set earlier to get consistent output across sos commands collected.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
on older kernels, bpftool can return error
"can't get next program: Function not implemented"
that lacks "id" we search for in the dict.
Resolves: #1363
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
In the all_files_system() function there's the possibility to
pass a list of directories to be excluded. This wasn't working properly.
It should now exclude the list of dirs.
Signed-off-by: Pierguido Lambri <plambri@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Some packages in post-UsrMove Red Hat systems still install files
to /bin or /sbin: the RPM and mailx packages are known examples.
Treat these paths specially and ensure both the UsrMove and old
path are present in the list of package managed files.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This plugin will collect a list of all binary files that are
available in the standard $PATH and that are not managed by the
distribution package manager.
For now this works only for the distributions that use the
RedHatPolicy (RHEL and Fedora): other policies may add support by
implementing the 'files_command' policy initialiser callback, and
adding the relevant tagging class to the plugin.
Resolves: #1066
Signed-off-by: Pierguido Lambri <plambri@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This adds two new methods to the class RedHatPolicy.
These two methods helps to handle an UsrMove system.
In particular mangle_package_path() can be used to
substitute the usual /[s]bin references with the
real target /usr/[s]bin.
Signed-off-by: Pierguido Lambri <plambri@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a 'files' member to the PackageManager class, and a new
'files_command' kwarg to the initialiser. If the 'files_command'
is defined it is used to obtain a list of all package managed
files present on the system.
The list may be retrieved by calling PackageManager.all_files().
An implementation of 'files_command' is added to the Red Hat
policy classes.
Signed-off-by: Pierguido Lambri <plambri@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
'steup' for 'setup'.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The threads option was missing from the _arg_names list which meant it
could not actually be changed by the command line option. Add threads to
this list so the number of threads is user-controllable.
Resolves: #1359
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Resolves: #1358
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
| |
With python3, the 'slots' calculation returns a decimal number which
deque() will not accept, thus throwing an exception. Always make sure
slots is an integer value.
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The 'devs' list comprehension generates a list of present FC sysfs
paths by filtering a list of possible directory paths with isdir().
The isdir() test must be on the outer ('for d in dirs') scope
rather than the inner: otherwise listdir() may be called with a
non-existent directory.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the detection of syslog logs in RedHatLogs.setup() by storing
the absolute path ("/var/log/messages"), and using this to detect
the presence of the path with os.path.exists() and append the "*"
in-place when making the add_copy_spec() call.
Also improve the readability of the method and use an explicit
variable, "have_messages", to indicate pressence of syslog style
logs.
Resolves: #1312
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|