aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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>
* [mongodb] Collect size of dbs from FS point of viewJose Castillo2018-05-221-0/+1
| | | | | | | | | | | | This patch gathers the size of the content in /var/lib/mongodb/ , which can be useful in some cases to see if a db is growing out of control. Closes: #1233. Resolves: #1253 Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ovn] Add new plugins for Open Virtual NetworkMark Michelson2018-05-212-0/+162
| | | | | | | | | | | | | | | OVN is a sub-project of Openvswitch used to define logical networks for a cluster of OVS instances. The two plugins defined here are "ovn-central", which runs on a single server, and "ovn-host" which runs on each of the hypervisors running OVS. These plugins gather runtime information about the configured virtual networks. Resolves: #1259 Signed-off-by: Mark Michelson <mmichels@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openvswitch] Add additional logging paths.Mark Michelson2018-05-211-3/+16
| | | | | | | | | | | Openvswitch's logs can be located in alternate paths depending on the installation. OpenStack installations, for instance, do not use the same directories for logs as typical package installations. Related: #1259 Signed-off-by: Mark Michelson <mmichels@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [abrt] Add config files to sosreportJose Castillo2018-05-211-0/+5
| | | | | | | | | | | | This patch adds the configuration files /etc/abrt/abrt.conf, /etc/abrt/abrt-action-save-package-data.conf, and /etc/abrt/plugins that were not collected in the abrt plugin. Closes: #1251 Resolves: #1252 Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ldap] Collect nslcd.conf like RH doesBryan Quigley2018-05-181-0/+7
| | | | | | | | | | This collects nslcd.conf and also removes the bindpw from it. Resolves: #1247 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_*] obfuscate just passwords from connection URIsPavel Moravec2018-05-1812-92/+220
| | | | | | | | do not obfuscate whole connection URI but just the password there Resolves: #1246 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>