U
    -_g                     @   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 NetWeaverZsapnw)sap)z/usr/sapc                    s  | j ddd}|d dkrdS t }|d  D ]z}d|kr0|d	s0|  }t|d
k rbq0|d }|d }|d }|| d| d}| |sq0| 	|D ] t
 fdd|||fD rd| 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 qq0|D ]}| d| d$ qdS )%z% Collect data on installed instances z9/usr/sap/hostctrl/exe/saphostctrl -function ListInstancesZSAPInstancesZsuggest_filenamestatusr   NoutputZDAAzNo instances found            z	/usr/sap/z/SYS/profile/c                 3   s   | ]}| k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/Z_parametersz/sapcontrol -nr z -function GetProcessList_Z_GetProcListz -function GetVersionInfoZ_GetVersInfoZadm_Z_userenvsu - zadm -c "sapcontrol -nr z -function GetEnvironment"z/*DVEB*/work/dev_w0)collect_cmd_outputset
splitlines
startswithstripsplitlenaddZpath_existslistdiralladd_cmd_outputloweradd_copy_spec)selfZ	inst_listZ
sidsuniqueZ	inst_linefieldssidinstZvhostpathZldenvZprofileZlowsidfnamer   r   r   collect_list_instances   s\    


zSapnw.collect_list_instancesc                 C   s6  | j ddd}|d dkrdS |d  D ]}d|kr*|  }|d	 dd
 }|d dd
 }|dd  }|dkr| jd| d| d| dd q*|dkr|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 ListDatabasesZSAPDatabasesr   r   r   Nr   zInstance name   r	   r
   Zdb6r   z -c "db2 get dbm cfg"r   Z	_db2_infor   z/sapdb/z/data/config/z.pahZoraz/oracle/z/*/dbs/init.oraZsybz/sybase/z/ASE*/z.cfg)r   r   r   r   upperr"   r$   )r%   Zdb_listr   r&   ZdbadmZdbtyper'   r   r   r   collect_list_dbsV   s8    

zSapnw.collect_list_dbsc                 C   s   |    |   d S r   )r+   r/   )r%   r   r   r   setup   s    zSapnw.setupN)
__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesr+   r/   r0   r   r   r   r   r      s   C*r   N)Zsos.report.pluginsr   r   r   r   r   r   r   <module>	   s   