89b86368f8
Update sos in rawhide to the upstream 3.2 release and additional patches including the fix for CVE-2015-7529.
136 lines
5.5 KiB
Diff
136 lines
5.5 KiB
Diff
From ad464fcc0882f8764e8bbb091a91eeeb4a804ff3 Mon Sep 17 00:00:00 2001
|
|
From: "Bryn M. Reeves" <bmr@redhat.com>
|
|
Date: Mon, 15 Dec 2014 17:30:24 +0000
|
|
Subject: [PATCH] [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>
|
|
---
|
|
sos/plugins/iprconfig.py | 110 +++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 110 insertions(+)
|
|
create mode 100644 sos/plugins/iprconfig.py
|
|
|
|
diff --git a/sos/plugins/iprconfig.py b/sos/plugins/iprconfig.py
|
|
new file mode 100644
|
|
index 0000000..b77c192
|
|
--- /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],))
|
|
--
|
|
1.8.3.1
|
|
|