1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
### This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## 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, UbuntuPlugin, DebianPlugin
from glob import glob
import os
class hardware(Plugin):
"""hardware related information
"""
plugin_name = "hardware"
def setup(self):
self.add_copy_specs([
"/proc/partitions",
"/proc/cpuinfo",
"/proc/meminfo",
"/proc/ioports",
"/proc/iomem",
"/proc/interrupts",
"/proc/irq",
"/proc/scsi",
"/proc/dma",
"/proc/devices",
"/proc/rtc",
"/proc/ide",
"/proc/bus",
"/etc/stinit.def",
"/proc/chandev",
"/proc/dasd",
"/proc/s390dbf/tape",
"/sys/bus/scsi",
"/sys/state",
"/sys/firmware/acpi/tables",
"/var/log/mcelog"])
self.add_cmd_output("""echo -e "lspci:\n" ; lspci ; echo -e "\nlspci -nvv:\n" ; /sbin/lspci -nvv ; echo -e "\nlspci -tv:\n" ; /sbin/lspci -tv""", suggest_filename = "lspci", root_symlink = "lspci")
self.add_cmd_output("dmidecode", root_symlink = "dmidecode")
if self.policy().pkg_by_name("cpufreq-utils"):
self.add_cmd_output("cpufreq-info")
self.add_cmd_output("cpupower info")
self.add_cmd_output("cpupower frequency-info")
if self.policy().pkg_by_name("kernel-tools"):
self.add_cmd_output("cpupower info")
self.add_cmd_output("cpupower frequency-info")
self.add_cmd_output("cpupower idle-info")
if self.policy().get_arch().endswith("386"):
self.add_cmd_output("x86info -a")
self.add_cmd_output("lsusb")
self.add_cmd_output("lsusb -v")
self.add_cmd_output("lsusb -t")
self.add_cmd_output("lshal")
self.add_cmd_output("systool -c fc_host -v")
self.add_cmd_output("systool -c scsi_host -v")
class RedHatHardware(hardware, RedHatPlugin):
"""hardware related information for Red Hat distribution
"""
def setup(self):
super(RedHatHardware, self).setup()
hwpaths = glob("/usr/share/rhn/up2date*client/hardware.py")
if (len(hwpaths) == 0):
return
self.add_cmd_output("python " + hwpaths[0])
class DebianHardware(hardware, DebianPlugin, UbuntuPlugin):
"""hardware related information for Debian distribution
"""
def setup(self):
super(DebianHardware, self).setup()
|