aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Goel <vikas.goel@veritas.com>2021-07-15 11:11:36 -0700
committerJake Hunsaker <jhunsake@redhat.com>2021-07-30 10:12:37 -0400
commita75dfd6dacad45a6b1cf1ce94f7fba1ea2b5a93f (patch)
tree73dcb8b0031c8e471b948173bc84682e682cab85
parent52f7923aa0f7d76fe52a2db9a7873017a6886f2c (diff)
downloadsos-a75dfd6dacad45a6b1cf1ce94f7fba1ea2b5a93f.tar.gz
[smclient] Add SANtricity storage device (NetApp) support
Signed-off-by: Vikas Goel <vikas.goel@gmail.com>
-rw-r--r--sos/report/plugins/smclient.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/sos/report/plugins/smclient.py b/sos/report/plugins/smclient.py
new file mode 100644
index 00000000..e9f1e0f5
--- /dev/null
+++ b/sos/report/plugins/smclient.py
@@ -0,0 +1,61 @@
+# This file is part of the sos project: https://github.com/sosreport/sos
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions of
+# version 2 of the GNU General Public License.
+#
+# See the LICENSE file in the source distribution for further information.
+
+from sos.report.plugins import Plugin, IndependentPlugin
+
+
+class SMcli(Plugin, IndependentPlugin):
+
+ short_desc = 'SANtricity storage device'
+
+ plugin_name = 'smclient'
+ plugin_timeout = 900
+ profiles = ('system', 'storage', 'hardware',)
+ packages = ('SMclient',)
+
+ option_list = [
+ ("debug", "capture support debug data", "slow", False),
+ ]
+
+ def setup(self):
+ subcmds = [
+ "show storagearray;",
+ "show storagearray connections;",
+ "show storagearray healthstatus;",
+ ]
+
+ ssnames = []
+
+ # Get list of storage arrays
+ result = self.collect_cmd_output('SMcli -d -S')
+ if result['status'] == 0:
+ for line in result['output'].splitlines():
+ if 'localhost' in line:
+ ssnames.append(line.split()[0])
+
+ # Collect status of each storage array
+ for ssname in ssnames:
+ self.add_cmd_output([
+ "SMcli localhost -n %s -c '%s'" % (ssname, subcmd)
+ for subcmd in subcmds
+ ])
+
+ if self.get_option("debug"):
+ self.do_debug(ssnames)
+
+ def do_debug(self, ssnames):
+ logpath = self.get_cmd_output_path(make=False)
+
+ cmd = 'SMcli localhost -n'
+ subcmd = 'save storageArray supportData file='
+ for ssname in ssnames:
+ self.add_cmd_output(
+ "%s %s -c '%s\"support-%s\";'" % (cmd, ssname, subcmd, ssname),
+ runat=logpath, timeout=450)
+
+# vim: set et ts=4 sw=4 :