File: //lib/python3.6/site-packages/sos/report/plugins/__pycache__/shmcli.cpython-36.pyc
3
-�_g� � @ s* d dl mZmZmZ G dd� dee�ZdS )� )�Plugin�IndependentPlugin� PluginOptc @ sN e Zd ZdZdZdZdZdZefZe dd d
d�gZ
dd
� Zdd� Zdd� Z
dS )�SHMclia shmcli 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 Manager�shmcli�system�storage�hardwarezC/opt/dell/ServerHardwareManager/ServerHardwareManagerCLI/bin/shmcli�debugFzcapture support debug data)�defaultZdescc C sL dddg}x,|D ]$}| j | j� d|� �d|� �d� qW | j� | j� d S )Nz
list adapterszlist physical enclosureszlist failed drives� Zshmcli_)�suggest_filename)�add_cmd_output�
shmcli_bin�collect_enclosures_list�collect_drivers_list)�self�subcmds�subcmd� r �/usr/lib/python3.6/shmcli.py�setup s
zSHMcli.setupc
s� g }| j d�}|d dkrfxJ|d j� D ]:� � j� }t|�dkr(|d j� dkr(|j� j� d � q(W tt|��}dd d
ddd
ddddg
}| j| j � d�dd�}|d dk�r�x�|d j� dd$� D ]҉ � j� � t
� fdd�|D ��rĈ d% }� d }xF|D ]>}| j � d|� d|� d|� �}|j| j d�} | j|| d� � q�W | j
d�r�| jdd�}
| j � d|� d|� �}|j| j d�}d |
� �}
| j||
|d!d"� q�W d#S )&z Collect info on the enclosures z lsscsi -g�statusr �output� ZDELL� z list emmszlist drawerszlist emm slotszlist drive slotsz list fanszlist temp sensorszlist voltage sensorszlist current sensorszlist power supplieszinfo enclosurez list enclosuresZshmcli_list_enclosures)r
c 3 s | ]}|� kV qd S )Nr )�.0�m)�liner r � <genexpr>Q s z1SHMcli.collect_enclosures_list.<locals>.<genexpr>� r z -a=z -enc=r r
F)Zmakez getdebugcli -a=z -outputdir=i, )r
ZtimeoutN������)Zexec_cmd�
splitlines�split�len�upper�append�list�set�collect_cmd_outputr �any�replacer Z
get_optionZget_cmd_output_path)r Zmodels�result�wordsr Zadapt_indexZ enc_indexr �_cmd�_fnameZlogpathZ_dcmdZ_dnameZ_odirr )r r r 0 sN
zSHMcli.collect_enclosures_listc C s� | j | j� d�dd�}|d dkr�xd|d j� D ]T}|j� }t|�dkr0|d d
kr0| j� d
|d � �}|j| jd�}| j||d� q0W dS )z Collect info on the drives z list drivesZshmcli_list_drives)r
r r r � �WWN�---z info drive -d=r N)r2 r3 )r* r r# r$ r% r, r )r r- r r. r/ r0 r r r r d s
zSHMcli.collect_drivers_listN)r r r )�__name__�
__module__�__qualname__�__doc__Z
short_descZplugin_nameZprofilesr �filesr Zoption_listr r r r r r r r s 4r N)Zsos.report.pluginsr r r r r r r r �<module> s