Ë
    i©¹dë  ã                   ó0   — d dl mZmZmZ  G d„ dee«      Zy)é    )ÚPluginÚIndependentPluginÚ	PluginOptc                   óD   — e Zd ZdZdZdZdZdZefZ e	ddd¬	«      gZ
d
„ Zy)Ú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.
    zDell Server Hardware ManagerÚshmcli)ÚsystemÚstorageÚhardwarezC/opt/dell/ServerHardwareManager/ServerHardwareManagerCLI/bin/shmcliÚdebugFzcapture support debug data)ÚdefaultÚdescc           	      óÄ  ‡— | j                   }g d¢}|D ]  }| j                  |›d|›�d|z  ¬«       Œ g }| j                  d«      }|d   dk(  rp|d   j                  «       D ]Z  }|j	                  «       }t        |«      d	kD  sŒ"|d	   j                  «       d
k(  sŒ9|j                  |j	                  «       d   «       Œ\ t        t        |«      «      }g d¢}| j                  d|z  d¬«      }|d   dk(  rß|d   j                  «       d	d D ]Æ  }|j	                  «       Št        ˆfd„|D «       «      sŒ(‰d   }‰d   }	|D ]4  }|›d|›d|›d|	›�}
|
j                  |d«      }| j                  |
|¬«       Œ6 | j                  d«      sŒ}| j                  d¬«      }|›d|›d|	›�}|j                  |d«      }d|z  }| j                  ||z   |d¬«       ŒÈ | j                  d|z  d¬«      }|d   dk(  ro|d   j                  «       D ]X  }|j	                  «       }t        |«      dkD  sŒ"|d   dvsŒ*|›d |d   ›�}
|
j                  |d«      }| j                  |
|¬«       ŒZ y y )!N)zlist adapterszlist physical enclosureszlist failed drivesú z	shmcli_%s)Úsuggest_filenamez	lsscsi -gÚstatusr   Úoutputé   ÚDELLé   )
z	list emmszlist drawerszlist emm slotszlist drive slotsz	list fanszlist temp sensorszlist voltage sensorszlist current sensorszlist power supplieszinfo enclosurez%s list enclosuresÚshmcli_list_enclosureséþÿÿÿc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w)N© )Ú.0ÚmÚ_lines     €ú;/usr/lib/python3/dist-packages/sos/report/plugins/shmcli.pyú	<genexpr>zSHMcli.setup.<locals>.<genexpr>M   s   øè ø€ Ò2 a�q˜E”zÑ2ùs   ƒéÿÿÿÿz -a=z -enc=r   r   F)Úmakez getdebugcli -a=z -outputdir=%si,  )r   Útimeoutz%s list drivesÚshmcli_list_drivesé   )ÚWWNz---z info drive -d=)Ú
shmcli_binÚadd_cmd_outputÚexec_cmdÚ
splitlinesÚsplitÚlenÚupperÚappendÚlistÚsetÚcollect_cmd_outputÚanyÚreplaceÚ
get_optionÚget_cmd_output_path)ÚselfÚcmdÚsubcmdsÚsubcmdÚmodelsÚresultÚlineÚwordsÚadapt_indexÚ	enc_indexÚ_cmdÚ_fnameÚlogpathÚ_dcmdÚ_dnameÚ_odirr   s                   @r   ÚsetupzSHMcli.setup    sµ  ø€ Ø�o‰oˆò
ˆð ò 	9ˆFØ×ÑÚ¡Ð'Ø!,°Ñ!7ð  õ 9ð	9ð
 ˆð —‘˜{Ó+ˆØ�(Ñ˜qÒ Ø˜xÑ(×3Ñ3Ó5ò 3�ØŸ
™
›�Ü˜“J “N u¨Q¡x§~¡~Ó'7¸6Ó'AØ—M‘M $§*¡*£,¨q¡/Õ2ð3ô ”c˜&“kÓ"ˆò
ˆð ×(Ñ(Ø  CÑ(Ø5ð )ó 
ˆð �(Ñ˜qÒ Ø˜xÑ(×3Ñ3Ó5°a¸Ð;ò �ØŸ
™
›�ÜÓ2¨6Ô2Õ2Ø"'¨¡)�KØ % a¡�IØ")ò K˜â#&ª²¹Yð!H˜à!%§¡¨c°8Ó!<˜Ø×+Ñ+¨DÀ6Ð+ÕJð	Kð
 —‘ wÕ/Ø"&×":Ñ":ÀÐ":Ó"F˜â$'ª±ið"A˜à!&§¡¨s°HÓ!=˜Ø!1°WÑ!=˜Ø×+Ñ+Ø! E™M¸FØ$'ð ,õ ð!ð* ×(Ñ(Ø Ñ$Ø1ð )ó 
ˆð �(Ñ˜qÒ Ø˜xÑ(×3Ñ3Ó5ò K�ØŸ
™
›�Ü˜“J “NØ˜a™¨Ò6â#&¨¨aªð!2˜à!%§¡¨c°8Ó!<˜Ø×+Ñ+¨DÀ6Ð+ÕJñKð !ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
short_descÚplugin_nameÚprofilesr&   Úfilesr   Úoption_listrE   r   rF   r   r   r      sC   „ ñð 0€Jà€KØ1€Hð7€JàˆM€Eñ 	�' 5Ð/KÔLð€KóLKrF   r   N)Úsos.report.pluginsr   r   r   r   r   rF   r   ú<module>rQ      s!   ð÷ DÑ Cô`KˆVÐ&õ `KrF   