aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Plugin] always use current predicate in log messagesBryn M. Reeves2019-03-221-4/+4
| | | | | | | | | The 'pred' local in collection methods is unused when a default (command or plugin) predicate is in use. Always retrieve the active predicate via get_predicate() when logging predicate decisions. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [man] add --dry-run to sosreport.1Bryn M. Reeves2019-03-221-3/+9
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [npm] do not call self.archive.add_string() directlyBryn M. Reeves2019-03-221-1/+1
| | | | | | | | | | | No plugin code outside of Plugin (and other classes defined in the plugin module itself) should ever access the archive directly: this is so that metadata is created, limits are respected, and predicates applied. Correct npm to use self.add_string_as_file(). Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [unpackaged] check plugin predicate before processing packagesBryn M. Reeves2019-03-221-0/+4
| | | | | | | | | | | | | The unpackaged plugin is unusual in that it does a lot of costly processing in Python, without ever calling out to an external binary. This means that the normal, automatic predicate testing hooks are not executed until we come to add the final string to the archive (by which time we've already done all the work). Make a special case for this plugin, and test the current plugin predicate before operating on package lists. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] factor out common code into Plugin.test_predicate()Bryn M. Reeves2019-03-221-8/+17
| | | | | | | Factor out the common steps to check the current predicate, and use this from the API methods that require it. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] accept predicates in Plugin.add_string_as_file()Bryn M. Reeves2019-03-221-6/+14
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sos] Implement sosreport --dry-runBryn M. Reeves2019-03-225-27/+53
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] gate command collection on docker service predicateBryn M. Reeves2019-03-221-1/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] allow setting default plugin predicatesBryn M. Reeves2019-03-221-0/+33
| | | | | | | | | | | | Allow plugin authors to set default predicates to apply to either all collection, or to all command collection, subsequent to the call to Plugin.set_predicate(). The set predicate will be tested in any subsequent collection call (depending on the type of predicate), and will gate the collection of data requested by those calls. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] use service_is_running() in SoSPredicate()Bryn M. Reeves2019-03-221-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] accept predicates in Plugin.add_journal()Bryn M. Reeves2019-03-221-2/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] accept predicates in Plugin.add_copy_spec()Bryn M. Reeves2019-03-221-1/+6
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] accept predicates in Plugin.get_cmd_output_now()Bryn M. Reeves2019-03-221-1/+7
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] add SoSPredicate implementationBryn M. Reeves2019-03-221-6/+86
| | | | | | | | Add a simple predicate class that can be used to gate collection of certain data without adding conditional code into individual plugins. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Terminate running commands when a plugin exceeds timeoutJake Hunsaker2019-03-223-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | Previously, if a plugin timeout was hit the thread it was running in would be destroyed, however if it were running a command (ultimately handled by a Popen() call), that command would still continue to run under PID 1. This could then cause sos to report I/O exceptions after the archive has been closed with an attempt to write to the temporary directory used for the archive. Now, utilities.sos_get_command_output() accepts (and is handed from Plugin) a polling method that is used to monitor if the timeout has been hit and will call terminate() to end kill the running command if that polling method returns True. For commands run outside of a plugin, previous behavior remains the same since now AsyncReader.get_contents() will block until the command completes (regardless of exit code) rather than relying on the join() when an AsyncReader was initialized as was done before. Fixes: #1590 Resolves: #1615 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [foreman] collect all logrotated patterns and error httpd logsPavel Moravec2019-03-221-3/+3
| | | | | | | | | | Logrotated files can have suffix starting by '-' or '.' also. Additionally, collect also foreman-ssl_error_ssl.log httpd logs. Resolves: #1612 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [candlepin] collect all types of logrotated patternsPavel Moravec2019-03-221-2/+2
| | | | | | | | Logrotated files can have suffix starting by '-' or '.' also. Relevant to: #1612 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [apache] dont collect foreman httpd logsPavel Moravec2019-03-221-0/+6
| | | | | | | | | | | Prevent foreman and apache plugins in collecting the same logfiles but with different sizelimit - dont collect those files in apache plugin itself. Resolves: #1596 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] dont collect tail of fobidden filePavel Moravec2019-03-221-0/+3
| | | | | | | | | | When a file is over sizelimit and we should collect just tail of it, check if the file isnt in forbidden paths first. Relevant to: #1596 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [xfs] call xfs_admin on device namePavel Moravec2019-03-221-1/+1
| | | | | | | | | xfs_admin is called with argument of mounting point while it accepts device name. Resolves: #1610 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [openstack_neutron] fix method name typoBryn M. Reeves2019-03-211-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [foreman] Natively implement foreman-debug in sosJake Hunsaker2019-03-211-7/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the foreman plugin just served to collect the output of the 'foreman-debug' bash script, however even the 'foreman specific' items that were collected when the generic items were skipped included duplicate information sos already collects in other plugins. Additionally, after discussions with senior members of the Red Hat Satellite support team, it was decided that porting the collection of these bits to sos was preferable given the infrastructure sos provides that foreman-debug does not. The truly foreman-specific bits are now collected by the foreman plugin. This includes log files, config files, and command output for Satellite/Foreman-specific rubygems. Additionally, database output that was collected by foreman-debug is now collected by the foreman plugin and the file names are preserved - e.g. 'foreman_settings_table' remains the same. The katello extension for foreman-debug has been split out into a new, separate katello plugin. Resolves: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [virtwho] Collect virt-who -dopJake Hunsaker2019-03-211-0/+1
| | | | | | | | | Adds collection of 'virt-who -dop'. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [squid] Collect rotated log filesJake Hunsaker2019-03-211-5/+6
| | | | | | | | | Adds collection of rotated log files for Red Hat locations. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [named] Collect /etc/default/bind and named.logJake Hunsaker2019-03-211-0/+4
| | | | | | | | | Adds collection of /etc/default/bind and /var/log/named.log. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [postgresql] Add disk usage summary for psql homeJake Hunsaker2019-03-211-0/+1
| | | | | | | | | Adds collection of 'du -sh' for the postgres home directory. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [tftpserver] Add Debian and Ubuntu supportJake Hunsaker2019-03-211-2/+4
| | | | | | | | | | Adds support for this plugin to run on Debian and Ubuntu systems as part of the effort to port foreman-debug to sos plugins. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [mongodb] Add logs from /var/libJake Hunsaker2019-03-211-2/+3
| | | | | | | | | Adds collection of the mongodb log under /var/lib/mongodb Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [redhat] Enable apache.log option for RH Sat presetJake Hunsaker2019-03-211-1/+2
| | | | | | | | | | Sets the Red Hat Satellite preset to enable the apache 'log' option by default so that all of /var/log/httpd is collected Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pulp] Add new pluginJake Hunsaker2019-03-211-0/+72
| | | | | | | | | | Adds a new plugin for pulp as part of the effort to port the foreman-debug script to native sos plugins. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [candlepin] Add new pluginJake Hunsaker2019-03-211-0/+47
| | | | | | | | | | Adds a new plugin for Candlepin as part of the effort to port the foreman-debug script to native sos plugins. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [katello] Add new pluginJake Hunsaker2019-03-211-0/+61
| | | | | | | | | | Adds a new plugin for katello as part of the porting of the foreman-debug script to sos plugins. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [puppet] Collect facter, directory listing, and version outputJake Hunsaker2019-03-211-1/+17
| | | | | | | | | | | Adds collection of 'facter' and the puppet version in use. Additionally collect directory listings for puppet module dirs. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ruby] Add new pluginJake Hunsaker2019-03-211-0/+28
| | | | | | | | | Adds a new plugin for the ruby runtime. Related: #1525 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [samba] Get information about the primary trustAndreas Schneider2019-03-211-0/+1
| | | | | | | Resolves: #1602 Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [samba] Use verbose names and get testparm output firstAndreas Schneider2019-03-211-3/+3
| | | | | | | Related: #1602 Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [apache] honour --log-sizePavel Moravec2019-03-211-22/+20
| | | | | | | | | Honour --log-size option for collecting logs and dont use the hardcoded 5/15MB size limit. Resolves: #1203 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [kubernetes] Collect vm/vmi information if CNV is in useJake Hunsaker2019-03-211-0/+5
| | | | | | | | | | If CNV is installed ontop of the base kubernetes installation, collect output for the 'vms' and 'vmis' resources as well as virtctl. Resolves: #1599 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_neutron] skip collecting /var/lib/neutron/lockPavel Moravec2019-03-211-0/+5
| | | | | | | | | Since the directory can have huge number of less important files, don't collect but just list them. Resolves: #1598 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [systemd] avoid collecting /dev/nullBryan Quigley2019-03-211-0/+1
| | | | | | | | | | | | | | | | | | Avoid "collecting" /dev/null as part of the systemd plugin. In my testing that was the only plugin that brought it in. Creating these character devices makes it harder to manage (delete) extracted sosreports without more permissions. This supersedes #1469 which removed the ability to "collect" char devices. As we only have one example today, let's just exclude that. Resolves: #1595 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [nfs-ganesha] Update nfs-ganesha service log locationsSoumya Koduri2019-03-211-2/+1
| | | | | | | | | | nfs-ganesha service logs are now located at "/var/log/ganesha/" directory by default. Updating the same in sos plugin. Resolves: #1593 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [systemd] List-jobs already addedBryan Quigley2019-03-211-1/+0
| | | | | | | | | Removing the dupicate entry Resolves: #1591 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [dbus] Collect busctl outputJake Hunsaker2019-03-211-0/+4
| | | | | | | | | Adds collection of busctl list and status. Resolves: #1589 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [crio] Update plugin to use inspeecti/p commandsJake Hunsaker2019-03-211-17/+31
| | | | | | | | | | | | | | | | | Updates the crio plugin to use the 'inspecti' and 'inspectp' subcommands for images and pods respectively. Additionally filter out the socket deprecation warning from being iterated over. Adds collection of 'ps -v' and updates the journal unit to 'crio' instead of 'cri-o'. Now collects all of /etc/containers, and adds collection of crio files under /etc/sysconfig. Resolves: #1588 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [buildah] Collect --all separately for containers and imagesJake Hunsaker2019-03-211-7/+11
| | | | | | | | | | | | | Adds a separate collections of --all for both the containers and images lists. Also, small fix to rename a variable to avoid using the same variable name twice. Resolves: #1582 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [podman] Correct command collection, add volume info collectionJake Hunsaker2019-03-211-12/+29
| | | | | | | | | | | | | | | | | | | | | | | Updates the podman plugin to collect volume information such as 'volume ls' and 'volume inspect' for every reported volume. Additionally, corrects the inspect iteration to not potentially call 'podman logs' on image IDs, only container IDs. The image inspect commands will also now use the image name unless either the name or tage includes 'none', in which case the image ID is used. Removes the attempt to collect a podman journal - podman does not log to a journal unit. Finally adds '--all' to the stats command, as podman requires this option when not specifying specific containers. Resolves: #1579 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [mysql] Collect galera cluster node stateJose Castillo2019-03-211-0/+1
| | | | | | | | | | | | | | | | | | | This patch collects the galera mysql node state stored in the following file: /var/lib/mysql/grastate.dat It contains details of the galera node like version, uuid, seqno, and current value in that node of safe_to_bootstrap. The idea is that for a galera mysql cluster, we'll get this status file from each node in the sosreport, and we'll have a fuller picture of the issue. Resolved: #1577 Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [nvme] Adjust per-device command collectionJake Hunsaker2019-03-211-9/+15
| | | | | | | | | | | | | Removes 'nvme list' from repeated collection, instead only capturing it once and further collection 'nvme list-subsys'. Additionally adds per-device collection of smartctl output for further SMART information than what is provided by smart-log, and get-ns-id. Resolves: #1576 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [rasdaemon] Add new pluginJake Hunsaker2019-03-211-0/+35
| | | | | | | | | | Adds a new plugin for rasdaemon - a monitor for platform Reliability, Availability, and Serviceability (RAS) reports. Resolves: #1575 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [memory] Add lsmem collectionJake Hunsaker2019-03-211-1/+2
| | | | | | | | | | Adds collection of lsmem output for all memory blocks to the memory plugin. Resolves: #1573 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>