diff options
author | Vikas Goel <vikas.goel@veritas.com> | 2021-07-15 11:11:36 -0700 |
---|---|---|
committer | Jake Hunsaker <jhunsake@redhat.com> | 2021-07-30 10:12:37 -0400 |
commit | a75dfd6dacad45a6b1cf1ce94f7fba1ea2b5a93f (patch) | |
tree | 73dcb8b0031c8e471b948173bc84682e682cab85 | |
parent | 52f7923aa0f7d76fe52a2db9a7873017a6886f2c (diff) | |
download | sos-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.py | 61 |
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 : |