| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
|
|
| |
instead of add_copy_spec_limit()
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
|
|
|
| |
- a test with a single file without limit
- a test with a single glob without limit
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
|
|
|
|
| |
Originally,f there were other files matching the glob of /tmp/tmp*
then the test would fail. By using a tmpdir, we make sure that we
know what files to expect.
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
| |
Signed-off-by: Michael Adam <obnox@samba.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding /dev/null as a node will trigger EPERM. This can happen namely
when masking systemd units which symlinks to /dev/null. This fix will
avoid a stacktrace and will generate a INFO message about it.
Test for that situation is also included.
Resolves: #893.
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
replace str class functions by unicode variants:
1) "\n".join(buf) needs to pass decoded UTF-8 text
2) uniform python2 and python3 str/unicode type
3) fd.write needs to replace str(..) by some other function name
4) fd.write needs to encode UTF-8
5) update tests/report_tests.py like 2)
Resolves: #722, #723.
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's crazy having the Policy classes call a function in the
utilities module only to have that function then load the Policy
module, call policy.get_preferred_hash_algorithm() and then test
the result.
Get rid of the get_hash_name() function in the utilities module
and simplify the calls in the policies module to obtain the
preferred hash name.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
When add_string receives output from tail() it fails in py3
since tail() returns a byte object. Mimic this behavior.
Signed-off-by: Louis Bouchard <louis.bouchard@canonical.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a --chroot option to sosreport to control command chrooting.
The option takes one of three values:
* auto - Allow callers of the API to control chroot behaviour
* always - Always chroot external commands to --sysroot
* never - Never chroot external commands
This is a fairly low-level option and may not be exposed to the
user in a final release; for now it will allow tests in container
environments to control the chrooting behaviour used for a run.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Allow callers of sos_get_command_output() to specify a path to
chroot into before executing command.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Prefix copyspecs with self.sysroot when using an alternate root
path. Prefixes are applied before expanding copyspecs and the
prefixed paths are stored as the 'srcpath' attribute in the
archive. Destination paths in the report archive do not include
the prefix.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the syntax of the vim modeline used to enable the required
editing mode in all python sources files.
The desired options are:
et - expand tabs (convert tab chars to spaces)
ts=4 - set tabstop to 4 characters
sw=4 - set shiftwidth to 4 characters
Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
(edits for commit message, modeline compatibility & options)
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
---
__run__.py | 2 +-
example_plugins/example.py | 2 +-
setup.py | 2 +-
sos/archive.py | 2 +-
sos/plugins/__init__.py | 2 +-
sos/plugins/abrt.py | 2 +-
sos/plugins/acpid.py | 2 +-
sos/plugins/anaconda.py | 2 +-
sos/plugins/anacron.py | 2 +-
sos/plugins/apache.py | 2 +-
sos/plugins/apparmor.py | 2 +-
sos/plugins/apport.py | 2 +-
sos/plugins/apt.py | 2 +-
sos/plugins/ata.py | 2 +-
sos/plugins/auditd.py | 2 +-
sos/plugins/autofs.py | 2 +-
sos/plugins/azure.py | 2 +-
sos/plugins/block.py | 2 +-
sos/plugins/boot.py | 2 +-
sos/plugins/ceph.py | 2 +-
sos/plugins/cgroups.py | 2 +-
sos/plugins/cluster.py | 2 +-
sos/plugins/cobbler.py | 2 +-
sos/plugins/corosync.py | 2 +-
sos/plugins/cron.py | 2 +-
sos/plugins/cs.py | 2 +-
sos/plugins/ctdb.py | 2 +-
sos/plugins/cups.py | 2 +-
sos/plugins/dbus.py | 2 +-
sos/plugins/devicemapper.py | 2 +-
sos/plugins/dhcp.py | 2 +-
sos/plugins/distupgrade.py | 2 +-
sos/plugins/dmraid.py | 2 +-
sos/plugins/docker.py | 2 +-
sos/plugins/dovecot.py | 2 +-
sos/plugins/dpkg.py | 2 +-
sos/plugins/ds.py | 2 +-
sos/plugins/fcoe.py | 2 +-
sos/plugins/filesys.py | 2 +-
sos/plugins/firewalld.py | 2 +-
sos/plugins/foreman.py | 2 +-
sos/plugins/gdm.py | 2 +-
sos/plugins/general.py | 2 +-
sos/plugins/gluster.py | 2 +-
sos/plugins/grub.py | 2 +-
sos/plugins/grub2.py | 2 +-
sos/plugins/haproxy.py | 2 +-
sos/plugins/hardware.py | 2 +-
sos/plugins/hpasm.py | 2 +-
sos/plugins/hts.py | 2 +-
sos/plugins/i18n.py | 2 +-
sos/plugins/infiniband.py | 2 +-
sos/plugins/ipa.py | 2 +-
sos/plugins/ipsec.py | 2 +-
sos/plugins/ipvs.py | 2 +-
sos/plugins/iscsi.py | 2 +-
sos/plugins/iscsitarget.py | 2 +-
sos/plugins/java.py | 2 +-
sos/plugins/juju.py | 2 +-
sos/plugins/kdump.py | 2 +-
sos/plugins/keepalived.py | 2 +-
sos/plugins/kernel.py | 2 +-
sos/plugins/kernelrt.py | 2 +-
sos/plugins/keyutils.py | 2 +-
sos/plugins/kpatch.py | 2 +-
sos/plugins/krb5.py | 2 +-
sos/plugins/kvm.py | 2 +-
sos/plugins/landscape.py | 2 +-
sos/plugins/ldap.py | 2 +-
sos/plugins/libraries.py | 2 +-
sos/plugins/libvirt.py | 2 +-
sos/plugins/lightdm.py | 2 +-
sos/plugins/lilo.py | 2 +-
sos/plugins/logrotate.py | 2 +-
sos/plugins/logs.py | 2 +-
sos/plugins/lsbrelease.py | 2 +-
sos/plugins/lvm2.py | 2 +-
sos/plugins/maas.py | 2 +-
sos/plugins/manageiq.py | 2 +-
sos/plugins/md.py | 2 +-
sos/plugins/megacli.py | 2 +-
sos/plugins/memory.py | 2 +-
sos/plugins/mongodb.py | 2 +-
sos/plugins/mpt.py | 2 +-
sos/plugins/mrggrid.py | 2 +-
sos/plugins/mrgmessg.py | 2 +-
sos/plugins/multipath.py | 2 +-
sos/plugins/mysql.py | 2 +-
sos/plugins/named.py | 2 +-
sos/plugins/navicli.py | 2 +-
sos/plugins/networking.py | 2 +-
sos/plugins/nfs.py | 2 +-
sos/plugins/nfsserver.py | 2 +-
sos/plugins/nis.py | 2 +-
sos/plugins/nscd.py | 2 +-
sos/plugins/ntp.py | 2 +-
sos/plugins/numa.py | 2 +-
sos/plugins/oddjob.py | 2 +-
sos/plugins/openhpi.py | 2 +-
sos/plugins/openshift.py | 2 +-
sos/plugins/openssl.py | 2 +-
sos/plugins/openstack_ceilometer.py | 2 +-
sos/plugins/openstack_cinder.py | 2 +-
sos/plugins/openstack_glance.py | 2 +-
sos/plugins/openstack_heat.py | 2 +-
sos/plugins/openstack_horizon.py | 2 +-
sos/plugins/openstack_keystone.py | 2 +-
sos/plugins/openstack_neutron.py | 2 +-
sos/plugins/openstack_nova.py | 2 +-
sos/plugins/openstack_swift.py | 2 +-
sos/plugins/openstack_trove.py | 2 +-
sos/plugins/openswan.py | 2 +-
sos/plugins/openvswitch.py | 2 +-
sos/plugins/pam.py | 2 +-
sos/plugins/pci.py | 2 +-
sos/plugins/pcp.py | 2 +-
sos/plugins/postfix.py | 2 +-
sos/plugins/postgresql.py | 2 +-
sos/plugins/powerpath.py | 2 +-
sos/plugins/powerpc.py | 2 +-
sos/plugins/ppp.py | 2 +-
sos/plugins/procenv.py | 2 +-
sos/plugins/process.py | 2 +-
sos/plugins/processor.py | 2 +-
sos/plugins/psacct.py | 2 +-
sos/plugins/pxe.py | 2 +-
sos/plugins/python.py | 2 +-
sos/plugins/qpid.py | 2 +-
sos/plugins/quagga.py | 2 +-
sos/plugins/rabbitmq.py | 2 +-
sos/plugins/radius.py | 2 +-
sos/plugins/rhui.py | 2 +-
sos/plugins/rpm.py | 2 +-
sos/plugins/s390.py | 2 +-
sos/plugins/samba.py | 2 +-
sos/plugins/sanlock.py | 2 +-
sos/plugins/sar.py | 2 +-
sos/plugins/satellite.py | 2 +-
sos/plugins/scsi.py | 2 +-
sos/plugins/selinux.py | 2 +-
sos/plugins/sendmail.py | 2 +-
sos/plugins/smartcard.py | 2 +-
sos/plugins/snmp.py | 2 +-
sos/plugins/soundcard.py | 2 +-
sos/plugins/squid.py | 2 +-
sos/plugins/ssh.py | 2 +-
sos/plugins/ssmtp.py | 2 +-
sos/plugins/sssd.py | 2 +-
sos/plugins/startup.py | 2 +-
sos/plugins/sunrpc.py | 2 +-
sos/plugins/symcli.py | 2 +-
sos/plugins/system.py | 2 +-
sos/plugins/systemd.py | 2 +-
sos/plugins/systemtap.py | 2 +-
sos/plugins/sysvipc.py | 2 +-
sos/plugins/targetcli.py | 2 +-
sos/plugins/teamd.py | 2 +-
sos/plugins/tftpserver.py | 2 +-
sos/plugins/tomcat.py | 2 +-
sos/plugins/tuned.py | 2 +-
sos/plugins/udev.py | 2 +-
sos/plugins/unity.py | 2 +-
sos/plugins/upstart.py | 2 +-
sos/plugins/usb.py | 2 +-
sos/plugins/veritas.py | 2 +-
sos/plugins/vmware.py | 2 +-
sos/plugins/vsftpd.py | 2 +-
sos/plugins/x11.py | 2 +-
sos/plugins/xen.py | 2 +-
sos/plugins/xfs.py | 2 +-
sos/plugins/xinetd.py | 2 +-
sos/plugins/yum.py | 2 +-
sos/policies/__init__.py | 2 +-
sos/policies/debian.py | 2 +-
sos/policies/osx.py | 2 +-
sos/policies/redhat.py | 2 +-
sos/policies/ubuntu.py | 2 +-
sos/reporting.py | 2 +-
sos/sosreport.py | 2 +-
sos/utilities.py | 2 +-
tests/archive_tests.py | 2 +-
tests/importer_tests.py | 2 +-
tests/option_tests.py | 2 +-
tests/plugin_tests.py | 2 +-
tests/policy_tests.py | 2 +-
tests/report_tests.py | 2 +-
tests/sosreport_pexpect.py | 2 +-
tests/test_exe.py | 2 +-
tests/utilities_tests.py | 2 +-
189 files changed, 189 insertions(+), 189 deletions(-)
|
|
|
|
|
|
|
|
| |
Remove the ZipArchive class and associated test code.
Fixes #322.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 8bf7b0c removed the truncation of mangled command names to
64 chars. This causes problems for some plugins (e.g. Issue #415)
that generate long enough command lines to hit system name length
limits.
Instead of arbitrarily limiting to 64 characters limit to the
lesser of the archive format limit (if present) or the value of
PC_NAME_MAX for any intermediate FileCacheArchive path.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Numerous Plugin methods are not expected to be called from outside
the base class. Mark them private with a leading underscore:
_copy_dir()
_copy_node()
_copy_symlink()
_do_copy_path()
_expand_copy_spec()
_mangle_command()
_make_command_filename()
_is_forbidden_path()
_collect_copy_specs()
_collect_cmd_output()
_collect_strings()
A couple of these (_mangle_command() and _do_copy_path()) are
invoked from the Plugin test suite; update the relevant cases to
call the new names.
Fixes #348.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
| |
The 'u' prefix wasn't reintroduced back into Python 3 until
version 3.3. Use six here to accomodate for that.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Returning a 3-tuple has always been ugly. It gets worse as the
parameter list for this family of functions grows. Worse, the 3rd
member of the tuple is unused and is always set to 0.
Rip the whole mess out and return a single, simple dictionary
object with 'status' and 'output' keys.
Update utilities_tests to reflect the new interface.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Since strings are iterable a plugin attempting to call
add_copy_specs("/something") results in a plugin calling
add_copy_spec("/"). Raise a TypeError if this happens.
Fixes Issue #141.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Give add_copy_spec() and add_copy_specs() their own test cases.
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>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Fixes Issue #243.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
| |
Has test case but no callers. Delete it.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
The DirTree class has remained unused since it was implemented.
Remove the definition and associated test cases.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
The function is defined and even has test cases. But no callers..
Remove the function and the test cases that exercise it.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The handrolled profile logging support in sos hasn't been widely
used in a long time and is a problem better solved with external
profiling and coverage tools.
Rip out all the support and documentation. This shortens and
simplifies numerous Plugin class methods.
Fixes Issue #244.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
Replace explicit test for six.PY2 with try/exception handling of
StringIO import.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
| |
The policy_tests unit tests call validatePlugin(). Update them to
use the new name.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
| |
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes a necessary dependency on python-six for its compability layer
since we are wanting to continue support for both Python 2.7.x and Python 3.x.
In addition, this will allow us to effectively phase out Python 2 support
when/if the time arises that all interested distributions have done away with
Python 2.
This port passes all unittests for both python 2.7.x and python 3.3.x
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
| |
Since fix for 0ed431a went in we revert our unittests to the old (working) behavior.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
| |
Update unittests to reflect 4a594b6dce129f8d9837c0d93768576badf2b2b7
|
|
|
|
|
|
|
|
|
|
| |
- We are planning on moving to python distutils for future packaging
however, we still want to keep our current build infrastructure around
until we are able to test the builds overtime. For now distutils will
live alongside the current build process and slowly replace the Makefiles
once deemed fit.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
| |
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
| |
- Simple fix to make all unittests green
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- In our unittest we defined 'is_installed' to be a bool when in fact we wanted
to verify if a package is installed via the _method_ is is_installed. Since
overriding that method with our variable definition we basically removed
any functionality of 'is_installed' method in Plugin class.
- Initializing a fake plugin to test was failing due to our global
logger not being initialized. Put a simple check in the library to
make sure the logger is defined no matter what the calling state does.
- Make import selinux conditional
- Add travis-ci support
- Rename README to utilize travis-ci build status and other markdown supported
features
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
|
|
|
|
|
|
|
|
|
| |
Fix policy and utility function, method and variable names to use
lower case underscored style instead of camelCase.
Related to Issue #112.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|
|
|
|
|
|
|
|
| |
The name copy_stuff() isn't as descriptive now that the data may
be being streamed into an archive without being copied into a
temporary directory. Calling it collect covers both equally well.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
|