o
    O6ufg  ã                   @   s&   d dl mZmZ G dd„ deeƒZdS )é    )ÚPluginÚIndependentPluginc                   @   s,   e Zd ZdZdZdZdZdZdZdd„ Z	d	S )
Ú
SeagateSESa  The seagate_ses plugin collect information about all
    connected seagate storage shelves.
    It captures Controller status information, ID, controllers' VPD
    information, Environmental zone, Drive, PHY details, Cooling Module
    and PSU information.
    zSeagate SES statusÚseagate_sesiX  )ÚsystemÚstorageÚhardware)Úfwdownloader_megaraidc                    s˜   |   d¡}g ‰|d dkr|d  d¡dd … ‰‡fdd„ttˆƒƒD ƒ}d	‰ g d
¢}|D ]‰|  ‡ ‡fdd„|D ƒ¡ |  ‡ ‡fdd„|D ƒ¡ q-d S )Nzfwdownloader -sesÚstatusr   Úoutputz
SES Deviceé   c                    s   g | ]
}d ˆ | v r|‘qS )zVendor ID: SEAGATE© )Ú.0Úi)Úop_lstr   ú@/usr/lib/python3/dist-packages/sos/report/plugins/seagate_ses.pyÚ
<listcomp>"   s
    ÿz$SeagateSES.setup.<locals>.<listcomp>zgetstatus -d)Úddump_canmgrÚddump_cblmgrÚddump_drvmgrÚ
dumpdrivesÚddump_phycountersÚddump_pwrmgrÚddump_envctrlÚenvctrl_fanÚenvctrl_zoneÚfwstatusÚ
getboardidÚgetvpdÚreport_faultsÚverÚlogdumpÚphydumpzses_reportpage 2c                    ó    g | ]}ˆ › d ˆ› d|› �‘qS )ú z -CLI r   ©r   Úsubcmd©ÚcmdÚdevidr   r   r   =   ó    ÿc                    r#   )r$   z -cli r   r%   r'   r   r   r   A   r*   )Úcollect_cmd_outputÚsplitÚrangeÚlenÚadd_cmd_output)ÚselfÚresÚdevicesÚsubcmdsr   )r(   r)   r   r   Úsetup   s"   


ÿÿ
ÿûzSeagateSES.setupN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
short_descÚplugin_nameÚplugin_timeoutÚprofilesÚpackagesr4   r   r   r   r   r      s    r   N)Úsos.report.pluginsr   r   r   r   r   r   r   Ú<module>   s   