Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/shmcli.cpython-312.pyc
�

-�_g���0�ddlmZmZmZGd�dee�Zy)�)�Plugin�IndependentPlugin�	PluginOptc�P�eZdZdZdZdZdZdZefZe	ddd�	�gZ
d
�Zd�Zd�Z
y
)�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 Manager�shmcli)�system�storage�hardwarezC/opt/dell/ServerHardwareManager/ServerHardwareManagerCLI/bin/shmcli�debugFzcapture support debug data)�default�descc��gd�}|D]'}|j|j�d|��d|�����)|j�|j�y)N)z
list adapterszlist physical enclosureszlist failed drives� �shmcli_��suggest_filename)�add_cmd_output�
shmcli_bin�collect_enclosures_list�collect_drivers_list)�self�subcmds�subcmds   �;/usr/lib/python3/dist-packages/sos/report/plugins/shmcli.py�setupzSHMcli.setup sd��
���	5�F�����?�?�#�1�V�H�-�#*�6�(�!3�
 �
5�	5�
	
�$�$�&��!�!�#�c	���g}|jd�}|ddk(rp|dj�D]Z��j�}t|�dkDs�"|dj	�dk(s�9|j�j�d��\t
t|��}gd�}|j|j�d	�d
��}|ddk(�r|dj�ddD]���j��t�fd
�|D��s�(�d}�d}|D]H}|j�d|�d|�d|��}|j|jd�}	|j||	���J|jd�s��|jd��}
|j�d|�d|��}|j|jd�}d|
��}
|j||
z|d����yy)z  Collect info on the enclosures z	lsscsi -g�statusr�output��DELL�)
z	list emmszlist drawerszlist emm slotszlist drive slotsz	list fanszlist temp sensorszlist voltage sensorszlist current sensorszlist power supplieszinfo enclosurez list enclosures�shmcli_list_enclosuresr���c3�&�K�|]}|�v���
y�w)N�)�.0�m�lines  �r�	<genexpr>z1SHMcli.collect_enclosures_list.<locals>.<genexpr>Qs�����1�Q�q�D�y�1�s����rz -a=z -enc=rrF)�makez getdebugcli -a=z -outputdir=i,)r�timeoutN)�exec_cmd�
splitlines�split�len�upper�append�list�set�collect_cmd_outputr�any�replacer�
get_option�get_cmd_output_path)r�models�result�wordsr�adapt_index�	enc_indexr�_cmd�_fname�logpath�_dcmd�_dname�_odirr*s              @rrzSHMcli.collect_enclosures_list0s��������{�+���(��q� ��x�(�3�3�5�
3���
�
�����J��N�u�Q�x�~�~�'7�6�'A��M�M�$�*�*�,�q�/�2�
3��c�&�k�"��
���(�(�����/�0�5�)�
���(��q� ��x�(�3�3�5�a��;�
���z�z�|���1�&�1�1�"&�r�(�K� $�Q��I�")�K��#'�?�?�"3�1�V�H�D��
�"(���!5��!%���d�o�o�x�!H���+�+�D�6�+�J�	K�
���w�/�"&�":�":��":�"F��$(�O�O�#4�5'�'2�m�6�)��"F��!&���t����!I��".�w�i� 8���+�+�!�E�M�F�$'�,��!
�!rc�Z�|j|j�d�d��}|ddk(r�|dj�D]l}|j�}t	|�dkDs�"|ddvs�*|j�d	|d��}|j|jd
�}|j
||���nyy)z Collect info on the drives z list drives�shmcli_list_drivesrrrr �)�WWNz---z info drive -d=rN)r7rr0r1r2r9r)rr=r*r>rArBs      rrzSHMcli.collect_drivers_listds����(�(�����|�,�1�)�
���(��q� ��x�(�3�3�5�
K���
�
����u�:��>��a���6�"&�/�/�!2�/�%��(��L��!%���d�o�o�x�!H���+�+�D�6�+�J�

K�!rN)�__name__�
__module__�__qualname__�__doc__�
short_desc�plugin_name�profilesr�filesr�option_listrrrr'rrrrsM���0�J��K�1�H�7�J�
�M�E�	�'�5�/K�L��K�$� 2�h
KrrN)�sos.report.pluginsrrrrr'rr�<module>rUs!��D�C�eK�V�&�eKr