3 ܓi@s*ddlmZmZmZGdddeeZdS))PluginIndependentPlugin PluginOptc@sNeZdZdZdZdZdZdZefZe dd d d gZ d d Z ddZ ddZ dS)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 ManagershmclisystemstoragehardwarezC/opt/dell/ServerHardwareManager/ServerHardwareManagerCLI/bin/shmclidebugFzcapture support debug data)defaultZdesccCsLdddg}x,|D]$}|j|jd|d|dqW|j|jdS)Nz list adapterszlist physical enclosureszlist failed drives Zshmcli_)suggest_filename)add_cmd_output shmcli_bincollect_enclosures_listcollect_drivers_list)selfsubcmdssubcmdr/usr/lib/python3.6/shmcli.pysetup s z SHMcli.setupc sg}|jd}|ddkrfxJ|djD]:j}t|dkr(|djdkr(|jjdq(Wtt|}dd d d d d ddddg }|j|j ddd}|ddkrx|djdd$D]҉jt fdd|DrĈd%}d}xF|D]>}|j d|d|d|}|j |j d} |j || dqW|j dr|jdd} |j d|d|} | j |j d} d | } |j | | | d!d"qWd#S)&z Collect info on the enclosures z lsscsi -gstatusroutputZDELLz list emmsz list drawerszlist emm slotszlist drive slotsz list fanszlist temp sensorszlist voltage sensorszlist current sensorszlist power supplieszinfo enclosurez list enclosuresZshmcli_list_enclosures)r c3s|]}|kVqdS)Nr).0m)linerr Qsz1SHMcli.collect_enclosures_list..r z -a=z -enc=rr F)Zmakez getdebugcli -a=z -outputdir=i,)r ZtimeoutN)Zexec_cmd splitlinessplitlenupperappendlistsetcollect_cmd_outputranyreplacerZ get_optionZget_cmd_output_path)rZmodelsresultwordsrZ adapt_indexZ enc_indexr_cmd_fnameZlogpathZ_dcmdZ_dnameZ_odirr)rrr0sN        zSHMcli.collect_enclosures_listcCs|j|jddd}|ddkrxd|djD]T}|j}t|dkr0|dd kr0|jd |d}|j|jd }|j||dq0Wd S)z Collect info on the drives z list drivesZshmcli_list_drives)r rrrWWN---z info drive -d=rN)r2r3)r*rr#r$r%r,r)rr-rr.r/r0rrrrds    zSHMcli.collect_drivers_listN)rrr )__name__ __module__ __qualname____doc__Z short_descZ plugin_nameZprofilesrfilesrZ option_listrrrrrrrr s4rN)Zsos.report.pluginsrrrrrrrr s