From 3b5ecf3c4a041c4494121d7d5dd36e0fc047910a Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 08:47:02 -0400 Subject: Port several plugins to Debian/Ubuntu [ Louis Bouchard ] - Ported several plugins to work across Red Hat, Debian and Ubuntu. Signed-off-by: Adam Stokes --- .gitignore | 1 + sos/plugins/acpid.py | 14 ++++++++++++-- sos/plugins/cobbler.py | 18 ++++++++++++++++-- sos/plugins/dpkg.py | 2 +- sos/plugins/general.py | 23 +++++++++++++++++++++++ sos/plugins/process.py | 4 ++-- sos/plugins/squid.py | 4 ++-- sos/plugins/system.py | 25 +++++++++++++++++++++++-- sos/plugins/systemtap.py | 4 ++-- sos/plugins/udev.py | 4 ++-- 10 files changed, 84 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 54303d03..52a89859 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ cover/ *.mo sos.conf.5.gz sosreport.1.gz +venv diff --git a/sos/plugins/acpid.py b/sos/plugins/acpid.py index bc335eea..42840e7d 100644 --- a/sos/plugins/acpid.py +++ b/sos/plugins/acpid.py @@ -12,12 +12,22 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class acpid(Plugin, RedHatPlugin): +class acpid(Plugin): + plugin_name = "acpid" + +class AcpidRedHat(acpid, RedHatPlugin): """acpid related information """ def setup(self): self.addCopySpecs([ "/var/log/acpid*", "/etc/acpi/events/power.conf"]) + +class AcpidDebian(acpid, DebianPlugin, UbuntuPlugin): + """acpid related information for Debian and Ubuntu + """ + def setup(self): + self.addCopySpecs([ + "/etc/acpi/events/powerbtn*"]) diff --git a/sos/plugins/cobbler.py b/sos/plugins/cobbler.py index 183d11fd..08847309 100644 --- a/sos/plugins/cobbler.py +++ b/sos/plugins/cobbler.py @@ -12,9 +12,12 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class cobbler(Plugin, RedHatPlugin): +class cobbler(Plugin): + plugin_name = "cobbler" + +class CobblerRedHat(cobbler, RedHatPlugin): """cobbler related information """ @@ -25,3 +28,14 @@ class cobbler(Plugin, RedHatPlugin): self.addCopySpec("/var/log/cobbler") self.addCopySpec("/var/lib/rhn/kickstarts") self.addCopySpec("/var/lib/cobbler") + +class CobblerDebianPlugin(cobbler, DebianPlugin, UbuntuPlugin): + """cobbler related information for Debian and Ubuntu + """ + + packages = ('cobbler',) + + def setup(self): + self.addCopySpec("/etc/cobbler") + self.addCopySpec("/var/log/cobbler") + self.addCopySpec("/var/lib/cobbler") diff --git a/sos/plugins/dpkg.py b/sos/plugins/dpkg.py index 5f8d38a1..2610ce57 100644 --- a/sos/plugins/dpkg.py +++ b/sos/plugins/dpkg.py @@ -20,4 +20,4 @@ class dpkg(Plugin, DebianPlugin, UbuntuPlugin): """ def setup(self): self.addCopySpec("/var/log/dpkg.log") - self.addCmdOutput("/usr/bin/dpkg-query -W -f='${Package}-${Version}-${Architecture}\n' \*", root_symlink = "installed-debs") + self.addCmdOutput("/usr/bin/dpkg -l", root_symlink = "installed-debs") diff --git a/sos/plugins/general.py b/sos/plugins/general.py index eccb1f57..1ad03055 100644 --- a/sos/plugins/general.py +++ b/sos/plugins/general.py @@ -97,6 +97,29 @@ class GeneralDebian(general, DebianPlugin, UbuntuPlugin): super(GeneralDebian, self).setup() self.addCopySpecs([ "/etc/debian_version", + "/etc/default", "/var/log/up2date", "/etc/lsb-release" ]) +class GeneralUbuntu(general, UbuntuPlugin): + """Basic system information for Ubuntu based distributions""" + + def setup(self): + super(GeneralUbuntu, self).setup() + self.addCopySpecs([ + "/etc/os-release", + "/var/log/ufw.log", + "/var/log/apport.log", + "/var/log/syslog", + "/var/log/udev", + "/var/log/boot*", + "/var/log/dmesg*", + "/var/log/kern*", + "/var/log/mail*", + "/var/log/dist-upgrade", + "/var/log/landscape", + "/var/log/installer", + "/var/log/unattended-upgrades", + "/var/log/upstart" + ]) + self.addCmdOutput("/usr/sbin/ufw app list",root_symlink="ufw") diff --git a/sos/plugins/process.py b/sos/plugins/process.py index 98b8a2fa..42ae5bf3 100644 --- a/sos/plugins/process.py +++ b/sos/plugins/process.py @@ -12,11 +12,11 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import time import os -class process(Plugin, RedHatPlugin): +class process(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """process information """ def setup(self): diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py index 29c06340..df18661b 100644 --- a/sos/plugins/squid.py +++ b/sos/plugins/squid.py @@ -12,10 +12,10 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os -class squid(Plugin, RedHatPlugin): +class squid(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """squid related information """ diff --git a/sos/plugins/system.py b/sos/plugins/system.py index 0e9977e2..3cece4cc 100644 --- a/sos/plugins/system.py +++ b/sos/plugins/system.py @@ -12,9 +12,12 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class system(Plugin, RedHatPlugin): +class system(Plugin): + plugin_name = "system" + +class SystemRedHat(system, RedHatPlugin): """core system related information """ def setup(self): @@ -35,4 +38,22 @@ class system(Plugin, RedHatPlugin): "/proc/sys/net/ipv6/neigh/*/base_reachable_time") self.addCmdOutput("/usr/bin/crontab -l") + +class SystemDebian(Plugin, DebianPlugin, UbuntuPlugin): + """core system related information for Debian and Ubuntu + """ + def setup(self): + self.addCopySpecs([ + "/proc/sys", + "/etc/cron*", + "/var/spool/cron*", + "/etc/syslog.conf", + "/etc/rsyslog.conf", + "/etc/ntp.conf" ]) + self.addForbiddenPath( + "/proc/sys/net/ipv8/neigh/*/retrans_time") + self.addForbiddenPath( + "/proc/sys/net/ipv6/neigh/*/base_reachable_time") + + self.addCmdOutput("/usr/bin/crontab -l") diff --git a/sos/plugins/systemtap.py b/sos/plugins/systemtap.py index 19ea5607..cd3634ec 100644 --- a/sos/plugins/systemtap.py +++ b/sos/plugins/systemtap.py @@ -14,9 +14,9 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class systemtap(Plugin, RedHatPlugin): +class systemtap(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """SystemTap information """ diff --git a/sos/plugins/udev.py b/sos/plugins/udev.py index 4a71d02d..cb3aa97d 100644 --- a/sos/plugins/udev.py +++ b/sos/plugins/udev.py @@ -12,9 +12,9 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -from sos.plugins import Plugin, RedHatPlugin +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class udev(Plugin, RedHatPlugin): +class udev(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """udev related information """ def setup(self): -- cgit From fc0bcf99630f2d80d89100fcc16a63f1a442d834 Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 10:49:37 -0400 Subject: Fixes #104 Signed-off-by: Adam Stokes --- sos/policies/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py index 1cea2970..974e63c2 100644 --- a/sos/policies/__init__.py +++ b/sos/policies/__init__.py @@ -5,6 +5,7 @@ import re import platform import time import fnmatch +import pprint from sos.utilities import ImporterHelper, \ import_module, \ @@ -450,7 +451,8 @@ class LinuxPolicy(Policy): self.ticketNumber = self.commons['cmdlineopts'].ticketNumber self.reportName = self.sanitizeReportName(self.reportName) - self.ticketNumber = self.sanitizeTicketNumber(self.ticketNumber) + if self.ticketNumber: + self.ticketNumber = self.sanitizeTicketNumber(self.ticketNumber) if (self.reportName == ""): self.reportName = "default" -- cgit From ad0065b1ad35c534c04e8ebd3c68cff20c66ad41 Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 11:53:43 -0300 Subject: Update __init__.py Remove debugging pprint --- sos/policies/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py index 974e63c2..2ec0970a 100644 --- a/sos/policies/__init__.py +++ b/sos/policies/__init__.py @@ -5,7 +5,6 @@ import re import platform import time import fnmatch -import pprint from sos.utilities import ImporterHelper, \ import_module, \ -- cgit From a98d93dce62033bf11f32bec4e316339d23ff671 Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 13:40:53 -0400 Subject: Inherit system within DebianSystem plugin Signed-off-by: Adam Stokes --- sos/plugins/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sos/plugins/system.py b/sos/plugins/system.py index 3cece4cc..7aade419 100644 --- a/sos/plugins/system.py +++ b/sos/plugins/system.py @@ -39,7 +39,7 @@ class SystemRedHat(system, RedHatPlugin): self.addCmdOutput("/usr/bin/crontab -l") -class SystemDebian(Plugin, DebianPlugin, UbuntuPlugin): +class SystemDebian(system, DebianPlugin, UbuntuPlugin): """core system related information for Debian and Ubuntu """ def setup(self): -- cgit From f4bb0bbe954562d01d834c3220e743855ce1cd30 Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 17:29:59 -0400 Subject: Conforming naming scheme in a few plugins Went through a few plugins to make sure inherit distro plugins were keeping same naming scheme as the rest. Signed-off-by: Adam Stokes --- sos/plugins/acpid.py | 4 ++-- sos/plugins/cgroups.py | 4 +++- sos/plugins/cobbler.py | 4 ++-- sos/plugins/dhcp.py | 4 ++-- sos/plugins/general.py | 4 ++-- sos/plugins/system.py | 4 ++-- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/sos/plugins/acpid.py b/sos/plugins/acpid.py index 42840e7d..1c092e42 100644 --- a/sos/plugins/acpid.py +++ b/sos/plugins/acpid.py @@ -17,7 +17,7 @@ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class acpid(Plugin): plugin_name = "acpid" -class AcpidRedHat(acpid, RedHatPlugin): +class RedHatAcpid(acpid, RedHatPlugin): """acpid related information """ def setup(self): @@ -25,7 +25,7 @@ class AcpidRedHat(acpid, RedHatPlugin): "/var/log/acpid*", "/etc/acpi/events/power.conf"]) -class AcpidDebian(acpid, DebianPlugin, UbuntuPlugin): +class DebianAcpid(acpid, DebianPlugin, UbuntuPlugin): """acpid related information for Debian and Ubuntu """ def setup(self): diff --git a/sos/plugins/cgroups.py b/sos/plugins/cgroups.py index 73e6ac93..5b217760 100644 --- a/sos/plugins/cgroups.py +++ b/sos/plugins/cgroups.py @@ -14,12 +14,14 @@ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -class cgroups(Plugin, DebianPlugin, UbuntuPlugin): +class cgroups(Plugin): """cgroup subsystem information """ plugin_name = "cgroups" +class DebianCgroups(cgroups, DebianPlugin, UbuntuPlugin): + files = ('/proc/cgroups',) def setup(self): diff --git a/sos/plugins/cobbler.py b/sos/plugins/cobbler.py index 08847309..5ad1d062 100644 --- a/sos/plugins/cobbler.py +++ b/sos/plugins/cobbler.py @@ -17,7 +17,7 @@ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class cobbler(Plugin): plugin_name = "cobbler" -class CobblerRedHat(cobbler, RedHatPlugin): +class RedHatCobbler(cobbler, RedHatPlugin): """cobbler related information """ @@ -29,7 +29,7 @@ class CobblerRedHat(cobbler, RedHatPlugin): self.addCopySpec("/var/lib/rhn/kickstarts") self.addCopySpec("/var/lib/cobbler") -class CobblerDebianPlugin(cobbler, DebianPlugin, UbuntuPlugin): +class DebianCobbler(cobbler, DebianPlugin, UbuntuPlugin): """cobbler related information for Debian and Ubuntu """ diff --git a/sos/plugins/dhcp.py b/sos/plugins/dhcp.py index 7ed2e7e1..772ea35b 100644 --- a/sos/plugins/dhcp.py +++ b/sos/plugins/dhcp.py @@ -20,7 +20,7 @@ class dhcp(Plugin): plugin_name = "dhcp" -class DhcpRedHat(dhcp, RedHatPlugin): +class RedHatDhcp(dhcp, RedHatPlugin): """DHCP related information for Red Hat based distributions""" files = ('/etc/rc.d/init.d/dhcpd',) @@ -32,7 +32,7 @@ class DhcpRedHat(dhcp, RedHatPlugin): "/etc/dhcpd.conf", "/etc/dhcp"]) -class DhcpDebian(dhcp, UbuntuPlugin): +class UbuntuDhcp(dhcp, UbuntuPlugin): """DHCP related information for Debian based distributions""" files = ('/etc/init.d/udhcpd',) diff --git a/sos/plugins/general.py b/sos/plugins/general.py index 1ad03055..62c7e441 100644 --- a/sos/plugins/general.py +++ b/sos/plugins/general.py @@ -90,7 +90,7 @@ class RedHatGeneral(general, RedHatPlugin): r"(\s*proxyPassword\s*=\s*)\S+", r"\1***") -class GeneralDebian(general, DebianPlugin, UbuntuPlugin): +class DebianGeneral(general, DebianPlugin, UbuntuPlugin): """Basic system information for Debian based distributions""" def setup(self): @@ -101,7 +101,7 @@ class GeneralDebian(general, DebianPlugin, UbuntuPlugin): "/var/log/up2date", "/etc/lsb-release" ]) -class GeneralUbuntu(general, UbuntuPlugin): +class UbuntuGeneral(general, UbuntuPlugin): """Basic system information for Ubuntu based distributions""" def setup(self): diff --git a/sos/plugins/system.py b/sos/plugins/system.py index 7aade419..3033bd22 100644 --- a/sos/plugins/system.py +++ b/sos/plugins/system.py @@ -17,7 +17,7 @@ from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class system(Plugin): plugin_name = "system" -class SystemRedHat(system, RedHatPlugin): +class RedHatSystem(system, RedHatPlugin): """core system related information """ def setup(self): @@ -39,7 +39,7 @@ class SystemRedHat(system, RedHatPlugin): self.addCmdOutput("/usr/bin/crontab -l") -class SystemDebian(system, DebianPlugin, UbuntuPlugin): +class DebianSystem(system, DebianPlugin, UbuntuPlugin): """core system related information for Debian and Ubuntu """ def setup(self): -- cgit From 2f9dcd617355e7946fdfa6c2380aaac4c3d7d97d Mon Sep 17 00:00:00 2001 From: Adam Stokes Date: Mon, 25 Mar 2013 17:37:57 -0400 Subject: Update man page date to reflect recent changes to the information Signed-off-by: Adam Stokes --- man/en/sosreport.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/en/sosreport.1 b/man/en/sosreport.1 index b5a56974..eeda57a9 100644 --- a/man/en/sosreport.1 +++ b/man/en/sosreport.1 @@ -1,4 +1,4 @@ -.TH SOSREPORT 1 "Tue Apr 08 2010" +.TH SOSREPORT 1 "Mon Mar 25 2013" .SH NAME sosreport \- Collect and package diagnostic and support data .SH SYNOPSIS -- cgit