aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryn M. Reeves <bmr@redhat.com>2013-04-30 15:52:41 +0100
committerBryn M. Reeves <bmr@redhat.com>2013-04-30 15:52:41 +0100
commit04b06c04713182bc112f3a44c904af198bc5fb56 (patch)
tree0217c8afa2bfe759eddd75cae13b6cea96f42142
parent5df81ba19765fa59999300bb4e405a7714ec0ec2 (diff)
downloadsos-04b06c04713182bc112f3a44c904af198bc5fb56.tar.gz
Add new ATA/IDE plug-in
Separate the ATA and IDE code from the hardware god-object and put them in a separate plug-in that is activated by the presence of hdparm or smartmontools. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r--sos/plugins/ata.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/sos/plugins/ata.py b/sos/plugins/ata.py
new file mode 100644
index 00000000..eb0f53f8
--- /dev/null
+++ b/sos/plugins/ata.py
@@ -0,0 +1,36 @@
+### 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
+import os
+
+class Ata(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
+ """ ATA and IDE related information (including PATA and SATA)
+ """
+
+ plugin_name = "ata"
+
+ packages = ('hdparm', 'smartmontools')
+
+ def setup(self):
+ dev_path = '/dev'
+ sys_block = '/sys/block'
+ self.add_copy_spec('/proc/ide')
+ if os.path.isdir(sys_block):
+ for disk in os.listdir(sys_block):
+ if disk.startswith("sd") or disk.startswith("hd"):
+ disk_path = os.path.join(dev_path, disk)
+ self.add_cmd_output("hdparm %s" % disk_path)
+ self.add_cmd_output("smartctl -a %s" % disk_path)
+