o
    O6uf  ã                   @   s&   d dl mZmZ G dd„ deeƒZdS )é    )ÚPluginÚRedHatPluginc                   @   s4   e Zd ZdZdZdZdZdd„ Zdd„ Zd	d
„ Z	dS )ÚSapnwzSAP NetWeaverÚsapnw)Úsap)z/usr/sapc                    sÊ  | j ddd�}|d dkrdS tƒ }|d  ¡ D ]¼}d|vrÔ| d	¡sÔ| ¡  ¡ }t|ƒd
k r0q|d }|d }|d }| |¡ d|› d�}|  |¡sMq|  	|¡D ]�‰ t
‡ fdd„|||fD ƒƒrÓd|› d�}	d|› d�}ˆ  ¡ }
| jd|	› d|› d|› d|
› �|
› d�d� | jd|	› d|› d|› d�|› d|› d�d� | jd|	› d|› d|› d�|› d|› d�d� | ¡ }|› d|› d|› d �}| jd!|› d"|› d#�|d� qRq|D ]}|  d|› d$�¡ q×dS )%z% Collect data on installed instances z9/usr/sap/hostctrl/exe/saphostctrl -function ListInstancesÚSAPInstances©Úsuggest_filenameÚstatusr   NÚoutputÚDAAzNo instances foundé   é   é   é   z	/usr/sap/z/SYS/profile/c                 3   s   � | ]}|ˆ v V  qd S ©N© )Ú.0Úf©Úliner   ú:/usr/lib/python3/dist-packages/sos/report/plugins/sapnw.pyÚ	<genexpr>-   s   € z/Sapnw.collect_list_instances.<locals>.<genexpr>zLD_LIBRARY_PATH=/usr/sap/z/SYS/exe/runz/SYS/exe/uc/linuxx86_64zenv -i ú z/sappfpar all pf=/usr/sap/Ú_parametersz/sapcontrol -nr z -function GetProcessListÚ_Ú_GetProcListz -function GetVersionInfoÚ_GetVersInfoÚadm_Ú_userenvúsu - zadm -c "sapcontrol -nr z -function GetEnvironment"z/*DVEB*/work/dev_w0)Úcollect_cmd_outputÚsetÚ
splitlinesÚ
startswithÚstripÚsplitÚlenÚaddÚpath_existsÚlistdirÚallÚadd_cmd_outputÚlowerÚadd_copy_spec)ÚselfÚ	inst_listÚ
sidsuniqueÚ	inst_lineÚfieldsÚsidÚinstÚvhostÚpathÚldenvÚprofileÚlowsidÚfnamer   r   r   Úcollect_list_instances   sh   þÿ

ÿÿýýýý€ÿzSapnw.collect_list_instancesc                 C   s2  | j ddd�}|d dkrdS |d  ¡ D ]�}d|v r–| ¡  ¡ }|d	 dd
… }|d dd
… }|dd…  ¡ }|dkrO| jd|› d�|› d|› d�d� q|dkrh|d	 dd
… }|  d|› d|› d�¡ q|dkr~|d	 dd
… }|  d|› d�¡ q|dkr–|d	 dd
… }|  d|› d|› d�¡ qdS )z$ Collect data all the installed DBs z9/usr/sap/hostctrl/exe/saphostctrl -function ListDatabasesÚSAPDatabasesr   r
   r   Nr   zInstance nameé   éÿÿÿÿr   r   Údb6r    z -c "db2 get dbm cfg"r   Ú	_db2_infor   z/sapdb/z/data/config/z.pahÚoraz/oracle/z/*/dbs/init.oraÚsybz/sybase/z/ASE*/z.cfg)r!   r#   r%   r&   Úupperr,   r.   )r/   Údb_listr   r3   ÚdbadmÚdbtyper4   r   r   r   Úcollect_list_dbsV   s<   þ
þÿ€ãzSapnw.collect_list_dbsc                 C   s   |   ¡  |  ¡  d S r   )r<   rH   )r/   r   r   r   Úsetup€   s   zSapnw.setupN)
Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚfilesr<   rH   rI   r   r   r   r   r      s    C*r   N)Úsos.report.pluginsr   r   r   r   r   r   r   Ú<module>   s   