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

-�_g���<�ddlZddlZddlmZmZGd�dee�Zy)�N)�Plugin�IndependentPluginc�2�eZdZdZdZdZdZdZd�Zd�Z	d�Z
y	)
�MellanoxFirmwarez&Nvidia(Mellanox) firmware tools output�mellanox_firmware)�hardware�system)�mst�mstflintzMellanox Technologiesc�Z�|jd�}|ddk(xr|j|dvS)z�
        Checks if this plugin should be executed at all.
        We will only enable the plugin if there is a
        Mellanox Technologies network adapter
        �lspci -D -d 15b3::0200�statusr�output)�exec_cmd�MLNX_STRING)�self�lspcis  �F/usr/lib/python3/dist-packages/sos/report/plugins/mellanox_firmware.py�
check_enabledzMellanoxFirmware.check_enableds6���
�
�6�7���X��!�#�K��(8�(8�E�(�O�(K�K�c��|jd�s|jd�y|jd�}|ddk7ry|jd�}|ddk7ry|jd�|jdd	�
�|jdd	�
�t	j
d�}g}|D]}d
|vs�|j
|��|D]0}|jd|�d�d	�
�|jd|�d�d	�
��2|jdd��y)N�allow_system_changesztSkipping mst/mlx cable commands as system changeswould be made. Use --allow-system-changes toenable this collection.�flint --versionrrz	mst startz
mst cable addz
mst status -v�
��timeout�	mlxcablesz/dev/mst�cablez
mlxcables -d z --DDMz --dumpzmst stopT)�changes)�
get_option�	_log_infor�collect_cmd_output�os�listdir�append)r�coutr�device�mlxcables     r�collectzMellanoxFirmware.collect#s8�����5�6��N�N�5�
6�
��}�}�.�/����>�Q����&�&�{�3����>�Q�������0�������<�����R��8��z�z�*�%���	��	)�F��&� �� � ��(�	)�"�	0�H��#�#�m�H�:�V�$D�,.�
$�
0��#�#�m�H�:�W�$E�,.�
$�
0�	0�
	
���
�D��9rc
��g}|jd�}|ddk7ry|dj�D]}|j|dddz��t|�}g}|j	d�}|ddk7rdd	gd
dgd
dgd
dgddgg}nddgdd	gddgddgddgddgddgg}|D]c}|D]#}|j|d�d|�d|d��d���%t
d�D]+}|jd|���tjd��-�ey)Nr
rrr�z00.0rz
mstconfig -d z -e qzmstflint -d z dcz qz
mstreg -d z --reg_name ROCE_ACCL --getzmstlink -d �zmlxdump -d z pcie_uc --allz	flint -d z
mlxreg -d zmlxlink -d zfwtrace -d z -i all --tracer_mode FIFO� ��r�zmstdump )	r"�
splitlinesr%�setr�add_cmd_output�range�time�sleep)	r�devices�device_list�line�commandsr&r'�command�_s	         r�setupzMellanoxFirmware.setupCs������-�-�.F�G���x� �A�%����)�4�4�6�	-�D�

�N�N�4��!�9�V�+�,�	-��g�,�����}�}�.�/����>�Q��!�'�*���'���&��<�=���#��H�� 0�1� �'�*��e�$��d�#��<�=���#�� <�=��H��
	�F�#�
A���#�#�w�q�z�l�!�F�8�1�'.�q�z�l�%4�=?�$�A�
A��1�X�
���#�#�h�v�h�$7�8��
�
�1�
�
�
	rN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�packagesrrr)r=�rrrrs,��9�J�%�K�%�H�"�H�)�K�L�:�@9rr)r#r5�sos.report.pluginsrrrrErr�<module>rGs!��
��8�l�v�0�lr