o id@s*ddlmZmZmZGdddeeZdS))PluginIndependentPlugin PluginOptc@s>eZdZdZdZdZdZdZefZe dddd gZ d d Z d S) SHMcliashmcli pulls hardware information from PowerVault/Dell Storage JBOD's attached to server. It provides information of the adapters, emms, drives, enclosures, fans, power supplies and the sensory data of temp, voltage, and current sensors. zDell Server Hardware Managershmcli)systemstoragehardwarezC/opt/dell/ServerHardwareManager/ServerHardwareManagerCLI/bin/shmclidebugFzcapture support debug data)defaultdesccs|j}gd}|D]}|jd||fd|dq g}|d}|ddkrJ|dD]}|}t|d krI|d d krI||d q,tt |}gd }|j d |dd}|ddkr|dd dD]Y}|t fdd|Drƈd}d} |D]}d|||| f} | |d} |j| | dq| dr|jdd} d||| f} | |d}d| }|j| ||ddqm|j d|dd}|ddkr|dD]+}|}t|dkr|ddvrd ||df} | |d} |j| | dqdSdS)!N)z list adapterszlist physical enclosureszlist failed drivesz%s %sz shmcli_%s)suggest_filenamez lsscsi -gstatusroutputDELL) z list emmsz list drawerszlist emm slotszlist drive slotsz list fanszlist temp sensorszlist voltage sensorszlist current sensorszlist power supplieszinfo enclosurez%s list enclosuresshmcli_list_enclosuresc3s|]}|vVqdS)N).0m_liner;/usr/lib/python3/dist-packages/sos/report/plugins/shmcli.py MszSHMcli.setup..z%s %s -a=%s -enc=%srr F)makez%s getdebugcli -a=%s -enc=%sz -outputdir=%si,)r timeoutz%s list drivesshmcli_list_drives)WWNz---z%s info drive -d=%s) shmcli_binadd_cmd_outputexec_cmd splitlinessplitlenupperappendlistsetcollect_cmd_outputanyreplace get_optionget_cmd_output_path)selfcmdsubcmdssubcmdmodelsresultlinewords adapt_index enc_index_cmd_fnamelogpath_dcmd_dname_odirrrrsetup s|             z SHMcli.setupN) __name__ __module__ __qualname____doc__ short_desc plugin_nameprofilesr"filesr option_listrArrrrr s  rN)sos.report.pluginsrrrrrrrrs