aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [archive] invert sense of six.PY2 testBryn M. Reeves2014-10-011-1/+1
| | | | | | | | | Old versions of six do not include a 'PY2' attribute leading to an exception in sos_get_command_output(). Invert the sense of the test and check that six.PY3 is false instead as all versions of the module include this attribute. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [utilities] invert sense of six.PY2 testBryn M. Reeves2014-10-011-1/+1
| | | | | | | | | Old versions of six do not include a 'PY2' attribute leading to an exception in sos_get_command_output(). Invert the sense of the test and check that six.PY3 is false instead as all versions of the module include this attribute. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sos] bump version to 3.23.2Bryn M. Reeves2014-09-301-1/+4
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] remove add_copy_specs()Bryn M. Reeves2014-09-30119-181/+169
| | | | | | | | | | | Merge add_copy_specs() into add_copy_spec() and treat any strings passed to the new method as though they were a single item list. Mirrors the prior change to add_cmd_outputs(). Fixes #301. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [Plugin] remove add_cmd_outputs()Bryn M. Reeves2014-09-3058-82/+79
| | | | | | | | | | | Remove add_cmd_outputs() and allow add_cmd_output() to accept a list of commands to invoke. Add a check and warn via the logs if a plugin attempts to use 'root_symlink' or 'suggest_filename' with a command list of length > 1. Fixes #301. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kpatch] new pluginBryn M. Reeves2014-09-301-0/+38
| | | | | | Based on a suggestion from Marc Milgram in rhbz#1110918. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [cups] add /etc/cups/*.typesBryn M. Reeves2014-09-231-0/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [general] fix typo in hostname symlinkBryn M. Reeves2014-09-181-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [emc,powerpath] move PowerPath collection into its own pluginBryn M. Reeves2014-09-182-113/+63
| | | | | | | | | Move PowerPath functionality into a new powerpath plugin and remove the (now empty) EMC plugin. Fixes: #257. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [emc,navicl] move navicli collection into its own plugin.Bryn M. Reeves2014-09-182-78/+92
| | | | | | Related: #257. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [emc,symcli] move symcli collection into its own plugin.Bryn M. Reeves2014-09-182-72/+96
| | | | | | Related: #257. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [general] collect 'hostname' as well as 'hostname -f'Bryn M. Reeves2014-09-181-5/+2
| | | | | | | | | | | | | | | The --fqdn option to hostname depends on the system resolver configuration. On hosts where the fqdn is undefined the command may return: "hostname: Name or service not known" Since hostname will at least give the locally configured name regardless of resolver or DNS state collect both commands. Fixes #404. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_neutron] set correct plugin nameBryn M. Reeves2014-09-181-1/+1
| | | | | | Fixes #394. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [archive] introduce py2.6 TarFile compat wrapperBryn M. Reeves2014-09-181-1/+78
| | | | | | | | | | | Python 2.6 lacks the filter parameter to TarFile.add() that the TarFileArchive uses to preserve permissions on archive content. Work around this by creating a wrapper class that implements the missing functionality (duplicated from the py2.7.5 tarfile.py) and use it whenever running on a python version less than 2.7. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [utilities] do not pass unicode to shlex on PY2 runtimesBryn M. Reeves2014-09-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | Running sos-3.2beta on a python2.6 runtime leads to: File "/usr/sbin/sosreport", line 25, in <module> main(sys.argv[1:]) File "/usr/lib/python2.6/site-packages/sos/sosreport.py", line 1408, in main sos.execute() TypeError: execve() argument 1 must be encoded string without NULL bytes, not str > /usr/lib64/python2.6/subprocess.py(1234)_execute_child() -> raise child_exception This occurs because some command output is interpreted as unicode by the Python runtime. When this output is processed in a plugin and passed back down to sos_get_command_output() it leads to the above exception. Work around the problem by encoding strings passed to shlex.split on older Python versions. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docs] update references to report optionsBryn M. Reeves2014-09-171-3/+3
| | | | | | | | | The --report switch was changed to --no-report a while back. Update the docs to reflect the new option. Fixes #396. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [apt] Removing leftover debugging codeLouis Bouchard2014-09-171-1/+0
| | | | | Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com> Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
* [apt] switching shell crap to python syntaxLouis Bouchard2014-09-171-6/+7
| | | | | | | Avoid long string of piped shell commands at all cost Fixes: #398 Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
* [keyutils] add to the storage profileBryn M. Reeves2014-09-171-1/+1
| | | | | | | Since keyutils is used by several storage components (NFS idmap service, cifs) add it to the 'storage' profile. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [keyutil] add kernel keyring tools supportBryn M. Reeves2014-09-171-0/+35
| | | | | | | Based on a request from Bill Yodlowsky. Collect request-key configuration and the output of 'keyctl show'. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sos] bump release to 3.2b1Bryn M. Reeves2014-09-171-1/+10
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [juju] Fix backtrace from juju pluginLouis Bouchard2014-09-171-0/+1
| | | | | | | | Restrict plugin execution to when juju is installed Fixes #400 Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com> Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
* [teamd] add plugin for network teaming driverBryn M. Reeves2014-09-171-0/+54
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [memory,processor] add to the 'memory' profileBryn M. Reeves2014-09-172-2/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [numa] new plugin for NUMA informationBryn M. Reeves2014-09-171-0/+45
| | | | | | | | | And define a new 'memory' profile to group related plugins together. Fixes #226. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] change description of non-default pluginsBryn M. Reeves2014-09-161-1/+1
| | | | | | | | | | | | | | | | | | | | Plugins are currently listed as 'not default' if the plugin's default_enabled() method evaluates to False: sendmail inactive sendmail service snmp inactive Simple network management protocol soundcard not default Sound devices squid inactive Squid caching proxy It sounds odd and it looks ugly in the plugin listing. Change the description to 'optional': sendmail inactive sendmail service snmp inactive Simple network management protocol soundcard optional Sound devices squid inactive Squid caching proxy Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] fix whitespace errorsBryn M. Reeves2014-09-161-0/+2
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [soundcard] make plugin default enabledBryn M. Reeves2014-09-161-3/+0
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [satellite] make plugin default enabledBryn M. Reeves2014-09-161-3/+0
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [gluster] remove unnecessary default_enabled()Bryn M. Reeves2014-09-161-3/+0
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] profile listing improvementsBryn M. Reeves2014-09-161-13/+30
| | | | | | | | | | | Add a listing of available profiles at the end of --list-plugins output and add plugin and profile counts to the output of both --list-plugins and --list-profiles. Also factor out some common code for formatting commas-separated multi-line lists. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [utilities,plugin] check for return status 126Bryn M. Reeves2014-09-162-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A return status of 126 indicates 'found but not executable'. This is returned from timeout for some malformed commands when running as a normal user but not when running as root, e.g.: Running 1/1: multipath... [plugin:multipath] collecting path '/etc/multipath/' [plugin:multipath] unpacked command tuple: ('['multipath -l', 'multipath -v4 -ll']', 'None', 'None', 300, 'None') [plugin:multipath] collecting output of '['multipath -l', 'multipath -v4 -ll']' Traceback (most recent call last): File "/usr/sbin/sosreport", line 25, in <module> main(sys.argv[1:]) File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1389, in main sos.execute() AttributeError: 'list' object has no attribute 'split' > /usr/lib/python2.7/site-packages/sos/plugins/__init__.py(563)get_cmd_output_now() -> % (exe.split()[0], time() - start)) (Pdb) bt /usr/sbin/sosreport(25)<module>() -> main(sys.argv[1:]) /usr/lib/python2.7/site-packages/sos/sosreport.py(1389)main() -> sos.execute() /usr/lib/python2.7/site-packages/sos/sosreport.py(1369)execute() -> self.collect() /usr/lib/python2.7/site-packages/sos/sosreport.py(1144)collect() -> plug.collect() /usr/lib/python2.7/site-packages/sos/plugins/__init__.py(633)collect() -> self._collect_cmd_output() /usr/lib/python2.7/site-packages/sos/plugins/__init__.py(613)_collect_cmd_output() -> timeout=timeout, runat=runat) > /usr/lib/python2.7/site-packages/sos/plugins/__init__.py(563)get_cmd_output_now() -> % (exe.split()[0], time() - start)) (Pdb) result {'status': 126, 'output': u"timeout: failed to run command '[multipath -l,': Permission denied\n"} Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [multipath] fix add_cmd_output usageBryn M. Reeves2014-09-161-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* Try to ensure FQDN of host is collectedPeter Portante2014-09-161-1/+6
| | | | | | | | | Not all systems are required to have the generic hostname command return the FQDN. We have encountered customers who require the a short name by default. Adding the "-f" output helps to get that information. Signed-off-by: Peter Portante <peter.portante@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] make journalctl log collection honour all_logsBryn M. Reeves2014-09-161-1/+5
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] improve log collection for journald-only configurationsBryn M. Reeves2014-09-161-1/+14
| | | | | | | | | | If no syslog exists collect the last three days worth of journald logs by default and allow the user to specify a "log_days" option to control the data collected. Fixes #325. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [systemd,logs] move journalctl logs to logs pluginBryn M. Reeves2014-09-162-2/+4
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] fix use of -o and -n without --profileBryn M. Reeves2014-09-161-1/+4
| | | | | | | | Break the logic of the combined 'onlyplugins' and profile check out to make it more readable and fix a bug that caused all default plugins to be enabled when running '-o someplug'. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docker] optional log capturing for all containersAdam Stokes2014-09-161-2/+9
| | | | | | | | | | This options provides the user the ability to pull logs from all containers including the terminated/stopped. Fixes #360 Fixes #365 Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
* [sosreport] fix test in SoSReport._is_in_profile()Bryn M. Reeves2014-09-161-1/+1
| | | | | | | | All plugins belong to the null (empty) plugin. Fix the test in _is_in_profile() to check against the list of active profiles and not the list of all detected profiles. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] do not truncate mangled command namesBryn M. Reeves2014-09-162-3/+1
| | | | | | | | | There's no reason to truncate mangled command names within an archive. This isn't MS-DOS 3.1 and there are cases where the 64 character limit causes a loss of uniqueness and resulting name collisions (e.g. namespaced network commands). Fixes #388.
* [ssmtp] add sSMTP pluginBryn M. Reeves2014-09-161-0/+42
| | | | | | Fixes #395. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] allow --profile with -o and -nBryn M. Reeves2014-09-161-5/+9
| | | | | | | | | | | Allow the user to fine-tune the set of enabled plugins using the -o (--only-plugins) and -n (--skip-plugins) options. These add and remove plugins from the set defined by the active profile(s). Both options may be specified multiple times, or given lists of plugins to operate on. E.g.: Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] initial profiles supportBryn M. Reeves2014-09-163-7/+102
| | | | | | | | | | | | | | | | | | | Add simple profile support. Plugins can define a 'profiles' attribute that contains a list of profile names that this plugin belongs to. If a profile is given on the command line only plugins belonging to that profile will run. Two new command-line options are introduced in thie commit: --list-profiles --profile=NAME Profiles can be combined with -l/--list-plugins in order to see the effect of the profile on the set of enabled plugins. Fixes #247. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] improve plugin class docstringsBryn M. Reeves2014-09-16152-311/+161
| | | | | | | | | | | | | Plugin class docstrings should be a brief (42 characters or less) description of the component the plugin supports. This is needed since the class docstring is displayed in the table of enabled plugins when running 'sosreport --list-plugins'. Class docstrings should not describe the distribution a particular class runs on; this is redundant since only plugins tagges with a class matching the running policy will be displayed. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kernelrt,mrgmessg,mrggrid] add MRG profileBryn M. Reeves2014-09-163-3/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [nfs,nfsserver,sunrpc,autofs] add NFS profileBryn M. Reeves2014-09-164-4/+4
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [apache,selinux,openshift] add OpenShift profileBryn M. Reeves2014-09-163-3/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] add initial profile tags to all pluginsBryn M. Reeves2014-09-16159-14/+168
| | | | | | | | | | | | | | | | | Add an initial profile tag list to each plugin base class. A tag list is a tuple of strings indicating the set of profiles that should select this plugin, e.g.: plugin_name = "qux" profiles = ('system', 'storage', 'foo) A follow up patch will add infrastructure to use these tag lists to allow the user to select a logically-related set of plugins by specifying a profile on the command line: # sosreport -v --batch --profile=storage Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docs] improve man page descriptions of --ticket and --case-idBryn M. Reeves2014-09-161-4/+12
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>