aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [sosreport] log warning messages to stdout instead of stderrPavel Moravec2019-08-151-1/+6
| | | | | | | warning and lower priority logs should be logged to stdout error or higher logs should be logged to stderr Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] add option --allow-system-changesPavel Moravec2019-08-153-11/+19
| | | | | | | | | | | Running some commands can change the system e.g. by loading a kernel modules. That disqualifies the commands from being called by default. Add an option that overrides this default behaviour. Related to: #1435 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [plugins] fix mangled command filenames collisionsPavel Moravec2019-08-151-7/+14
| | | | | | | | | | | | - Command filenames collisions must be tested tested against absolute path, not relative. Otherwise false positive results about no collisions are returned. - If collision happens for long filenames, ensure that appending ".1" or similar does not exceed the max filename length. Resolves: #1684 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [gluster] Add volume, state information and dump glusterd processesJake Hunsaker2019-08-151-37/+30
| | | | | | | | | | | | | | | | | | | | | Adds collection of 'gluster volume get $vol all' output for all volume names as well as the generate dumpfile from 'gluster get-state' when the 'dump' option is used. Note that this file will be under /var/run/gluster in the archive. Adds 'glusterd' to the list of processes sent signal USR1 when the 'dump' option is used. Removed the prep work previously done to redirect where the statedump files are written to, as it has been reported that those attempts do not function as intended. Statedumps are now collected from /var/run/gluster. Finally, some re-organization to ease future maintenance and updating the size-limiting logic to use the implicit limiting in add_copy_spec(). Resolves: #1664 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kdump] Collect vmcore-dmesg.txt files based on path and deviceMikel Olasagasti Uranga2019-08-151-0/+27
| | | | | | | | | | | | | | | kdump allows to configure to which filesystem and what path it will write contents of '/proc/vmcore'. kdump plugin currently only checks against a hardcoded path '/var/crash/*/vmcore-dmesg.txt'. With this change it will check the 'path' variable and also filesystems type ext2, ext3, ext4 or xfs against fstab. This will make the plugin check in the correct path in the system. Resolves: #1546 Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [nvme] collect config file everytimePavel Moravec2019-07-301-1/+1
| | | | | | | | Collect /etc/nvme/discovery.conf every time, outside any for-loop block. Resolves: #1740 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [plugins] Stop plugin execution after timeout hitPavel Moravec2019-07-291-0/+11
| | | | | | | | | | | When a plugin timeouts, it must stop collecting further data. Otherwise a race issues with archive.finalize() can happen. So any data collection must be skipped if _timeout_hit is True. Resolves: #1736 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [peripety] collect proper config filePavel Moravec2019-07-291-1/+1
| | | | | | | | The config file is /etc/peripetyd.conf . Resolves: #1737 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [utilities] Fix high CPU usage and slow command collectionKazuhito Hagio2019-07-291-1/+3
| | | | | | | | | | | | | | | | | commit fc6721ac83c2 ("[Plugin] Terminate running commands when a plugin exceeds timeout") introduced a polling method to sos_get_command_output() but it is busy wait, and seems to increase the CPU usage and slow down AsyncReader significantly. As a result, a command that outputs much data like journalctl takes longer time, and the plugin times out. Inserting a sleep is a possible fix for this. Resolves: #1732 Signed-off-by: Kazuhito Hagio <k-hagio@ab.jp.nec.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack] Extract Placement plugin from NovaLee Yarwood2019-07-291-0/+112
| | | | | | | | | | | | | | | | | The OpenStack Placement service is being extracted from Nova [1] duringthe Stein development cycle [2]. This change extracts the required plugin logic from the original Nova plugin into a new Placement plugin ahead of this extraction. [1] https://docs.openstack.org/placement/latest/ [2] https://releases.openstack.org/stein/schedule.html Co-Authored-by: Piotr Kopec <pkopec@redhat.com> Resolves: #1676 Signed-off-by: Lee Yarwood <lyarwood@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [frr] FRR pluginPavel Moravec2019-07-091-0/+25
| | | | | | | | | A plugin for FRR alternative to Quagga. Path to conf is /etc/frr/. Resolves: #1666 Signed-off-by: Filip Krska <fkrska@redhat.com> Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [archive] Handle checking container sysroot in _make_leading_pathsPavel Moravec2019-07-093-7/+17
| | | | | | | | | | | | | | | Previously, in _make_leading_paths(), checking host file paths did not account for non / sysroots, for situations where sos is run in a container and the host's / is actually mounted under /host for example. This would lead to copy errors when trying to copy symlinks. This method now will use sysroot if one is set, thus avoiding copy errors. Resolves: #1705 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [archive] convert absolute symlink targets to relativePavel Moravec2019-07-091-0/+5
| | | | | | | | | | Calling _make_leading_paths for a symlink with absolute symlink target must create the symlink relative to the source. This will prevent creating symlinks outside sosreport build dir. Resolves: #1710 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sar] collect whole sar log dirPavel Moravec2019-07-091-17/+2
| | | | | | | | | | | Currently, sosreport does not collect files in saYYYYMMDD or similar format. Assuming sar log dir contains only sar related data it is safe to collect whole dir (up to size limit, from newest to oldest files). Resolves: #1700 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [policies] redhat policy to use hostname instead of rhn idPavel Moravec2019-07-091-23/+0
| | | | | | | | | As rhn is getting obsoleted and each host has its hostname, even redhat policy should use host name as the local name. Resolves: #1702 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [kubernetes] Write resource outputs to subdirsJake Hunsaker2019-05-211-4/+7
| | | | | | | | | | | | Updates the plugin to write 'kubectl get' and 'kubectl describe' output to a subdir named for each resource we iterate over. Additionally, logs output (when using the podlogs option) will be written to the 'pods' subdir. Resolves: #1628 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [podman] Write command output to relevant subdirJake Hunsaker2019-05-211-4/+7
| | | | | | | Updates the plugin to write command output for specific containers, images, volumes, etc... to a subdir named for that resource. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [buildah] Write command output to relevant subdirsJake Hunsaker2019-05-211-2/+4
| | | | | | | Updates the plugin to write command output for specific containers, images, volumes, etc... to a subdir named for that resource. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [docker] Write command output to relevant subdirJake Hunsaker2019-05-211-4/+7
| | | | | | | Updates the plugin to write command output for specific containers, images, volumes, etc... to a subdir named for that resource. Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [plugin] Allow plugins to write to subdirsJake Hunsaker2019-05-211-7/+11
| | | | | | | | | | Calls to add_cmd_output() now support a 'subdir' parameter which, if set, will save command output in a subdir of the plugin's sos_commands/ directory. Fixes: #1600 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [katello] support both locations of qpid SSL certsPavel Moravec2019-05-171-1/+7
| | | | | | | | | | | | | Newer katello versions deploy certs for qpid to /etc/pki/pulp/qpid/client.crt certs instead of /etc/pki/katello/qpid_client_striped.crt . Sosreport should use either of the location that exists, to successfully run few qpid-stat commands. Resolves: #1680 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [unpackaged|RedHat] Don't exit on failed file list queryJake Hunsaker2019-05-142-8/+1
| | | | | | | | | | | | | | | The unpackaged plugin is the only one currently using a policy's file list as determined by PackageManager.all_files(). As such, we should not fail an entire sosreport run when the package file list query fails. Accordingly, the call to all_files() to populate and store the file list is now moved directly into the unpackaged plugin, rather than at policy initialization. Resolves: #1648 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [buildah] parse container list properly even for scratch onesPavel Moravec2019-05-141-1/+1
| | | | | | | | | Scratch containers dont have id, therefore we shall get container name as the latest string on each line instead of 5th. Resolves: #1647 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [foreman] support external postgres DBPavel Moravec2019-05-141-7/+37
| | | | | | | | | When external postgres DB is configured, we should query mongo commands against that DB instead of localhost. Resolves: #1649 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [pulp] support external mongo DBPavel Moravec2019-05-141-2/+31
| | | | | | | | | When external mongo DB is configured, we should query mongo commands against that DB instead of localhost. Related to: #1649 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [pulp] collect db and collection sizesPavel Moravec2019-05-141-0/+29
| | | | | | | | Collect basic db stats and also collection sizes of mongo pulp_database Resolves: #1645 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] Print header before policy initializationJake Hunsaker2019-05-141-3/+3
| | | | | | | | | | | The version header is now printed before policy initialization as part of the SoSReport() constructor instead of in the execute() message. Fixes: #762 Resolves: #1644 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Allow plugins to capture environment variablesJake Hunsaker2019-05-143-4/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a new 'add_env_var()' method to the Plugin class, which allows plugins to specify which environment variables should be recorded in the sos archive. This functions as a whitelist, as only environment variables requested by plugins will be captured. The new method accepts either a single string, or a list of strings. Collection of environment variables is done _after_ we have run collect() for each plugin, and will be written to the 'environment' file in the archive root. Only environment variables that exist will be written, so if a plugin requests an environment variable be captured and it does not appear in the file the chances are good that the variable is not set on the system. Each environment variable will only be captured once - so multiple plugins may specify the same environment variable without an issue. Additionally, when a plugin uses add_env_var(), the value passed as well as an upper- and lower- cased variant of the value will be added to the list of variables to be collected as well. This is because it is a frequent support issue where end users set an incorrectly-cased variable, and support representatives will want to know when this is the case. Because this functionality works off of a whitelist, environment variable values are not sanitized. Note also that due to the variable name casing functionality mentioned above, this means there is a small chance where sensitive data stored in differently-cased variables of the same name as common variables could be unintentionally captured. Use the --no-env-vars option to prevent capturing any environment variables wholesale. Fixes: #1396 Resolves: #1643 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kubernetes] Allow only capturing logs for certain podsJake Hunsaker2019-05-141-0/+10
| | | | | | | | | | | | | | | The 'podlogs' option was previously an all-or-nothing toggle, which could result in incredibly large amounts of data collection when only a few pod's logs were needed. This change adds a 'podlogs-filter' option that allows users to provide either a specific pod name or a regex to match pod names against, to limit the amount of pod logs we collect. Resolves: #1640 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Replace command tuples with a classJake Hunsaker2019-05-141-44/+42
| | | | | | | | | | | | | | | | | Adds a SoSCommand class to represent any command that will be collected by sos. This replaces the previously used command tuples, which had an ever growing length that made it difficult to quickly identify fields in the logs. The _add_cmd_output() method now passes SoSCommand objects to the collect_cmds list, and _get_command_output_now() will now use the class directly when referencing parameters supported by add_cmd_output(). Fixes: #1275 Resolves: #1639 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [manageiq] add postresql configuration pathDavid Luong2019-05-141-1/+5
| | | | | | | | | | | | | | The most recent version of CloudForms adds postgres configuration files at: /etc/managiq/postgresql.conf.d/ Include these in the set of files collected by the plugin. Resolves: #1637 Signed-off by: David Luong <dluong@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [npm] plugin to requires_rootPavel Moravec2019-05-141-1/+0
| | | | | | | | | Until our utils support commands execution for unpriviledged users, we should disable requires_root = False. Resolves: #1625 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [openstack_instack] add ansible.logEmilien Macchi2019-04-301-1/+2
| | | | | | | | | | | | | | | | | | | | Collect /var/lib/mistral/config-download-latest/ansible.log which is an important log to be able to debug issues with Ansible playbooks. /var/lib/mistral/config-download-latest is a directory that exists anyway on the undercloud and is the place where the ansible logs is stored. Note: we don't want to collect the whole /var/lib/mistral because it contains sensitive informations like username/passwords/endpoints. rhbz#1702806 rhbz#1702802 Resolves: #1661 Signed-off-by: Emilien Macchi <emilien@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] update sos.conf manpages by [general] section descriptionPavel Moravec2019-04-301-4/+34
| | | | | | | | | Since PR #1530, sosreport supports all command line options. Man pages should document the enhancement. Resolves: #1652 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] initialize disabled plugins properly when parsing sos.confPavel Moravec2019-04-301-1/+1
| | | | | | | | | opts.noplugins is referred when parsing "tunables" section, so the variable must be set to empty list every time. Resolves: #1651 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [foreman,satellite] increase plugin default timeoutsPavel Moravec2019-04-302-0/+2
| | | | | | | | | | | Those two plugins call commands with bigger timeouts than the default plugin timeout is. That can unexpectedly kill the plugin execution when the commands execution took longer than the plugin timeout (but within cmd timeout). Resolves: #1642 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [maas,mysql,npm,pacemaker,postgresql] fix plugopts data typesPavel Moravec2019-04-305-11/+11
| | | | | | | | | | With new enforcement of implicit data type for plugin options, the plugopts must have proper data types of default values and plugins must work with them accordingly (in tests or so). Resolves: #1635 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [pcp] collect pmlogger without a sizelimitPavel Moravec2019-04-301-1/+1
| | | | | | | | sizelimit=None defaults to --log-size, use sizelimit=0 instead Resolves: #1632 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [vdsm] capture supervdsmd statusIrit goihman2019-04-151-0/+1
|
* [vdsm] change filterIrit goihman2019-04-151-1/+1
|
* [vdsm] drop explicit size limitingIrit goihman2019-04-151-3/+1
|
* [vdsm] use metadata_read_only=1 for LVM2 commandsIrit goihman2019-04-151-0/+5
|
* [vdsm] fix plugin docstring capitalisationIrit goihman2019-04-151-1/+1
|
* [plugins] add vdsm pluginIrit Goihman2019-04-151-0/+146
| | | | | | | | | Add a plugin for vdsm Resolves: #1205 Signed-off-by: Irit Goihman <igoihman@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] add get_process_pids() to return PIDs by process nameirit.go2019-04-151-0/+16
| | | | | Signed-off-by: Irit Goihman igoihman@redhat.com Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sos] bump release3.7Bryn M. Reeves2019-03-272-2/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [origin] make origin.diag-prevent on by defaultPablo Alonso Rodriguez2019-03-271-1/+1
| | | | | | | | | | | Making origin.diag-prevent option "on" by default, so that sosreport does not create/modify/delete projects by default in an OpenShift cluster. Resolves: #1624 Signed-off-by: Pablo Alonso Rodriguez <palonsor@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [foreman] decrease default task export to 1 monthPavel Moravec2019-03-261-3/+3
| | | | | | | | | | | | For bigger foreman deployments, csv postgres queries timeout while users are not much concerned about old tasks. Let decrease default time span to 1 month and increase timeout for collecting those commands. Resolves: #1623 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [archive] opening a file should ignore UTF errorsPavel Moravec2019-03-261-1/+1
| | | | | | | | | When opening a file in archive e.g. for do_file_sub, we should ignore UTF encoding errors to prevent UnicodeDecodeError. Resolves: #1622 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sosreport] do not pass chunksize to ThreadPoolExecutor.map()Bryan Quigley2019-03-261-1/+1
| | | | | | | | | | | | | | | | 3.4 python also appears to be broken by an unnecessary use of the chunksize argument when threading plugins landed. According to the docs it defaults to 1, and has no effect for the ThreadPoolExecutor class: "For very long iterables, using a large value for chunksize can significantly improve performance compared to the default size of 1. With ThreadPoolExecutor, chunksize has no effect." Related: #1603 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>