| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
The grub.conf configuration file collected by the grub plugin may
contain a plaintext or md5 hashed bootloader password. Add a regex
substitution for all files matching '.*\/grub\.conf' and replace
the password with '*'s.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Plugin.do_path_regex_sub() method to apply regex substitutions
to paths matching a pattern documents that it accepts either a
compiled re object or a regular expression as a string:
'''Apply a regexp substituation to a set of files archived by
sos. The set of files to be substituted is generated by matching
collected file pathnames against pathexp which may be a regular
expression string or compiled re object. The portion of the file
to be replaced is specified via regexp and the replacement string
is passed in subst.'''
It lies. Attempting to pass a string for the 'pathexp' parameter
will result in:
Traceback (most recent call last):
File "/usr/sbin/sosreport", line 23, in <module>
main(sys.argv[1:])
File "/usr/lib/python2.6/site-packages/sos/sosreport.py", line 1229, in main
sos.execute()
AttributeError: 'str' object has no attribute 'match'
> /usr/lib/python2.6/site-packages/sos/plugins/__init__.py(219)do_path_regex_sub()
-> match = pathexp.match
Look to see if the object we are passed has a 'match()' method and
call re.compile on it if it does not.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Several plugins still tried to use the old tuple based return
values for self.call_ext_prog(). Convert them to use the
dictionary values instead.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
now that travis-ci supports python 3.4 we make the unittests pass on that
version a requirement.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
| |
The lvm2 commands that sos issues are all read-only. Disable
locking when running the commands to avoid blocking if another
process or node is holding a lock.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
The oVirt plugin tried to use the old tuple based return values
for self.call_ext_prog(). Convert it to use the dictionary values
instead.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Add a plugin for oVirt based on the RHEV log collector plugin
with improvements and suggestions from Sandro Bonazzola.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Using a glob to pick up the boot logs means that we can pull in
unexpected content, e.g. /var/log/bootchart which may be large.
Just pick up the log file we're interested in. Fixes Issue #150.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
The Windows port is unmaintained (and likely broken). Drop the
support for now. If there's interest in developing and maintaining
the port in the future this can be easily reverted.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Samuel Mendoza-Jonas <samjc.mj@gmail.com>
Minor fixups for missing comas and to apply to the current tree.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Always use an absolute path when calling TarFile.add() in
TarFileArchive._build_archive() and set arcname explicitly to the
(relative) path name to use in the archive.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was necessary to save and restore old_cwd and the umask around
calls to an external archive program. This isn't needed when
using native python implementations and causes problems in the
case that the current working directory no longer exists:
Creating compressed archive...
going to finalize
did finalize exception: [Errno 2] No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Traceback (most recent call last):
File "/sbin/sosreport", line 23, in <module>
main(sys.argv[1:])
File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1233, in main
sos.execute()
File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1222, in execute
return self.final_work()
File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1159, in final_work
raise e
OSError: [Errno 2] No such file or directory
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the current working directory (as reported by getcwd()) does
not exist the package manager component of the policy may fail
to initialise:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Traceback (most recent call last):
File "/sbin/sosreport", line 23, in <module>
main(sys.argv[1:])
File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1228, in main
sos = SoSReport(args)
File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 530, in __init__
self.policy = sos.policies.load()
File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 39, in load
cache['policy'] = policy()
File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 165, in __init__
super(FedoraPolicy, self).__init__()
File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 49, in __init__
if self.package_manager.all_pkgs()['filesystem']['version'][0] == '3':
File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 108, in all_pkgs
self.packages = self.get_pkg_list()
File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 95, in get_pkg_list
name, version = pkg.split("|")
ValueError: need more than 1 value to unpack
Fix this by ensuring that the string contains at least one pipe
character before splitting.
There are many reasons that the package manager could spit out
unexpected lines with the package list so this improves the
general robustness of this code.
Fixes RHBZ#1091683.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
The anchor at the end of the qemu XML password regex causes it to
not match in some cases. Remove it as it is unneccessary anyway.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>`
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
|
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
| |
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now collect all compressed and uncompressed sar?? and sa?? data
files. Given that tailing the text output is not very useful, we add an
option to not perform the tail when we have reached the limit.
NOTES:
* The 20 MB limit applies to each *set* of files being collected, so
there there is a 20 MB limit for the total number of sa??* files and
_separate_ 20 MB limit for sar??* files collected
* The 20 MB limit *does not apply* to the generated command output, so
if there is a 200+ MB sa?? data file present, that file won't be
collected, but the resulting 200+ MB sar?? and sar??.xml files will
still be collected in full
* The generated command output for missing sar files is only generated
from uncompressed binary data files
* The generated command output for the XML files is also only
generated from uncompressed binary data files
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Allow callers of add_copy_spec_limit() to disable collection of
the tail of a file when the limit is reached. This is not useful
for most binary data formats and even many text formats.
Based on a patch from Peter Portante <peter.portante@redhat.com>.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Peter Portante <peter.portante@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Loading the policy class accounts for most of the time sos spends
before outputing any UI text. Handle Ctrl-C during this period and
exit gracefully.
Fixes Issue #270.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Write operations raise IOError instead of OSError and do not
expose a filename attribute.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Out-of-space and read-only file system errors while creating the
compressed archive should be treated as fatal and cause the run
to end.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Out-of-space and read-only file system errors from plugins
should be treated as fatal and cause the run to end.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Out-of-space and read-only file system errors while writing the
XML, plain-text, or HTML reports should be treated as fatal and
cause the run to end.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Out-of-space and read-only file system errors from plugins
should be treated as fatal and cause the run to end.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Allow the main SoSReport class to handle exceptions that occur
while calling a plugin's setup() and collect() methods.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Out-of-space and read-only file system errors from plugins
should be treated as fatal and cause the run to end.
Partial fix for Issue #266.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Check for ENOSPC and EROFS when setting up the archive directory
structure and exit with failure and an error message.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Currently unexpected exceptions during archive setup log a python
backtrace and exit with success. Exit with failure (1) when this
happens and log a message indicating the exception is unhandled
before printing the backtrace.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The addition of 'runat' exposed a bug in the parameter passing for
commands. We pack a tuple into a list in add_cmd_output() and then
unpack it in collect_cmd_output(). These functions need to be
careful in the use of positional vs. keyword arguments; passing
keywords as though they were positional can lead to e.g. an
integer timeout value appearing in the tuple member for
'suggest_filename' causing an exception when we attempt to pass
the value to get_cmd_output_now().
Fix this by ensuring that all keyword args are passed explicitly
through these functions and improve the debug logging by printing
the tuple we are packing/unpacking.
This also removes the exception handling block from the function
collect_cmd_output() - this routine should allow exceptions to
propagate up so that they can be handled by the --debug logic.
The 'command not found' case is already logged in the generic
get_command_output() wrapper.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When reading and writing files within the archive class use the
codecs module and set the 'utf-8' encoding. This prevents encoding
exceptions if a plugin passes a unicode string to add_string() or
if a plugin attempts to read unicode encoded data from an archive
file via the open_file() method.
Fixes Issue #275.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
Make code formatting more consistent and readable by removing very
long lines and using consistent style for multi-line function
prototypes and calls. Also fix a couple of comment typos.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Isn't really necessary anymore since we have an automated build kick
off everytime a commit is made.
https://code.launchpad.net/~sosreport/+archive/ppa
Closes #234
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|\
| |
| |
| |
| |
| |
| | |
Closes #272
Signed-off-by: Jorge Niedbalski <jnr@metaklass.org>
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The OPAL console log used to live under /sys/kernel/debug/powerpc so it
was collected as part of that glob. This patch adds the new location at
/sys/firmware/opal/msglog to the list of collected files.
Signed-off-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
| |
| |
| |
| |
| |
| | |
Probably doesnt matter but for cleanliness sake.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
| |
| |
| |
| | |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The dmraid command writes metadata dumps into the current working
directory. This is normally /tmp meaning that the files are
created outside the archive.
Use runat to change directory to the appropriate path in the
archive before running the command and add an option to control
metadata collection.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|