aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Plugin] Make Plugin.policy an object instead of a functionJake Hunsaker2018-04-1713-33/+45
| | | | | | | | | | Moves Plugin.policy to be an object for plugins instead of a function, making it easier to leverage the active policy within sos plugins. Resolves: #1179 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Allow policies to change report name generationJake Hunsaker2018-04-176-36/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the way sos generates the name for the final archive. Policies may now control the naming pattern by changing the new 'name_pattern' attribute. By default, this is set to 'legacy' for all policies, and maintains the naming pattern that sos has used up until this point. A policy may also set name_pattern to 'friendly' which will result in a more user-friendly name for the archive. Additionally, a policy may set name_pattern to a format() parsable string to explicitly set how the tarball should be named. Additionally, this removes the prompt for a 'customer name' on the report when running interactively. Instead, the short hostname of the system is now always used in place of the 'customer name'. A new option, --label, has been added (and which --name will now map to) which if provided will append a user-given string to the archive name after the hostname. This also sets the Red Hat policy to use the new 'friendly' pattern. Closes: #469 Resolves: #1175 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [azure] Added instance metadata and curl to RHUI if on demand image.Takayoshi Tanaka2018-04-171-2/+30
| | | | | | | | | | | | | | | | Instance metadat is useful to investigate the virtual machine properties. We will find the base image, size, location and so on from it. Also, connectivity to RHUI repo is required to work property for Azure RHEL On-Demand image. We fixed the WALinuxAgent package name type to enable this plugin by default when WALinuxAgent is running. It's usually running only on Azure. Resolves: #1145 Signed-off-by: Takayoshi Tanaka <tatanaka@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_cinder] check for api service running via cinder_wsgiMartin Schuppert2018-04-162-12/+26
| | | | | | | | | | | With OSP11 cinder api changed to run via https wsgi. To check for running cinder-manage command we also need to take this situation. The change checks for cinder_wsgi process. Resolves: #1178 Signed-off-by: Martin Schuppert <mschuppert@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [general|host|date] Break up general into other pluginsJake Hunsaker2018-04-166-78/+107
| | | | | | | | | | | | | | | | | | | | | | Breaks up the general plugin into other plugins, some of them new, to better logically align collected items with relevant plugins. Adds the date plugin to collect system-time related information such as 'date' and 'hwclock' output. Adds the host plugin to capture host information like hostname, uptime, etc. Renames the lsbrelease plugin to 'release', and adds collection of /etc/*release files. Moves collection of /proc/stat to the process plugin, and /etc/sysconfig and /etc/default to the system plugin. Resolves: #1177 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [gluster] Optionally enable dumpSachin Patil2018-04-161-21/+23
| | | | | | | | | | | | | | | | | | | | | | | Currently a dump is collected every time sosreport is run. Dump is not required by Gluster support team and also consumes space in `/var/run/gluster/` unnecessarily. This patch adds an option to enable dump only when required using ``` -k gluster.dump ``` Usage: ``` sosreport -o gluster -k gluster.dump ``` Dump will is disabled by default. Resolves: #1174 Signed-off-by: Sachin Patil <psachin@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_glance|heat|nova] fix api container namesMartin Schuppert2018-04-163-3/+3
| | | | | | | | | | Container names of glance, heat and nova api was not correct when verify if a the container is running. Resolves: #1172 Signed-off-by: Martin Schuppert <mschuppe@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [opendaylight] collect more logs and puppet configPavel Moravec2018-04-161-5/+16
| | | | | | | | | collect puppet-generated config, container and docker logs Resolves: #1171 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] allow add_cmd_output to collect binary outputPavel Moravec2018-04-164-20/+49
| | | | | | | | | | | If a command output is a true binary data, allow add_cmd_output to collect the raw content and dont try to decode it as UTF-8. Resolves: #1169 Closes: #1170 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] Collect daemon.json for all OSesJake Hunsaker2018-04-161-1/+1
| | | | | | | | | | | | | The Red Hat packaging of docker now also supports using /etc/docker/daemon.json for configuring docker. This moves collect of daemon.json from being Ubuntu-only to being for any OS installation. Resolves: #1168 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Fix debian policy PackageManager misusage.Eric Desrochers2018-04-161-4/+8
| | | | | | | | | | | | | | | | Python does not impose any kind of ordering on keyword args, but if the keywords are missing it will still attempt to honour the call by mapping positional call arguments to corresponding keywords in the declaration. In this case the Debian policy invokes the PackageManager call as though it only uses positional arguments. This is undoubtedly wrong. Resolves: #1162 Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [networking] Add netplan data collection for Ubuntu.Eric Desrochers2018-04-161-1/+4
| | | | | | | | | | | | | | | Netplan is a YAML network configuration abstraction for various backends (NetworkManager, networkd). It reads network configuration from /etc/netplan/*.yaml. Related documents: https://wiki.ubuntu.com/Netplan https://wiki.ubuntu.com/Netplan/Design Resolves: #1161 Signed-off-by: Eric Desrochers <eric.desrochers@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [boot] Add Debian/Ubuntu package namesBryan Quigley2018-04-161-1/+1
| | | | | | | Resolves: #1157 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_horizon] fix password obfuscate in local_settingsMartin Schuppert2018-04-161-2/+2
| | | | | | | | | | | commit d0bcd552f4bc2119afd2a835f4e5ec1107421f40 broke the replacement of the protect_keys for the main local_settings config file. Resolves: #1151 Signed-off-by: Martin Schuppert mschuppe@redhat.com Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [btrfs] Add filesystem pluginBryan Quigley2018-04-161-0/+34
| | | | | | | | | | | Adds btrfs filesystem show as that shows if there are btrfs partitions or not, and also show version of btrfs command. Closes: #1112. Resloves: #1127. Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] Add gathering of systemd journal from previous bootRenaud Métrich2018-04-161-0/+2
| | | | | | | | | | | This is very useful to debug RHEL7 shutdown issues. To have the logs be collected, it expects the customer to have Persistent Storage for the journal turned on. Resolves: #1125 Signed-off-by: Renaud Métrich <rmetrich@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_nova] Add fixed_key to the list of protected keysLee Yarwood2018-04-161-1/+1
| | | | | | | Resolves: #1123 Signed-off-by: Lee Yarwood <lyarwood@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [clear_containers] Add new plugin for Clear ContainersJames O. D. Hunt2018-04-041-0/+89
| | | | | | | | | | | | | | | Add a new plugin for the Intel(R) Clear Containers runtime (`cc-runtime`). See: - https://github.com/clearcontainers/runtime - https://github.com/clearcontainers Resolves: #1119 Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] Allow selection of journal entries by identifierJames O. D. Hunt2018-04-041-1/+6
| | | | | | | Added an "identifier=" option to Plugin.add_journal() to allow system journal entries to be selected by identifier. Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
* [postgresql] Run on -common package being present tooBryan Quigley2018-04-041-1/+1
| | | | | | | | | | | | | | | On Ubuntu and Debian the postgresql package is a meta package pointing to the latest postgresql package. It's not required to be installed to have postgresql. This adds checking for postgresql-common package which has to be installed if they are running a server. Resolves: #1103 Closes: #1117 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [development] .gitignore for pycharmaleksander.baranowski2018-04-041-0/+12
| | | | | | | | | | | Add entries to gitignore based on: github.com/github/gitignore/blob/master/Global/JetBrains.gitignore Resolves: #1113 Signed-off-by: aleksander.baranowski <aleksander.baranowski@yahoo.pl> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Collect Pacemaker 2.0 log locationsKen Gaillot2018-04-041-2/+6
| | | | | | | | | | | | Upstream changed the intended new log locations in the Pacemaker 2.0.0 release cycle, so add them (they will stay the same in the 2.0.0 final release). Keep the /var/log/cluster locations added previously, as many users prefer to configure those. Resolves: #1106 Signed-off-by: Ken Gaillot <kgaillot@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Improve Pacemaker distribution-specific classingKen Gaillot2018-04-041-19/+40
| | | | | | | | | | | Follow the usual model of generic Plugin as superclass for distribution-specific classes, and don't collect crm shell on Red Hat (which doesn't ship it). Resolves: #1106 Signed-off-by: Ken Gaillot <kgaillot@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Improve Pacemaker password scrubbingKen Gaillot2018-04-041-7/+19
| | | | | | | | | | Scrub the crm shell output as well as the pcs output, and use an equivalent scrub pattern in all places. Resolves: #1106 Signed-off-by: Ken Gaillot <kgaillot@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Collect new Pacemaker log locationsKen Gaillot2018-04-041-5/+13
| | | | | | | | | | The default log locations will change in Pacemaker 2.0, so prepare for that now. Resolves: #1106 Signed-off-by: Ken Gaillot <kgaillot@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [pacemaker] Collect info if only pacemaker-remote is installedKen Gaillot2018-04-041-1/+4
| | | | | | | | | | A Pacemaker node may have either pacemaker or pacemaker-remote installed. Resolves: #1106 Signed-off-by: Ken Gaillot <kgaillot@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [zfs] Get zpool propertiesAldo Sotolongo2018-04-041-0/+6
| | | | | | | | | Get properties output for all zpools. Closes: #1104 Signed-off-by: Aldo Sotolongo <aldenso@gmail.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [rabbitmq] Mask default password in rabbitmq.confJose Castillo2018-04-041-0/+3
| | | | | | | | | | | | Use do_file_sub() to mask the default password in the config file /etc/rabbitmq/rabbitmq.conf, and solve issue #840. Fixes: #840 Closes: #1100 Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kubernetes] Collect metrics from masterPep Turró Mauri2018-04-041-2/+4
| | | | | | | | | | Add an invocation to 'kubectl get --raw /metrics' to obtain metrics from the kubernetes master. Resolves: #1099 Signed-off-by: Pep Turró Mauri <pep@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] Collect new registry config locationJake Hunsaker2018-04-041-1/+2
| | | | | | | | | | | | | | For the Red Hat release of docker, registries are now configured in /etc/containers/registries.conf instead of /etc/sysconfig/docker. This patch adds collection of /etc/containers to collect registry configuration files. /etc/sysconfig/docker can still be used for daemon configuration, so that is still collected. Resolves: #1096 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [filesys] tidy up file list and collect /prof/fsBryn M. Reeves2018-03-281-2/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [xfs] Add xfs_admin informationThiago Rafael Becker2018-03-281-0/+1
| | | | | | | | | | | Some information about xfs volumes is unavailable when using xfs_info, namely UUId an label of the volume. This information is sometimes needed to debug other facilities. Resolves: #1087 Signed-off-by: Thiago Rafael Becker <thiago.becker@gmail.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [chrony] don't resolve clients' hostnamesMiroslav Lichvar2018-03-281-1/+1
| | | | | | | Related: #1081 Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [chrony] add more chronyc commandsMiroslav Lichvar2018-03-281-0/+3
| | | | | | | Resolves: #1081 Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ovirt] Obfuscate passwords in backup config files.Jake Hunsaker2018-03-281-1/+1
| | | | | | | | | | | | Previously, backup copies of config files under /etc/ovirt-engine would not be obfuscated properly. This patch corrects this by also matching any string following '.conf' in the file name. Resolves: #1074 Closes: #1075 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [networking] Collect lifetime of L2 addressesMichele Baldessari2018-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | Currently we do this: $ ip neigh show 172.16.16.254 dev wlp3s0 lladdr 00:0d:b9:37:2e:71 STALE 172.16.11.5 dev enp0s25 lladdr d0:50:99:19:29:eb REACHABLE 172.16.15.254 dev enp0s25 lladdr 00:0d:b9:37:2e:70 REACHABLE 172.16.11.113 dev enp0s25 FAILED It is often quite useful to understand what the lifetime of those L2 addresses are: $ ip -s -s neigh show 172.16.16.254 dev wlp3s0 lladdr 00:0d:b9:37:2e:71 used 179/174/54 probes 1 STALE 172.16.11.5 dev enp0s25 lladdr d0:50:99:19:29:eb ref 1 used 22/22/22 probes 1 REACHABLE 172.16.15.254 dev enp0s25 lladdr 00:0d:b9:37:2e:70 ref 1 used 32571/1/0 probes 4 REACHABLE 172.16.11.113 dev enp0s25 used 18194/18284/18192 probes 6 FAILED Resolves: #1069 Signed-off-by: Michele Baldessari <michele@acksyn.org> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [wireless] add RedHat subclass and package/file listsBryn M. Reeves2018-03-281-1/+9
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [wireless] use 'network' profile instead of 'networking'Bryn M. Reeves2018-03-281-1/+1
| | | | | | | | Slightly confusingly the _plugin_ is 'networking', but the profile name is 'network': make the new wireless plugin fit in with the other plugins in this group. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [wireless] Add new plugin for capturing wireless infoBryan Quigley2018-03-281-0/+34
| | | | | | | | | Currently includes iw list/dev, iwconfig, and iwlist scanning. Closes: #1067 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kernel] Use modinfo_ALL_MODULES as filenameBryan Quigley2018-03-281-1/+3
| | | | | | | | | | | | | | | | | | We've found the modinfo autogenerated name ends up being too long for some filesystems (specifically ecryptfs). This just changes the name to modinfo. It used to be something like: modinfo_cpuidle_pcie_aspm_ccp_kernel_pstore_edac_core_pci_hotplug_ rcupdate_mousedev_vt_x_tables_processor_lp_r8169_8250_snd_hda_ intel_xen_netfront_crypto_simd_efivars_i2c_piix4_sysimgblt _pciehp_macvlan_i2c_designware_core_gpio_generic_uvcvideo_usbhid_ther Added /sys/module/*/version which in my testing let us capture at least something for every module that is available in /sys/module. Closes: #1064 Signed-off-by: Bryan Quigley <bryan.quigley@canonical.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ovirt] reduce line lengths by storing command names in localsBryn M. Reeves2018-03-281-10/+9
| | | | | | | The new oVirt command names are very long: define them once in local variables in setup() and reference these in collection calls. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ovirt] Capture domain information for v4 and resolve #947Jake Hunsaker2018-03-281-2/+22
| | | | | | | | | | | | | | | In ovirt 4.x, the engine-manage-domains tool is no longer used, being replaced by ovirt-aaa-jdbc-tool. This patch uses the correct utility based on which is available on the ovirt manager. Additionally, the jbosstrace option will now only work where ovirt-engine is installed (instead of just dwh), resolving #947. Resolves: #947 Closes: #1063 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] handle KeyboardInterrupt separately in execute()Bryn M. Reeves2018-03-281-2/+5
| | | | | | | Exit on user cancel should use 130 (128 + SIGINT) as the exit status. Treat it separately from other top-level exceptions. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] log exception detail when waiting on user inputBryn M. Reeves2018-03-281-2/+6
| | | | | | | | If we catch an exception while waiting on user input, exit with status 130 if the exception is KeyboardInterrupt, otherwise log the exception text and exit with the exception as the status. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] remove exception handling from SoSReport.cleanup()Bryn M. Reeves2018-03-281-11/+8
| | | | | | It's pointless catching exceptions only to re-raise them. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Fix exit status propagationJake Hunsaker2018-03-282-3/+8
| | | | | | | | | | | | | | | This fixes exit status propagation so that sos will now properly exit with a non-zero exit code when appropriate, such as when a keyboard interrupt is issued. Additionally, this fixes an issue when a NameError would be hit when using --debug due to FileNotFoundError not existing in python 2.7. Resolves: #672 Closes: #1062 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [xfs] Remove logprint and add xfs statsJake Hunsaker2018-03-281-7/+1
| | | | | | | | | | | | | Removes the logprint option which wasn't particularly useful for sos to capture, reference Red Hat Bugzilla 1250035. Adds collection of /prox/fs/xfs which has useful xfs statistics. Resolves: #621 Closes: #1061 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] Replace optparse with argparseJake Hunsaker2018-03-271-125/+107
| | | | | | | | Optparse is deprecated, this patch converts sos to use argparse instead. Resolves #738 Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
* [lustre] Add Lustre filesystem pluginNathaniel Clark2018-03-271-0/+57
| | | | | | | | | | | | | | | | This collects some basic information about the configuration of Lustre on either a client or a server, including: * Interal ring buffer log * Basic configuration information * Quota information * Configuration of LNet * JobID info * LDLM connection states Fixes: #1058 Signed-off-by: Nathaniel Clark <Nathaniel.Clark@misrule.us> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [nvme] Create nvme pluginRodrigo R. Galvão2018-03-271-0/+43
| | | | | | | | | | | | | This plugin collects configuration and system information about NVMe devices. The nvme-cli tool is used to get relevant information about firmware, supported commands, serial, model, usage, etc.. Fixes: #1053. Signed-off-by: Rodrigo R. Galvao <rosattig@br.ibm.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>