Server IP : 51.89.169.208 / Your IP : 216.73.216.189 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/lib/python3.6/site-packages/sos/report/plugins/ |
Upload File : |
# 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. import re from sos.report.plugins import Plugin, IndependentPlugin, PluginOpt class Hpssm(Plugin, IndependentPlugin): """ This plugin will capture details for each controller from Smart Storage Array Administrator, an Array diagnostic report from Smart Storage Administrator Diagnostics Utility and, when the plugins debug option is enabled will gather the Active Health System log via the RESTful Interface Tool (iLOREST). """ short_desc = 'HP Smart Storage Management' plugin_name = 'hpssm' profiles = ('system', 'storage', 'hardware',) packages = ('ilorest', 'ssacli', 'ssaducli',) option_list = [ PluginOpt('debug', default=False, desc='capture debug data') ] def setup(self): cmd = 'ssacli' subcmds = [ 'ctrl all show status' ] slot_subcmds = [ 'array all show detail', 'ld all show', 'ld all show detail', 'pd all show', 'pd all show detail', 'show detail' ] self.add_cmd_output( [f"{cmd} {subcmd}" for subcmd in subcmds] ) pattern = re.compile("^HP[E] (.*) in Slot ([0123456789]+)") config_detail_cmd = cmd + ' ctrl all show config detail' config_detail = self.collect_cmd_output(config_detail_cmd) ctrl_slots = [] if config_detail['status'] == 0: ctrl_slots = [m.group(2) for line in config_detail['output'].splitlines() for m in [pattern.search(line)] if m] ssacli_ctrl_slot_cmd = cmd + ' ctrl slot=' self.add_cmd_output( [f"{ssacli_ctrl_slot_cmd}{slot} {slot_subcmd}" for slot in ctrl_slots for slot_subcmd in slot_subcmds] ) logpath = self.get_cmd_output_path() self.add_cmd_output( f'ssaducli -v -adu -f {logpath}/adu-log.zip', suggest_filename='ssaducli_-v_-adu.log' ) if self.get_option("debug"): self.do_debug(logpath) def do_debug(self, logpath): """ Collect debug logs """ self.add_cmd_output( f'ilorest serverlogs --selectlog=AHS --directorypath={logpath}', runat=logpath, suggest_filename='ilorest.log' ) # vim: set et ts=4 sw=4 :