U
    id	                     @   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)sap)z/usr/sapc                    s  | j ddd}|d dkrd S d}d}d}d	}t }|d
  D ]4}d|kr@|ds@|  }t|dk rrq@|d }	|d }
|d }||	 d|	 }| |sq@| 	|D ] t
 fdd|	|
|fD rd|	 }d|	 }  }| j||||	|f d| d | j||||
f d|	|
f d | j||||
f d|	|
f d |	 }d|	||
f }| j|||
f |d qq@|D ]}	| d|	  q|d S )Nz9/usr/sap/hostctrl/exe/saphostctrl -function ListInstancesZSAPInstancesZsuggest_filenamestatusr   z7env -i %s %s/sappfpar all pf=/usr/sap/%s/SYS/profile/%sz7env -i %s %s/sapcontrol -nr %s -function GetProcessListz7env -i %s %s/sapcontrol -nr %s -function GetVersionInfoz:su - %sadm -c "sapcontrol -nr %s -function GetEnvironment"outputZDAAzNo instances found            z/usr/sap/%s/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>3   s     z/sapnw.collect_list_instances.<locals>.<genexpr>z'LD_LIBRARY_PATH=/usr/sap/%s/SYS/exe/runz"/usr/sap/%s/SYS/exe/uc/linuxx86_64z%s_parametersz%s_%s_GetProcListz%s_%s_GetVersInfoz%s_%sadm_%s_userenvz/usr/sap/%s/*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)selfZinst_outZprof_cmdZinst_cmdZvers_cmdZuser_cmdZ
sidsuniqueZ	inst_linefieldssidinstZvhostpathZldenvZptZprofileZlowsidfnamer   r   r   collect_list_instances   sd    





zsapnw.collect_list_instancesc                 C   s  | 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||f d q*|dkr|d d d	 }| d||f  q*|dkr|d d d	 }| d|  q*|dkr*|d d d	 }| d||f  q*d S )Nz9/usr/sap/hostctrl/exe/saphostctrl -function ListDatabasesZSAPDatabasesr   r   r   r   zInstance name   r	   r
   Zdb6zsu - %s -c "db2 get dbm cfg"z%s_%s_db2_infor   z/sapdb/%s/data/config/%s.pahZoraz/oracle/%s/*/dbs/init.oraZsybz/sybase/%s/ASE*/%s.cfg)r   r   r   r   upperr   r!   )r"   Zdb_outr   r#   ZdbadmZdbtyper$   r   r   r   collect_list_dbsX   s8    

zsapnw.collect_list_dbsc                 C   s6   |    |   | ds$| dr2| jddd d S )Nz)/etc/security/limits.d/99-sap-limits.confZallow_system_changesz
sapconf -nZsapconf_checkmoder   )r(   r,   r   Z
get_optionr   )r"   r   r   r   setup   s    
zsapnw.setupN)
__name__
__module____qualname__Z
short_descZplugin_nameZprofilesfilesr(   r,   r-   r   r   r   r   r      s   E)r   N)Zsos.report.pluginsr   r   r   r   r   r   r   <module>	   s   