aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove diagnose() methods from pluginsBryn M. Reeves2012-12-114-57/+0
| | | | | | Delete the diagnose() methods from all modules still using it. The diagnostics feature never worked well and is better implemented to run after-the-fact on the data collected in the tarball.
* Do not attempt to store SELinux context for /proc and /sysBryn M. Reeves2012-12-101-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | Storing a (correct) SELinux context for files in procfs and sysfs leads to tonnes of ugly spew when the tarball is unpacked as these contexts are not permitted on "normal" file systems: tar: sosreport-rhel7-vm1-20121210145629/proc/sys/vm: Cannot setfilecon: Permission denied tar: sosreport-rhel7-vm1-20121210145629/proc/sys/vm/percpu_pagelist_fraction: Cannot setfilecon: Permission denied tar: sosreport-rhel7-vm1-20121210145629/proc/sys/vm: Cannot setfilecon: Permission denied tar: sosreport-rhel7-vm1-20121210145629/proc/sys/vm/scan_unevictable_pages: Cannot setfilecon: Permission denied Etc. Check for these path prefixes in TarFileArchive.add_file() and skip generating a pax header for them. This isn't a perfect fix; it may be better to move this up to a higer layer (i.e. within the Plugin class's file handling routines) and also to filter by context rather than path (since SELinux contexts are a property of an inode not a path and a user could mount these file systems at other locations). This partially fixes Issue #79 but I'll keep it open for the time being to track these improvements.
* Fix typo in systemd moduleBryn M. Reeves2012-12-101-4/+2
| | | | | Forgot to refresh the copy of the module in HEAD; pickup two additional fixes added in testing.
* Add systemd moduleBryn M. Reeves2012-12-101-0/+46
| | | | | | | | | Add a new module to collect systemd information. This is the start of a general re-organisation of the init related information captured by sos. Initially collect systemctl and journalctl command output as well as (some) configuration files owned by the package.
* Move sysctl collection to kernel module and add new locationsBryn M. Reeves2012-12-102-1/+3
| | | | | | | The sysctl configuration and state belongs to the kernel. Reflect this by moving the collection of sysctl.conf to the kernel module (where sysctl -a is already captured) and add collection of the /etc/sysctl.d and /lib/sysctl.d directories.
* Remove obsolete sysreport references from sos.specBryn M. Reeves2012-12-071-2/+0
|
* Obscure password in /etc/keystone/keystone.confBryn M. Reeves2012-12-071-0/+5
|
* Make sar module more robustBryn M. Reeves2012-12-071-7/+27
| | | | | Make the sar module more tolerant of broken environments and users force-enabling the module when its own enabled check fails.
* Remove stray debug code in copy_permissions_filter()Bryn M. Reeves2012-12-071-1/+0
|
* Make TarArchive preserve permissions and SELinux contextBryn M. Reeves2012-12-071-18/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the TarArchive class preserve permissions and SELinux context on all files and directories it collects. This requires us to recursively add the parent directories of any files copied in by full path (or the directory would only be implicitly created and so receive default ownership and permissions and no SELinux context). To make this work, don't call tarfile.add() to recursively add directories - the doCopyFileOrDir machinery in the Plugin class already handles directory recursion properly. Instead when a directory is passed to add_file(), just create a TarInfo record of type tarfile.DIRTYPE and propagate the permissions from the host file system. The SELinux contexts have the unfortunate side-effect of spewing errors if unpacked without --no-selinux as some contexts cannot be placed on some file systems. It may be more useful to eventually store the contexts in the in a file rather than directly in the tarball. Before: drwxr-xr-x. 9 root root 640 Dec 7 00:57 proc lrwxrwxrwx. 1 root root 30 Dec 7 00:57 ps -> sos_commands/process/ps_auxwww drwxr-xr-x. 2 root root 60 Dec 7 00:57 root drwxr-xr-x. 2 root root 80 Dec 7 00:57 sbin After: dr-xr-xr-x. 9 root root 640 Dec 5 19:07 proc lrwxrwxrwx. 1 root root 30 Dec 7 00:58 ps -> sos_commands/process/ps_auxwww dr-xr-x---. 2 root root 60 Dec 7 00:48 root dr-xr-xr-x. 2 root root 80 Dec 7 00:57 sbin More fixes issue #76
* Fix typo in i18n moduleBryn M. Reeves2012-12-061-1/+1
|
* Add /etc/localtime to general moduleBryn M. Reeves2012-12-061-0/+1
|
* Add /etc/locale.conf to i18n moduleBryn M. Reeves2012-12-061-1/+1
|
* Fix exception when sar module enabled on system without sysstatBryn M. Reeves2012-12-061-3/+5
| | | | | The sar module assumes that /var/log/sa exists when it is enabled. Check for its presence and exit from setup early.
* Preserve permissions and ownership for files stored as stringsBryn M. Reeves2012-12-061-1/+11
| | | | | | | | | | Files that are stored as strings bypass the permissions code added in commit 74c1476 since they are added to the archive via add_string(). Add a check to see if a destination exists in the host file system. If it does propagate the permissions to the stored string's tar record.
* Preserve permissions, ownership and times for files in archiveBryn M. Reeves2012-12-061-2/+6
| | | | | | | Stat files during archiving and propagate the mode, atime, uid and gid to the archive. Fixes issue #76
* Handle non-readable files better in doCopyFileOrDirBryn M. Reeves2012-12-061-1/+7
| | | | | | | | | | | Currently a non-readable file causes an exception and resulting error logging as the path is passed blindly to archive.add_file(). There are legitimate reasons why directories colleceted by sos may contain files not readable by root, e.g. in sysfs where there are numerous write-only trigger files. Check the permissions via os.stat() before reading the file and substitute unreadable files with the empty string.
* Move Debian iSCSI target plugin to iscsitarget moduleBryn M. Reeves2012-12-062-16/+25
| | | | | | | | | The Debian iSCSI class implements iscsi target data collection. Move it to the iscsitarget module where it belongs. This needs further work to add an iSCSI initiator implementation for Debian and Ubuntu. That should be very straightforward but needs a system for testing.
* Remove redundant exception handling in postgresql moduleBryn M. Reeves2012-12-061-5/+1
| | | | | | | | | | | | | | | | | If we pass a 'None' into shutil.rmtree() it will os.path.join() that with a string leading to a TypeError: Traceback (most recent call last): File "/usr/sbin/sosreport", line 23, in <module> main(sys.argv[1:]) File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 961, in main sos.execute() TypeError: coercing to Unicode: need string or buffer, NoneType found > /usr/lib64/python2.7/posixpath.py(133)islink() -> st = os.lstat(path) Rather than catch the exception test tmp_dir before calling rmtree.
* Fix PacakgeManager.pkgByName()Bryn M. Reeves2012-12-061-4/+8
| | | | | | | Fix a typo that prevents any package manager queries from succeeding and change the wrapper function to explicitly test the results list rather than relying on an exception to detect an empty result set.
* Restore exception handling and logging in copy_stuff()Bryn M. Reeves2012-12-061-6/+6
| | | | | Now that collectOutputNow is fixed restore the exception handling block and logging in copy_stuff().
* Fix exception in postgresql postproc methodBryn M. Reeves2012-12-061-1/+6
| | | | | Do not assume that tmp_dir has been set and wrap tree deletion in a try block.
* Collect rhsm log files in general moduleBryn M. Reeves2012-12-061-1/+3
|
* Collect subscription-manager output in yum moduleBryn M. Reeves2012-12-061-0/+2
|
* Add /proc/iomem to the hardware moduleBryn M. Reeves2012-12-061-0/+1
|
* Add Red Hat Update Infrastructure moduleBryn M. Reeves2012-12-061-0/+43
|
* Fix line lengths and whitespace in rhn.pyBryn M. Reeves2012-12-061-3/+6
|
* Update RHN module and add spacewalk-debug collectionBryn M. Reeves2012-12-061-12/+14
| | | | | Update the RHN module to match current RHEL6 where relevant and add collection of spacewalk-debug on appropriate systems.
* Do not collect archived accounting files in psacct moduleBryn M. Reeves2012-12-061-1/+9
|
* Set default console loglevel to ERROR not FATALBryn M. Reeves2012-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | Setting the default console loglevel to FATAL causes important log messages to be discarded leading to mysterious failures for e.g. when an unknown option is specified: [root@hex tmp]# sosreport --batch --debug -k psacct.all=True sosreport (version 2.3) [root@hex tmp]# Lolwhut? [root@hex tmp]# sosreport -vvvv --batch --debug -k psacct.all=True sosreport (version 2.3) no such option "all" for plugin (psacct) [root@hex tmp]#
* Add sanlock moduleBryn M. Reeves2012-12-061-0/+36
|
* Fix comment and remove dead code in doExtOutputSubBryn M. Reeves2012-12-061-3/+2
|
* Test for existence of script in hardware moduleBryn M. Reeves2012-12-061-4/+4
| | | | | | Test for the existence of the hardware.py script in the RedHatHardware module instead of relying on an exception from the output gathering functions.
* Fix collectOutputNow to correctly log command execution errorsBryn M. Reeves2012-12-061-15/+11
| | | | | | When a command is not found log and exit from the function early. For all other statuses try to collect output anyway in case anything useful was written to stdout or stderr.
* Fix error message in Plugin base classBryn M. Reeves2012-12-061-3/+6
|
* Fix whitespace and long lines in cluster moduleBryn M. Reeves2012-12-051-42/+58
|
* Obscure password in corosync-objctl outputBryn M. Reeves2012-12-051-0/+1
|
* Rename regex substitution functionsBryn M. Reeves2012-12-0513-21/+21
| | | | | Rename doRegexSub and doRegexExtOutputSub to doFileSub and doExtOutputSub respectively.
* Add implementation of command output post-processingBryn M. Reeves2012-12-052-1/+31
| | | | | | Add a doRegexExtOutputSub() function to mirror doRegExSub(). This allows modukes ti apply an arbitrary regular expression substitution to the output collected from external commands.
* Add fence_virt.conf and corosync command outputs to clusterBryn M. Reeves2012-12-051-0/+5
| | | | Update cluster module to match current rhel-6
* Add missing import statement to libvirt moduleBryn M. Reeves2012-12-051-0/+1
|
* Obscure display passwords in collected libvirt/qemu filesBryn M. Reeves2012-12-051-0/+6
|
* Remove duplicate gluster moduleBryn M. Reeves2012-12-051-26/+0
| | | | | Remove duplicate gluster module accidentally committed while forward porting the current rhel-6 version.
* Collect /proc/pagetypeinfo in memory moduleBryn M. Reeves2012-12-041-1/+2
|
* Fix error logging when calling external programsBryn M. Reeves2012-12-041-0/+2
|
* Avoid deprecated sysctls in /proc/sys/netBryn M. Reeves2012-12-041-0/+6
|
* Collect /etc/multipath in device-mapper moduleBryn M. Reeves2012-12-041-0/+1
|
* Obscure passwords in files collected from ipa moduleBryn M. Reeves2012-12-041-0/+6
|
* Use a default report name if name is empty after sanitizingBryn M. Reeves2012-12-041-0/+3
|
* Update IPA module and related plug-insBryn M. Reeves2012-12-044-7/+91
|