aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [sosreport] Handle cases when creating archive failsPavel Moravec2018-06-071-30/+37
| | | | | | | | Don't compute archive's checksum and print a message to stdout rather. Resolves: #1329 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] more logging when creating archive failedPavel Moravec2018-06-071-3/+4
| | | | | | (Also) in case of not fatal FS error, print some valuable message Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] remove tmpdir only if it existsPavel Moravec2018-06-071-1/+1
| | | | | | Prevents raising exception when the dir has been removed. Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [lxd] Add check for the presence of lxd packageEric Desrochers2018-06-071-0/+1
| | | | | | | | Closes: #1306 Resolves: #1313 Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [multiple plugins] Fix package list tuplesJake Hunsaker2018-06-073-3/+3
| | | | | | | | | | | Fixes the nis, nfsganesha, and os_net_config plugins package lists to use a 1-tuple instead of a string that would break package verification for those plugins. Resolves: #1315 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [block] Use add_udev_info for block devicesJake Hunsaker2018-06-071-1/+2
| | | | | | | | | | Updates the block plugin to use the new add_udev_info() method, once with an attribute walk and once without. Resolves: #1319 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [watchdog] Add watchdog pluginReid Wahl2018-06-071-0/+94
| | | | | | | | | | | | | | | This new plugin collects information related to the watchdog service, including configuration, custom executables for test-binary and repair-binary, and stdout/stderr log files. This will be helpful to support teams seeking to understand why an unexpected reboot occurred or, conversely, why a reboot did not occur as expected. Resolves: #1305 Signed-off-by: Reid Wahl <nwahl@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [systemd] Add configuration files of systemd-modules-load.serviceAkhil John2018-06-071-1/+2
| | | | | | | | | | | | It is possible to load kernel modules during boot in a static list as mentioned under /etc/modules-load.d/*.conf. These files are used by systemd-modules-load.service. Collect this information using systemd plugin. Resolves: #1303 Signed-off-by: Akhil John <ajohn@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [powerpc] Capture the opal-prd log fileAnanth N Mavinakayanahalli2018-06-071-1/+2
| | | | | | | | | | | Opal-prd is the Processor Runtime Diagnostics daemon on Power systems running OPAL firmware. Capture this log file with sosreport. Resolves: #1295 Signed-off-by: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Do not run verify on empty package listJake Hunsaker2018-06-071-1/+5
| | | | | | | | | | | | | | | In some instances, the regex match in all_pkgs_by_name_regex() was returning an empty list when no match was made. This in turn caused sos to run an empty verify command, e.g. 'rpm -V '. By filtering the list of packages to verify, we can remove these empty lists and avoid the empty verify command. Closes: #1304 Resolves: #1314 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kernel] Avoid capturing blanket 'find -ls'Jake Hunsaker2018-06-061-2/+4
| | | | | | | | | | | | | | | | | | | | | | Previously, if sos was run in an environment where '/lib/modules/*' did not exist, the kernel plugin would pass an empty extra_mod_paths list to 'find -ls', which would in turn cause sos to execute 'find -ls' on the entire filesystem. While this situation may seem rare, this is a possiblity whenever sos is run in a container that does not have the proper environment variable set that indicates to the active policy that sos is in fact in a container. On top of generating a sosreport with little to useful information in this case, the generated sosreport could potentially be very large due to the collection of a blanket 'find -ls'. This prevents this from occuring, by not running 'find -ls' if the extra_mod_paths list is empty. Resolves: #1288 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [systemd] collect additional useful informationRenaud Métrich2018-06-061-1/+10
| | | | | | | | | | | | | | | - Added "systemd-analyze dump" which is the complete systemd picture, containing dependencies, start/stop timestamps, aliases, etc. - Added "systemd-analyze plot" which provides a convenient visual way to understand dependencies and startup times. - Added collect of "/run/systemd/*" which contains many useful data, such as generated units, current sessions on system (useful to debug session leaks) and transient units. Resolves: #1285 Signed-off-by: Renaud Métrich <rmetrich@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [s390] gather info about HW cryptoDan Horák2018-06-061-1/+4
| | | | | | | | Fixes: #1283 Resolves: #1284 Signed-off-by: Dan Horák <dan@danny.cz> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [libraries] collect standard library pathsRenaud Métrich2018-06-061-1/+18
| | | | | | | | | | | Collects the paths to the libraries cached by "ldconfig". This is useful when a customer replaced a standard library by its own or when he added his own libraries to the standard paths or through symbolic links. Resolves: #1282 Signed-off-by: Renaud Métrich <rmetrich@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ipa] collect klist on http.keytabPavel Moravec2018-06-061-1/+2
| | | | | | Resolves: #1280 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [nfs] Add nfs.confPierguido Lambri2018-06-061-0/+1
| | | | | | | | | | | Many NFS (and other related programs) options can now be set through the config file /etc/nfs.conf. Collect this from the 'nfs' plugin. Resolves: #1278 Signed-off-by: Pierguido Lambri <plambri@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docs] Fixed errors while generating docs.Sachin Patil2018-06-061-23/+31
| | | | | | | | | | | | | | | | | | | | | | | I see below errors when generating docs using `make`. Decided to cleanup a bit. The docstring look better than previous and no more errors when generating docs. ``` /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:5: ERROR: Unexpected indentation. /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:6: WARNING: Block quote ends without a blank line; unexpected unindent. /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:13: WARNING: Definition list ends without a blank line; unexpected unindent. /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:15: ERROR: Unexpected indentation. /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:16: WARNING: Block quote ends without a blank line; unexpected unindent. /home/psachin/github/sos/sos/plugins/__init__.py:docstring of sos.plugins.Plugin.add_journal:18: WARNING: Definition list ends without a blank line; unexpected unindent. ``` I tried to keep the changes in Sphinx format. Not all functions are changed in this patch but the one generating errors. Let me know if anything else needs cleanup in `sos/sos/plugins/__init__.py` Signed-off-by: Sachin Patil <psachin@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] make Ctrl-C exit messages consistentBryn M. Reeves2018-06-061-2/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [build] make futures dep conditional on python versionBryn M. Reeves2018-06-061-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Concurrently run pluginsJake Hunsaker2018-06-066-27/+100
| | | | | | | | | | | | | | | | | | | | | Changes sos to run plugins concurrently. By default sos will now use four (4) threads to run plugins, allowing for faster overall execution of sosreport. The number of threads can be changed using the --threads commandline option. Plugins now also have a timeout applied to them as a whole to avoid situations where sosreport appears to be hung. If a plugin exceeds the timeout threshold, the plugin will be terminated immediately. - this allows sos to not only continue running normally, but should still allow for collection of commands run by the plugin up until it was terminated. The timeout is plugin controlled, and defaults to 300 seconds if not set. Note that for python2 environments, this adds a dependency on python-futures. The futures module is present in the standard library for python3 environments. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [utilities] Allow size limits for command outputJake Hunsaker2018-05-292-17/+83
| | | | | | | | | | | | | | | | | | | | | | | Previously, any command output generated from plugins from add_cmd_output and add_journal would be collected in full in memory. For example, if a journal was 4GB in size, then 4GB would be read into memory and subsequently written to the final sos archive. This lead to not only potentially large archives, but in some cases failure to collect data or produce an archive due to memory constraints on the system. This patch adds the ability to use a sizelimit option in both add_cmd_output and add_journal. This will limit the collected output from commands or journals to the given limit, both what is read into memory and what is written to the final archive. If not given, sizelimit will default to --log-size. For journal collection, if no sizelimit is given then the larger of either --log-size or 100mb is used. Resolves: #1120 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kernel] fix except syntaxBryn M. Reeves2018-05-291-2/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] add separator argument to _format_list()Bryn M. Reeves2018-05-291-5/+5
| | | | | | | | | | | | | | The _format_list() function handles formatting lists as comma- separated strings, including line wrapping and indentation to match an outer indentation level. Add a new 'sep' parameter to allow the list to be separated by an arbitrary character sequence. This allows space-separated command line option lists to be printed by --list-presets. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policies/redhat] use os-release instead of redhat|fedora-releaseBryn M. Reeves2018-05-291-5/+26
| | | | | | | | Rather than testing for the presence of /etc/redhat-release and the absence of /etc/fedora-release, open /etc/os-release and check for the presence of the RHEL release string in the NAME field. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [build] make build and install targets .PHONYBryn M. Reeves2018-05-271-0/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sos] add po/en.poBryn M. Reeves2018-05-271-0/+166
| | | | | | | 'make po' complains about this file being missing: add it, with the same translations as en_GB.po, and set the locale to 'en'. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [build] kill sos/__init__.py.inBryn M. Reeves2018-05-262-34/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] rework: collect journalctl verbosed logs with --all-logs onlyKazuhito Hagio2018-05-241-2/+1
| | | | | | | | | | | | commit 7bc90f618f0549279544d26effae2e5197d85e2b ("[logs] collect journalctl verbosed logs with --all-logs only") did not suppress the journalctl verbosed logs by default. Let's rework it. Related: #1225 Resolves: #1310 Signed-off-by: Kazuhito Hagio <k-hagio@ab.jp.nec.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [maas] add package checksBryan Quigley2018-05-241-0/+1
| | | | | | | | | | Previously this had no checks and would run on every Ubuntu machine - the majority of which are not maas servers Resolves: #1309 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [networkmanager] Add Ubuntu package nameBryan Quigley2018-05-241-1/+1
| | | | | | | | | Add 'network-manager' name so it runs on Ubuntu. Resolves: #1308 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [SCLPlugin] fix missing 'self' in add_cmd_output_scl()Sachin Patil2018-05-241-1/+1
| | | | | | | Resolves: #1302 Signed-off-by: Sachin Patil <psachin@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [system,kernel] dont collect some empty nonreadable filesPavel Moravec2018-05-242-1/+8
| | | | | | | | To prevent confusing errors on stdout in py3 Relevant to: #1299 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [kata_containers] Add new plugin for Kata ContainersJames O. D. Hunt2018-05-241-0/+53
| | | | | | | | | | | | | | | Add a new plugin for the Kata Containers project runtime (`kata-runtime`). See: - https://github.com/kata-containers - https://katacontainers.io/ Resolves: #1298 Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [lustre] make the join call py3 compatiblePavel Moravec2018-05-241-2/+1
| | | | | | | | python3 fails with "cannot import name 'join'" error otherwise Resolves: #1297 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [policies] use py3-compliant string.ascii_lowercasePavel Moravec2018-05-241-1/+1
| | | | | | | | | string.lowercase works in python2 only, use equivalent string.ascii_lowercase in either python 2 or 3 Resolves: #1296 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [origin] OpenShift 3.10 updatesBrenton Leanhardt2018-05-241-38/+44
| | | | | | | | | | Several new files need to be collected and master logs are now in a different location. The NodeConfigCheck plugin for oadm diagnostics no longer exists. Resolves: #1294 Signed-off-by: Brenton Leanhardt <bleanhar@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [dnf] collect installed modules and info about themPavel Moravec2018-05-241-0/+19
| | | | | | | | | | collect "dnf module list --installed" and for each module, get info about it Resolves: #1292 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [fibrechannel] Add new pluginJake Hunsaker2018-05-241-0/+37
| | | | | | | | | Adds a new plugin for fibrechannel devices. Resolves: #1290 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugins] Add new add_udev_info() methodJake Hunsaker2018-05-241-0/+19
| | | | | | | | | | | | | | | | | Adds a new collection method add_udev_info() which will collect 'udevadm info' output for a given device or list of devices. An optional 'attrs' boolean will, if True, have udevadm perform an attribute-walk of the device's sysfs attributes. This method can take either device names such as '/dev/sda' or sysfs paths such as '/sys/class/scsi_host/host0' and these styles may be freely interchanged in a list given to a single call. Resolves: #1293 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kernel] list loaded eBPF programs and mapsPavel Moravec2018-05-241-0/+33
| | | | | | | | | | Collect the list all loaded eBPF programs and maps and dump their content. Resolves: #1287 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [archive] handle No space left on device for compress, checksumFilip Krska2018-05-242-6/+11
| | | | | | | | | | | | | Handle compression command failure. Handle checksum file writing failure. Make moving checksum file failure non fatal. Avoid double cleanup. Signed-off-by: Filip Krska <fkrska@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Fix string decoding for debug log outputDan Streetman2018-05-241-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | In add_string_as_file and _collect_strings, the first line of each string is printed to debug log, however there is a bug in _collect_strings that tries to decode the first line of '...' instead of the actual string; this causes a error like: File "/usr/share/sosreport/sos/sosreport.py", line 1300, in collect plug.collect() File "/usr/share/sosreport/sos/plugins/__init__.py", line 877, in collect self._collect_strings() File "/usr/share/sosreport/sos/plugins/__init__.py", line 860, in _collect_strings (content.splitlines()[0]).decode('utf8', 'ignore')) AttributeError: 'str' object has no attribute 'decode' This simplifies the (string or bytearray)-to-first-line-string of both functions, which also fixes the bug using the wrong variable to decode. Fixes: 7ba2fb47d05b608f3863fda9271894e38b43937a Resolves: #1267 Signed-off-by: Dan Streetman <ddstreet@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [global] Kill license headersJake Hunsaker2018-05-22267-3467/+1867
| | | | | | | | | | | | | Removes the existing license header and replaces it with a generic header pointing to the LICENSE file. Existing date/ownership details are left intact where they were already used. Resolves: #1265 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [infiniband] collect info from all active ports of all IB devicesPavel Moravec2018-05-221-4/+42
| | | | | | | | | currently just the very first active port is checked Resolves: #1262 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [networking] collect netstat for all namespacesPavel Moravec2018-05-221-4/+8
| | | | | | | | collect all netstat commands for all network namespaces Resolves: #1261 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [buildah,clear_containers,lxd] add plugins to container profileBryn M. Reeves2018-05-223-1/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Add new container profileJake Hunsaker2018-05-228-4/+8
| | | | | | | | | | Adds a new 'container' profile to sos that includes common container and related technology plugins. Resolves: #1260 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Increase default log size to 25MBJake Hunsaker2018-05-221-1/+1
| | | | | | | | | | Increases the default log_size option to 25MB, as 10MB may be too low and miss pertinent information in places like /var/log/messages. Resolves: #1258 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [networking] Move NetworkManager content to a new pluginRobb Manes2018-05-222-85/+117
| | | | | | | | | | | | As NetworkManager is non-essential to configuring a network on most distributions, and it has its own concepts of how to handle connections different than the traditional means of ifconfig and ip, move anything NetworkManager-related to a separate plugin. Resolves: #1255 Signed off by: Robb Manes <robb.manes@gmail.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [block] Gather information about discards via lsblkJose Castillo2018-05-221-0/+1
| | | | | | | | | | | This patch adds the output of 'lsblk -D' to the block plugin, so we can gather some useful information about discarding capabilities for each device. Resolves: #1254 Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>