aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryn M. Reeves <bmr@redhat.com>2014-12-15 17:30:24 +0000
committerBryn M. Reeves <bmr@redhat.com>2015-01-27 12:50:10 +0000
commitad464fcc0882f8764e8bbb091a91eeeb4a804ff3 (patch)
treeafd0714e3b9c2eedc50428159f3d2d3ca9598afa
parent7c12e6c994b3320ef57a13e06f5c445b6bca7935 (diff)
downloadsos-ad464fcc0882f8764e8bbb091a91eeeb4a804ff3.tar.gz
[iprconfig] add plugin for IBM Power RAID adapters
Capture information which helps in better understanding of IBM Power RAID storage adapter configuration. Since iprconfig is specific to power adding the relevant commands in powerpc plugin. Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r--sos/plugins/iprconfig.py110
1 files changed, 110 insertions, 0 deletions
diff --git a/sos/plugins/iprconfig.py b/sos/plugins/iprconfig.py
new file mode 100644
index 00000000..b77c1928
--- /dev/null
+++ b/sos/plugins/iprconfig.py
@@ -0,0 +1,110 @@
+# 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.
+
+# This plugin enables collection of logs for Power systems
+
+import os
+import re
+from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin
+from sos.utilities import is_executable
+
+
+class IprConfig(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
+ """IBM Power RAID storage adapter configuration information
+ """
+
+ plugin_name = 'iprconfig'
+
+ def check_enabled(self):
+ arch = self.policy().get_arch()
+ return arch == "ppc64" and is_executable("iprconfig")
+
+ def setup(self):
+ self.add_cmd_output([
+ "iprconfig -c show-config",
+ "iprconfig -c show-alt-config",
+ "iprconfig -c show-arrays",
+ "iprconfig -c show-jbod-disks",
+ "iprconfig -c show-ioas",
+ ])
+
+ show_ioas = self.call_ext_prog("iprconfig -c show-ioas")
+ if not show_ioas['status'] == 0:
+ return
+
+ devices = []
+ if show_ioas['output']:
+ p = re.compile('sg')
+ for line in show_ioas['output'].splitlines():
+ temp = line.split(' ')
+ # temp[0] holds the device name
+ if p.search(temp[0]):
+ devices.append(temp[0])
+
+ for device in devices:
+ self.add_cmd_output("iprconfig -c show-details %s" % (device,))
+
+ # Look for IBM Power RAID enclosures (iprconfig lists them)
+ show_config = self.call_ext_prog("iprconfig -c show-config")
+ if not show_config['status'] == 0:
+ return
+
+ if not show_config['output']:
+ return
+
+# iprconfig -c show-config
+# Name PCI/SCSI Location Description Status
+# ------ ------------------------- ------------------------- -----------------
+# 0005:60:00.0/0: PCI-E SAS RAID Adapter Operational
+# sda 0005:60:00.0/0:0:0:0 Physical Disk Active
+# sdb 0005:60:00.0/0:1:0:0 Physical Disk Active
+# sdc 0005:60:00.0/0:2:0:0 Physical Disk Active
+# sdd 0005:60:00.0/0:3:0:0 Physical Disk Active
+# sde 0005:60:00.0/0:4:0:0 Physical Disk Active
+# sdf 0005:60:00.0/0:5:0:0 Physical Disk Active
+# 0005:60:00.0/0:8:0:0 Enclosure Active
+# 0005:60:00.0/0:8:1:0 Enclosure Active
+
+ show_alt_config = "iprconfig -c show-alt-config"
+ altconfig = self.call_ext_prog(show_alt_config)
+ if not (altconfig['status'] == 0):
+ return
+
+ if not altconfig['output']:
+ return
+
+# iprconfig -c show-alt-config
+# Name Resource Path/Address Vendor Product ID Status
+# ------ -------------------------- -------- ---------------- -----------------
+# sg9 0: IBM 57C7001SISIOA Operational
+# sg0 0:0:0:0 IBM MBF2300RC Active
+# sg1 0:1:0:0 IBM MBF2300RC Active
+# sg2 0:2:0:0 IBM HUC106030CSS600 Active
+# sg3 0:3:0:0 IBM HUC106030CSS600 Active
+# sg4 0:4:0:0 IBM HUC106030CSS600 Active
+# sg5 0:5:0:0 IBM HUC106030CSS600 Active
+# sg7 0:8:0:0 IBM VSBPD6E4A 3GSAS Active
+# sg8 0:8:1:0 IBM VSBPD6E4B 3GSAS Active
+
+ for line in show_config['output'].splitlines():
+ if "Enclosure" in line:
+ temp = re.split('\s+', line)
+ # temp[1] holds the PCI/SCSI location
+ pci, scsi = temp[1].split('/')
+ for line in altconfig['output'].splitlines():
+ if scsi in line:
+ temp = line.split(' ')
+ # temp[0] holds device name
+ self.add_cmd_output("iprconfig -c "
+ "query-ses-mode %s" % (temp[0],))