aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [apache] Collect config summary via apachectl -SJake Hunsaker2019-03-211-1/+4
| | | | | | | | | Adds collection of apachectl -S for quick config summary data Resolves: #1572 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [postgresql] Use postgres 10 scl if installedJake Hunsaker2019-03-211-3/+14
| | | | | | | | | | | | | | Updates the plugin to check if the specified SCL is running, as some systems may have multiple SCL versions installed, but only one will be running at a time. We now use the running version for a pgdump. This is primarily aimed at RHV environments as 4.3 and later use version 10. Resolves: #1562 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [python] check dist_version only on RHELPolicyPavel Moravec2019-03-211-1/+3
| | | | | | | | | Call /usr/libexec/platform-python only on RHEL (of version bigger than 7). Resolves: #1605 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [plugins] remove reference to xmlreportPavel Moravec2019-03-211-4/+0
| | | | | | Resolves: #1604 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [crio] import all plugins referred by CRIO classPavel Moravec2019-03-211-1/+1
| | | | | | Resolves: #1606 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [manageiq] import os.environ variable properlyPavel Moravec2019-03-211-4/+3
| | | | | | | | | os.environ is a variable not a module, so "import os.environ" doesnt work, causing plugin isnt loaded. Resolves: #1607 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [networking] import os.listdir methodPavel Moravec2019-03-211-1/+2
| | | | | | Resolves: #1608 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [ovirt] fix LGTM warning about regular expressionsPavel Moravec2019-03-201-4/+2
| | | | | | | | caret at the beginning of line, dollar at the end Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [iprconfig,sapnw] fix nested loops using same variablePavel Moravec2019-03-202-6/+6
| | | | | | | | Nested loops shall not use same variable name as their iterator. Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [general] remove duplicit module importsPavel Moravec2019-03-204-10/+5
| | | | | | Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [filesys,ldap,systemd] fix implicit string concatenationPavel Moravec2019-03-203-3/+3
| | | | | | Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [selinux] string comparison using !=Pavel Moravec2019-03-201-1/+1
| | | | | | Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [general] remove unused module importsPavel Moravec2019-03-2017-30/+7
| | | | | | Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [policies] ibmkvm: remove unreachanble codePavel Moravec2019-03-201-2/+0
| | | | | | Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] remove XML reportsPavel Moravec2019-03-201-112/+1
| | | | | | | | Abandon dead feature not used for years. Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [gluster] remove noop assignmentPavel Moravec2019-03-201-1/+0
| | | | | | | | last_line redefined before any further refrence Relevant to: #1559 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [manageiq] Collect postgres and tower logsPavel Moravec2019-03-201-52/+26
| | | | | | | | | | | | Collect /var/log/tower.log for embedded Ansible Tower deployments. Simplify lists of configs and logs being collected by using few filemasks. If APPLIANCE_PG_DATA variable is set, collect postgres logs and config. Resolves: #1544 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [nvme] Capture /etc/nvme/discovery.confJose Castillo2019-03-201-0/+1
| | | | | | | | | | | | | The file /etc/nvme/discovery.conf is used by the command 'nvme discover' to send Get Log Page requests to a NVMe-over-Fabrics Discovery Controller. This plugin ensures that the sosreport captures the configuration, if it exists. Resolves: #1539 Signed-off-by: Jose Castillo <jose.mfcastillo@gmail.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [lvm2] Use metadata_read_only=1 for lvm commandsNir Soffer2019-03-201-8/+12
| | | | | | | | | | | | | | | | | We use locking_type=0 to ensure that we can collect data even if another process holds a conflicting lock. This introduce a small risk since even the read-only commands we use may attempt to recover on-disk data in some cases. The risk is bigger when running lvm2 plugin in oVirt system, when LVM is used on shared storage, accessible from many hosts. Add metadata_read_only=1 to ensure that no command can attempt to do unwanted on-disk changes. Fixes: #1533 Resolves: #1538 Signed-off-by: Nir Soffer <nsoffer@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] add upstream package names to RedHatPluginJake Hunsaker2019-03-201-1/+2
| | | | | | | | | | Adds the upstream docker packaging to the packages list for the RH family of distributions. Related: #1580 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] do not collect 'system df' by defaultJake Hunsaker2019-03-201-2/+2
| | | | | | | | | | Gates collection of 'docker system df' behind the docker.size option as this command can take a long time to run just like 'ps -as'. Related: #1580 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] Correct commands, collect volume infoJake Hunsaker2019-03-201-15/+28
| | | | | | | | | | | | | Fixes the potential for 'docker logs' to be called against images and adds volume collection for docker like #1579 does for podman. Changes image inspections to use the image name, unless the name or tag is 'none' in which case the image ID is used. Resolves: #1580 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [config] update example sos.confBryn M. Reeves2019-03-201-4/+6
| | | | | | | | | Remove plugin options that no longer exist, and add more examples of global sosreport options that may be set in the config file. Related: #1530 Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] handle non-valued and counter options in sos.confBryn M. Reeves2019-03-201-2/+20
| | | | | | | | | | | | | | | Command line arguments that are non-valued ("store_true"), or that have counter semantics need special handling when read from the configuration file (since optionless values *do* have an explicit value in the file, in order to meet .ini file structure, and since counter values are represented in the file as an integer). Process these options specially and return them in a form that is correctly parsed by the ArgumentParser. Related: #1530 Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] support all command line options in /etc/sos.confPavel Moravec2019-03-202-112/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - SoSOptions class changes: - from_file method to load load options from file - encapsulation of particular options into __init__ method - updated merge logic to replace non-default values only - sosreport.py changes: - _parse_args (renamed to _get_parser) newly returns just the ArgumentParser object as parsing itself is done elsewhere - SoSOptions are built in ordering: - defaults from parser (with emtpy cmdline) loaded - cmdline options replace defaults - config file known even now - config.file options replace defaults until already set by cmdline (i.e. until SoSOptions marked them as nondefault) - presets can be known even now - options from given preset replace defaults, until the options are already updated from cmdline or config.file - some extra logging/formatting added - some extra comments added Fixes: #855 Resolves: #1530 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] Preserve data type of a plugin option to the default onePavel Moravec2019-03-201-1/+11
| | | | | | | | | | | | | | Some plugin options rely on the default data type that can be automatically overwritten by Python (e.g. from str to int). The commit preserves the original data type to ensure implicit data type specified in option definition is always used. Resolves: #1526 Related: #1597 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policy] Add a 'none' preset to Policy to override automatic presetsJake Hunsaker2019-03-191-1/+12
| | | | | | | | | | | | | | | | | Adds a 'none' preset to the base Policy class that can be used to override any distro-specific presets that may be otherwise automatically loaded when a bare 'sosreport' is run due to the presence of certian packages. In other words, using '--preset=none' will cause sosreport to run identically to how sosreport ran before presets were introduced. Additionally this 'none' preset is now the default preset returned by the Policy class if probe_preset() is not overridden by individual policies. Resolves: #1537 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [chrony] Adding support for Debian and UbuntuNick Niehoff2019-03-191-6/+22
| | | | | | | | | | Chrony is also supported on Debian and Ubuntu, but is configured slightly differently. Resolves: #1536 Signed-off-by: Nick Niehoff <nick.niehoff@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [manpages] Fix path for docs in /usr/share/docJose Castillo2019-03-191-1/+1
| | | | | | | | | | | | | | | | In the Makefile we have specified the path for sosreport docs as: install -m644 AUTHORS README.md $(DESTDIR)/usr/share/$(NAME)/. And NAME is 'sos'. But in the manpage we have the path as /usr/share/doc/sosreport. This fix removes the path and directs to the package documentation. Fixes: #1531 Resolves: #1532 Signed-off-by: Jose Castillo <jose.mfcastillo@gmail.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [python] Update plugin to run properly on RHEL 8Jake Hunsaker2019-03-191-1/+16
| | | | | | | | | | | | | | | | RHEL 8 replaces the standard 'python' binary with platform-python, following PEP394. RHEL 8 sysadmins can however install python2 and/or python3 alongside this system installation of python and optionally also set 'python' to point to either of these installations. This updates the python plugin to enable on the presence of any of these packages and also get version information for any version of python installed, including the platform-python installation. Resolves: #1524 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [apt] add /etc/apt/auth.conf to forbidden pathYuan-Chen Cheng2019-03-191-0/+2
| | | | | | | Resolves: #1523 Signed-off-by: Yuan-Chen Cheng <yc.cheng@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [redhat] Add a 'cantboot' presetJake Hunsaker2019-03-191-0/+9
| | | | | | | | | | | | | | | Adds a 'cantboot' preset to enable a small number of plugins that may be useful when troubleshooting a situation in which normal system startup is failing. Longer term, it would be beneficial if this preset could be automatically loaded if sos detects that it is running in a system that has been booted to rescue/emergency mode. Resolves: #1522 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Collect full status outputJake Hunsaker2019-03-191-1/+1
| | | | | | | | | Changes the 'pcs status' collection to display full status results. Resolves: #1521 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [cockpit] Add new pluginJake Hunsaker2019-03-191-0/+30
| | | | | | | | | | Adds a new plugin to collect information about Cockpit, a browser-based system configuration and management tool. Resolves: #1491 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pcp] Collect summary data for the current dayJake Hunsaker2019-03-191-1/+11
| | | | | | | | | | Adds collection of a pmstat summary output using 5 minute intervals for the current day, and makes a root symlink to it in the archive. Resolves: #1520 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] Debian: Add Journal support and stop full tarball of /var/logBryan Quigley2019-03-191-12/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These changes are only on the Debian/Ubuntu bit of logs Persistent systemd journaling (/var/log/journal exists) use that instead of collecting any kern/syslog/auth from /var/log. We also implement a log_days similar to the RH bit, but we default to 7 days instead of 3. --all-logs removes the day limit and gets it all Rsyslog style (assumed if /var/log/journal doesn't exist default run: collect all 4 of syslog[.1] and kern.log[.1] (Same as previous behavior plus auth.log). --all-logs: collect syslog*, kern.log*, and auth.log* The notable change for --all-logs is it used to just collect all of /var/log which causes MANY issues. Before this change using --all-logs on systems with persistent journal we would collect duplicate log files as such: * Collect all of syslog*/kern*/auth* * Collect the entire journal via /var/log/journal * Collect the last two boots of journal via running journalctl command Even with this change we still collect the journal last/current boot with whatever is copied by journal since log_days. Resolves: #1519 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [podman] Collect port mappingsJake Hunsaker2019-03-191-0/+1
| | | | | | | | | Adds collection of port mappings for podman containers. Resolves: #1518 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [tuned] Collect verify outputJake Hunsaker2019-03-191-1/+2
| | | | | | | | | | Adds collection of 'tuned-adm verify' to allow for quick and easy reference as to if tunables have been changed on a system using tuned. Resolves: #1513 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Collect stonith history and watchdogsJake Hunsaker2019-03-191-0/+2
| | | | | | | | | | Adds collection of stonith fencing history and a list of configured watchdogs. Resolves: #1512 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [vdo] Get status output individually, and collect stats outputJake Hunsaker2019-03-191-1/+7
| | | | | | | | | | | Updates the vdo plugin to grab status information for each individual volume rather than dumping everything into a single output. Additionally collect vdostats output. Resolves: #1510 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [redhat] Update policy to identify RHEL 8Jake Hunsaker2019-03-191-0/+2
| | | | | | | | | | Now that RHEL 8 Beta is out, update the redhat policy dist_version to be able to properly set the version. Resolves: #1509 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [hardware] collect Extended Display Identification DataPavel Moravec2019-03-191-1/+2
| | | | | | | | Collect /sys/class/drm/*/edid . Resolves: #1507 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [networking] Extend ethtool command setPatrick Talbert2019-03-191-1/+7
| | | | | | | | | | | | | | | | | | | | Update the list of ethtool commands to include: ethtool -e (EEPROM dump) ethtool -P (permanent MAC address) ethtool -l (channel/queue settings) ethtool --phy-statistics ethtool --show-priv-flags ethtool --show-eee All of the above are helpful in understanding the state of modern NICs. And -P is nice to have as otherwise there is no reliable way to see the permanent MAC of team ports. Resolves: #1503 Signed-off-by: Patrick Talbert <ptalbert@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [peripety] Add new pluginJake Hunsaker2019-03-191-0/+42
| | | | | | | | | Adds a new plugin for the storage event monitoring daemon peripety. Resolves: #1502 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [mysql] Enable mysql for OSP container envMartin Schuppert2019-03-191-1/+2
| | | | | | | | | | | | | In containerized OSP env we now do not have no mysql packages installed outside the containers. Therefore the mysql plugin does not auto run. This adds the openstack-selinux package to the RH package list of the mysql plugin like on the OSP plugins. Resolves: #1501 Signed-off-by: Martin Schuppert <mschuppert@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [stratis] Add new pluginJake Hunsaker2019-03-191-0/+33
| | | | | | | | | Adds a new plugin for the stratis storage manager Resolves: #1495 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kubernetes] Fix 'describe' option enablement and functionJake Hunsaker2019-03-191-13/+13
| | | | | | | | | | | | | | | | | | The 'describe' option logic was incorrectly nested behind the 'all' option logic - so users couldn't successfully use the 'describe' option unless they also specified 'all'. Fixes the alignment so that 'describe' can be used properly and separately. Additionally fixes an issue where the syntax for getting resources for a specified namespace only worked for pods, and otherwise generated an error. Resolves: #1494 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Clear nested threadpool threads on timeoutJake Hunsaker2019-03-191-1/+1
| | | | | | | | | | | | | | | | | | | | | We nest ThreadPoolExecutors to run plugins to enable whole-plugin timeouts, with the timeout being handled by the nested threadpool. However, calling shutdown() on the nested thread is incorrect in the event of a plugin timeout, as it only cancels pending jobs, not currently running jobs that the timed-out plugin is. Instead, call _threads.clear() to forcibly cancel the running job, thus allowing the thread the return to the higher level threadpool and allow other plugins to run via that thread. This still allows data captured up to the point of the timeout to be written to the sosreport. Fixes: #1446 Resolves: #1492 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] raise SystemExit out of list handlersBryn M. Reeves2019-03-191-4/+3
| | | | | | | | | | | | | | | Since the temporary directories have already been set up by the time we process the --list-* handling (plugins, profiles, presets), we still need to follow the _cleanup() path at exit. To avoid a duplicate _cleanup() and resulting File Not Found exception, raise SystemExit out of these paths, which takes us through the normal exception handling in SoSReport.execute() and is consistent with all other paths through the command. Resolves: #1594. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [insights] fix handling of configs tupleBryn M. Reeves2019-03-191-16/+12
| | | | | | | | | | | The configs member is now a tuple: we can't just slam it into a add_copy_specs() list or a do_file_sub() call and have it work. Split out the a_c_s() and pass the tuple alone (it looks less ugly than having a cons inside the list), and loop over the elements in postproc to handle the possible file locations. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>