aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [etcd] split etcd functionality from kubernetes into new pluginNeependra Khare2015-07-082-8/+36
| | | | | Signed-off-by: Neependra Khare <nkhare@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosoptions] ensure '_sysroot' and '_chroot' are initialisedBryn M. Reeves2015-07-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the sysroot and chroot members of the SoSOptions object are initialised to prevent exceptions when these are not set on the command line: sosreport 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 1490, in main sos = SoSReport(args) File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 673, in __init__ self.policy = sos.policies.load(sysroot=self.opts.sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 40, in load cache['policy'] = policy(sysroot=sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 192, in __init__ super(FedoraPolicy, self).__init__(sysroot=sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 58, in __init__ if self.package_manager.all_pkgs()['filesystem']['version'][0] == '3': File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 116, in all_pkgs self.packages = self.get_pkg_list() File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 99, in get_pkg_list pkg_list = shell_out(cmd, chroot=self.chroot).splitlines() File "/usr/lib/python2.7/site-packages/sos/utilities.py", line 191, in shell_out return sos_get_command_output(cmd, chroot=chroot, chdir=runat)['output'] File "/usr/lib/python2.7/site-packages/sos/utilities.py", line 156, in sos_get_command_output raise e OSError: [Errno 1] Operation not permitted: '/' Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policies] pass --sysroot down to policy classesBryn M. Reeves2015-07-085-17/+22
| | | | | | | | | Policies that don't auto-detect a container environment with a host file system need to pass the value of --sysroot down to the PackageManager class in order to obtain package details from the chroot environment. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [firewalld] work around command hangs in container environmentsBryn M. Reeves2015-07-081-1/+3
| | | | | | | Add a 10s timeout to firewalld-cmd execution to avoid long dbus timeouts in docker containers. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] set SYSROOT by policyBryn M. Reeves2015-07-081-3/+10
| | | | | | | | If --sysroot is not given on the command line and Policy.in_container() is True set sysroot automatically if Policy.get_host_sysroot() is not '/'. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policies] add container support to Red Hat policyBryn M. Reeves2015-07-081-2/+21
| | | | | | | | | | | | | Check for the presence of container-specific environment variables and set _host_sysroot if present: container_uuid=UUID HOST=/path If both a container environment variable and HOST are present run the PackageManager query command in a chroot. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policies] make PackageManager and Policy sysroot-awareBryn M. Reeves2015-07-081-2/+20
| | | | | | | | | Add methods to Policy to get the host root file system path and to test if sos is running in a container and allow Policy classes to pass a chroot path into the PackageManager constructor in order to obtain package data from the chroot. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [utilities] add chroot support to shell_out()Bryn M. Reeves2015-07-081-2/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docs] fix documentation of --sysroot parameterBryn M. Reeves2015-07-081-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [kubernetes] new pluginNeependra Khare2015-07-081-0/+46
| | | | | | | Add a plugin for Kubernetes support. Signed-off-by: Neependra Khare <nkhare@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugin] handle ELOOP in _copy_dir()Bryn M. Reeves2015-07-081-4/+12
| | | | | | | | | | | | | | | | | | | | | A problem with systemd's management of the binfmt_misc automount point in Atomic environments causes attempts to access this path to fail with ELOOP: >>> import os >>> os.listdir("/host/proc/sys/fs/binfmt_misc/") Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 2] No such file or directory: '/host/proc/sys/fs/binfmt_misc/' For reasons that are not yet clear this causes the entire sos process to immediately terminate. For now avoid the problem by enclosing the problem os.listdir in a try/except block that explicitly handles the one errno value implicated here. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [docs] add --chroot to sosreport.1Bryn M. Reeves2015-07-081-0/+8
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [lvm2] don't chroot if tmp is not inside sysrootBryn M. Reeves2015-07-081-1/+1
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [logs] fix do_regex_find_all() use for --sysrootBryn M. Reeves2015-07-081-4/+4
| | | | | | | | The logs plugin searches syslog configuration files. When using --sysroot the plugin needs to use join_sysroot() to open the correct path. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [libvirt] use join_sysroot() before calling os.path.existsBryn M. Reeves2015-07-081-1/+1
| | | | | | | The libvirt plugin tests for the presence of files. Use join_sysroot() to ensure the correct path is tested. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [foreman] don't chroot if tmp is not inside sysrootBryn M. Reeves2015-07-081-1/+3
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [dmraid] don't chroot if tmp is not inside sysrootBryn M. Reeves2015-07-081-1/+2
| | | | | | | | To dump metadata dmraid needs to chdir to the temporary archive directory. Don't attempt to chroot into sysroot if the temporary directory is not a subdirectory of it. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [cluster] handle crm_report with --sysrootBryn M. Reeves2015-07-081-2/+3
| | | | | | | Don't attempt to run crm_report in the chroot if tmp is not a subdirectory of sysroot. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugin] enforce forbidden paths when --sysroot is setBryn M. Reeves2015-07-081-3/+7
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugin] add tmp_in_sysroot() methodBryn M. Reeves2015-07-081-0/+4
| | | | | | | | | | | Add a method that plugins can test to determine whether the archive's temporary directory is inside sysroot. This is always true when sysroot is '/'. When sysroot is a subdirectory of root the temporary directory may be inaccessible from the chroot namespace. Plugins can test this method to determine where to write output. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] add chroot parameter to callout APIsBryn M. Reeves2015-07-081-21/+29
| | | | | | | | | | | | | Expose sos_get_command_output()'s chroot support to plugins via add_cmd_output(), get_command_output(), call_ext_prog() and related Plugin methods. 'chroot' is a boolean indicating whether the command should run in the chroot (True) or in the host namespace (False). Has no effect when Plugin.use_sysroot() is False. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] check for valid CHROOT valuesBryn M. Reeves2015-07-081-3/+13
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugin] fix chrooted symlink handlingBryn M. Reeves2015-07-081-1/+1
| | | | | | | _copy_symlink() needs to strip_sysroot(), not join_sysroot(), on a link target before handing it to _do_copy_path(). Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] implement --chroot for command calloutsBryn M. Reeves2015-07-081-2/+6
| | | | | | When --chroot=always is given chroot all commands to SYSROOT. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] add --chroot optionBryn M. Reeves2015-07-082-1/+22
| | | | | | | | | | | | | | | | 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>
* [utilities] add chroot support to sos_get_command_output()Bryn M. Reeves2015-07-073-12/+22
| | | | | | | 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>
* [docs] add -s/--sysroot to sosreport.1Bryn M. Reeves2015-07-071-0/+5
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugins] prefix target paths with self.sysrootBryn M. Reeves2015-07-073-29/+81
| | | | | | | | | | 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>
* [plugins] propagate sysroot to Plugin via commonsBryn M. Reeves2015-07-071-0/+6
| | | | | | | | | | Although plugins should generally be unaware that they are being run with an alternate sysroot the generic plugin IO code must peform the appropriate path prefixing when sysroot is not '/'. Propagate sysroot to plugin classes via the commons dictionary. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [sosreport] add --sysroot optionBryn M. Reeves2015-07-071-1/+15
| | | | | | | | | | | | | | | | | | | | | | | Add a --sysroot=SYSROOT option to specify that the root file system to be inspected is mounted at SYSROOT. This allows basic support for container environments where sos is running in a container and inspecting the containing host and its environment ('superspection'). For this to work currently the following conditions must be met: - sos is sufficiently privileged to read and search relevant file system paths within SYSROOT - sos must share the PID and network namespace of the target host - binaries called by sos must be present and executable in the SYSROOT inherited by sos. If PATH includes paths inside SYSROOT appropriate values must be set for LD_LIBRARY_PATH to allow shared executables to be linked. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openstack_neutron] Obscure passwords and secretsLee Yarwood2015-07-071-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following passwords and secrets are now obscured : - rabbit_password - qpid_password - nova_admin_password - xenapi_connection_password - password - connection - admin_password - metadata_proxy_shared_secret - qpid_password - eapi_password - crd_password - primary_l3_host_password - serverauth - ucsm_password - ha_vrrp_auth_password - ssl_key_password - vcenter_password - edge_appliance_password - tenant_admin_password - apic_password Fixes #594 Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
* [devices] New plugin to collect "udevadm info --export-db"Pavel Moravec2015-07-071-0/+28
| | | | | | Partially resolves #570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [sysvipc] Collect "ipcs -u"Pavel Moravec2015-07-071-1/+4
| | | | | | Partially solves #570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [process] Collect few "ps" outputsPavel Moravec2015-07-071-1/+8
| | | | | | | | Partially solves $570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> (edits for readability & line length) Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ptp] Add new plugin for Precision time protocolPavel Moravec2015-07-071-0/+36
| | | | | | Partially resolves #570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [networking] Collect "ethtool -T $NIC"Pavel Moravec2015-07-071-0/+1
| | | | | | Partially solves #570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [ntp] Collect "ntpq -p" outputPavel Moravec2015-07-071-1/+4
| | | | | | Partially solves #570 Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [services] add "ls /var/lock/subsys"Pavel Moravec2015-07-071-1/+4
| | | | Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [startup] rename plugin to 'services'Pavel Moravec2015-07-071-7/+7
| | | | | | | The plugin is supposed to collect information about services rather than about their startup. Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
* [openvswitch] consolidate self.add_cmd_output() callsBryn M. Reeves2015-07-061-12/+16
| | | | Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [openvswitch] dump and capture the databaseFlavio Leitner2015-07-061-0/+3
| | | | | | | The database contains all the vswitch configuration and is essential to understand and replicate the environment. Signed-off-by: Flavio Leitner <fbl@redhat.com>
* [openvswitch] capture the logsFlavio Leitner2015-07-061-0/+4
| | | | | | | Both ovs-vswitchd.log and ovsdb-server.log are useful for troubleshooting. Signed-off-by: Flavio Leitner <fbl@redhat.com>
* [global] Fix vim tags typo in all python source filesKamalesh Babulal2015-07-06189-189/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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(-)
* [plugin] fix recursive symlink handlingKamalesh Babulal2015-07-061-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A symbolic link that points to itself may exist in paths encountered as part of a copyspec. For a normal symlink the link target is added to the set of paths to collect. For a link pointing to itself, we end up in recursive loop. Avoid this by skipping the path collection for the target in the case that the canonicalized target and link path are equal. For example: total 0 0 lrwxrwxrwx. 1 root root 14 May 18 09:22 default.xml -> ../default.xml 0 lrwxrwxrwx. 1 root root 7 May 22 05:37 kop.xml -> kop.xml Trying to copying such symlink, will ends up in following exception: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1172, in collect plug.collect() File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 630, in collect self._collect_copy_specs() File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 600, in _collect_copy_specs self._do_copy_path(path) File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 319, in _do_copy_path self._copy_symlink(srcpath) File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 271, in _copy_symlink self._do_copy_path(absdest) File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 319, in _do_copy_path self._copy_symlink(srcpath) File "/usr/lib/python2.7/site-packages/sos/plugins/__init__.py", line 261, in _copy_symlink self.archive.add_link(reldest, srcpath) File "/usr/lib/python2.7/site-packages/sos/archive.py", line 198, in add_link os.symlink(source, dest) OSError: [Errno 17] File exists Fix this recursive loop but just creating the link and skip copying the symlink. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> (minor edits to debug and commit message) Signed-off-by: Bryn M. Reeves <bmr@redhat.com> --- v2: - Create the link and skip copying, if both src and dest are same. - Append the symlink to files, copied list. v1: Initial version: Returns, if the source path does not exist. sos/plugins/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
* [docs] Add missing target installFlavio Leitner2015-07-031-1/+134
| | | | | | | | | Updates the docs/Makefile to install all the doc files built. Resolves #585. Signed-off-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ceph] add calamari-server and librados2 to the package listPavel Moravec2015-07-031-1/+3
| | | | | | | | | | | | | | | | Enable ceph plugin also by either calamari-server or librados2 package. This ensures Calamari and Rados log collection is effective regardless of which packages are installed on a given system. This is a temporary solution until rados is split from the ceph package. Resolves: #496 Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [ceph] add logs, report and calamari confPavel Moravec2015-07-031-3/+8
| | | | | | | | | | | | Update ceph commands and add log and configuration file collection for calamari and radosgw. Resolves: #496 Resolves: rhbz#1210527 Signed-off-by: Brad Hubbard <bhubbard@redhat.com> Signed-off-by: Pavel Moravec <pmoravec@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [plugin] shorten tagging class docstringsBryn M. Reeves2015-07-031-8/+6
| | | | | | | | The various tagging class docstrings had become a bit long-winded. Shorten the text used down as the mechanism itself is generally well-understood. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
* [policies] Add support for IBM PowerKVM/ZKVM platformKamalesh Babulal2015-07-032-0/+89
| | | | | | | | | | | | | | | | | | Add support for IBM PowerKVM/ZKVM platform, by introducing PowerKVM/ZKVM policy. It defines PowerKVM/ZKVM specific details/environment, for sos to validate the environment and enable plugins to collect information while running over PowerKVM/ZKVM. Patch also introduces PowerKVM/ZKVM plugin classes which could be used by plugins, when we add support for them individually later. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com> --- sos/plugins/__init__.py | 10 +++++++ sos/policies/ibmkvm.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 sos/policies/ibmkvm.py
* iprconfig collects information, only if the underlyingKamalesh Babulal2015-07-031-1/+1
| | | | | | | | | | | | | | platform is 'ppc64'. Modify check_enabled() to regex match on arch(), instead of exact match of string. This enables iprconfig to collect information on ppc64* platforms. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com> --- sos/plugins/iprconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)