| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 5d25dd3 "fixed" a longstanding problem with the RedHatLogs
plugin, in that the normal --all-logs behaviour (only collect the
current log unless the option is given) is not respected for the
messages and secure files.
Based on feedback from contributors and support engineers this
has now been reversed and all copies of these logs will now be
included in reports by default again.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Use string-string comparison when testing option values against
defaults in order to filter out default valued arguments from
display listings.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
In the refactoring of the limit setting in add_journal(), the
variable used to store the final setting was changed from the
'sizelimit' arg to a new 'log_size' local variable. Make sure
the correct 'log_size' is passed on to _add_cmd_output().
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Instead of using the "name=value" pretty printer to format the
preset options for logging, use the SoSOptions.to_args() method
to convert them to a list of command line style arguments.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
If we encounter a JSON error while loading a preset skip that
file and continue to load any other valid preset files.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The XmlReport class in sos.sosreport traverses the list of plugins
and prepares a report including each collected file.
The access to the file is wrapped in an except block but the recent
change to pycodestyle modified this from a 'naked' except into a
'except IOError' block.
Attempting to open a non-existent path yields an IOError, however
attempting to stat a non-existent path (or a dangling symlink
without lstat()) yields OSError:
# ln -s foo qux
# cat qux
cat: qux: No such file or directory
>>> os.stat("/foo/qux")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: '/foo/qux'
Catch both exception classes in this method.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
When switching a Python string to a raw string escape sequences
like "\\n" must have the first `\` stripped or the literal value
will be taken when the string is used.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Since the default for --verbosity must be set (to make it 0 rather
than None), use the _arg_defaults[] dictionary since the value is
not the default for the corresponding ArgumentParser action.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The changes to prevent attempts to write builtin presets also
prevent user presets from being written:
# ./sosreport --batch --debug --profile system --add-preset qux2
sosreport (version 3.5)
Could not add preset: Cannot write built-in preset
This is because although we correctly clear pd.builtin on preset
load, we do not clear the flag when initialising a new user
preset from the command line.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the formatting of SoSOptions into sosreport command line
arguments from SoSReport.list_presets() into SoSOptions.to_args().
This allows the function to be simplified since it has access to
the raw arguments rather than their string representation.
The method returns a list of string '--argument value' pairs, and
suppresses null, default and True argument values.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The --verbosity arg is a bit awkward in preset listings as it is
a count type. The literal value is 1, 2, or 3, but the user enters
it by repeating either the short or long option.
Ideally, a user should be able to paste the arguments from the
--list-presets output into the terminal and use them as arguments
to sosreport: using the long option for this is... verbose:
"--verbosity --verbosity --verbosity". Special case this option
and use the short version instead: "-vvv".
name: vvverbose-debug
description:
options: --debug -vvv
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
If an unknown preset is given on the command line, display an
error message and set self.opts.list_presets=True to show the
list of available presets.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
When merging options (e.g. to combine command line and preset
arguments), concatenate list-typed argument values rather than
overwriting the target list with the source value.
This allows users to extend preset-defined arguments for options
like --only-plugins and --profiles on the command line.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reasoning for the use of deques in sos.sosreport is lost to
the mists of CVS, but may have had something to do with limitations
in setting default values in old versions of optparse: nothing in
the module appears to depend on deque-like behaviour at all.
Pull it all out and replace them with plain lists. This simplifies
JSON handling and option merging for these types.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When formatting a human readable string representation of an
SoSOptions object, convert any sequence types (lists, tuples, or
deques) into a human readable string.
This gives output like:
onlyplugins=foo,bar,baz,qux
Rather than:
onlyplugins=[u'foo', u'bar', u'baz', u'qux']
This is used by --list-presets to produce lists of preset options
in command line notation:
options: --batch, --build, --debug=1, --onlyplugins=kernel,logs,
--verbosity=1
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-format the output of --list-presets to be more compact and
readable: add labels for each field (name, description, notes,
and options), right justify all field labels to 15 chars, and
convert SoSOptions() string representations into command line
argument notation.
logs-only : A preset to only run the logs plugin
opts: all_logs=False, batch=False, build=False, case_id=,
chroot=auto, compression_type=auto, config_file=, debug=False,
enableplugins=[], experimental=False, label=,
list_plugins=False, list_presets=False, list_profiles=False,
log_size=10, noplugins=[], noreport=False, onlyplugins=[],
plugopts=[], preset=, profiles=deque([]), quiet=False,
sysroot=None, tmp_dir=, usealloptions=False, verbosity=0,
verify=False
Vs.:
name: logs-only
description: A preset to only run the logs plugin
options: --onlyplugins=logs
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
For hysterical raisins --alloptions maps to cmd_args.usealloptions
rather than cmd_args.alloptions. Make the argument name and the
options member name match.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Preset arguments should not be included in presets: simplify the
filtering to use lists of filtered argument names.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Preset arguments should not be included in presets: simplify the
filtering to use lists of filtered argument names.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|