U
    -_g*                     @   s,   d dl mZmZmZ G dd deeeZdS )    )PluginRedHatPluginUbuntuPluginc                   @   s,   e Zd ZdZdZdZdZdd Zdd Zd	S )
NetworkManagerz$NetworkManager service configurationZnetworkmanager)ZnetworkZhardwaresystem)r   znetwork-managerc                    sH  dddg _   j   dddddd	g  jd
d  d d}d}d, fdd	}|ddr dddddg |d }|d }n6|ddr ddddg |d }|d }nd}d}t|dkr4 d}|d  dkr"|d!  D ].}|dd" d#kr
q | d$| d% q j|d& d'd(  d)d*d+ d S )-Nz'/etc/NetworkManager/system-connections/z+/usr/lib/NetworkManager/system-connections/z'/run/NetworkManager/system-connections/z'/etc/NetworkManager/NetworkManager.confz /etc/NetworkManager/dispatcher.dz/etc/NetworkManager/conf.dz/usr/lib/NetworkManager/conf.dz/run/NetworkManager/conf.dz2/var/lib/NetworkManager/NetworkManager-intern.confr   )ZunitszNetworkManager --print-configznmcli con %s idznmcli dev %s   c                    s<   d}ddg}  |||   }|d dko:|d  dS )Nz(nmcli --terse --fields RUNNING %s statusZnmZgeneralstatusr   outputrunning)exec_cmdlower
startswith)versionZstatus_templateZ	obj_tabler   self C/usr/lib/python3/dist-packages/sos/report/plugins/networkmanager.pytest_nm_status5   s    z,NetworkManager.setup.<locals>.test_nm_status)r   znmcli general statusz	nmcli conznmcli -f all conznmcli con show --activez	nmcli devZshowr   znmcli nm statusznmcli con statuszlist idz
list iface znmcli --terse --fields NAME conr   r	      Warningz ""z
 "%(dev)s"Zethernet)ZdevicesZnmcli_dev_showZnmcli_dev_show_sos)znmcli dev showznmcli dev show .*)r   )	system_connection_filesZadd_copy_specZadd_journalZadd_cmd_outputlenr   
splitlinesZadd_device_cmdZadd_cmd_tags)r   Znmcli_con_details_templateZnmcli_dev_details_templater   Znmcli_con_details_cmdZnmcli_dev_details_cmdZnmcli_con_show_resultZconr   r   r   setup   sp    	
	



zNetworkManager.setupc                 C   s    | j D ]}| | dd qd S )Nz[(password|psk|mka-cak|password-raw|pin|preshared-key|private-key|secrets|wep-key[0-9])=(.*)z\1=***)r   Zdo_path_regex_sub)r   Zsc_pathr   r   r   postprocw   s    
zNetworkManager.postprocN)	__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZpackagesr   r   r   r   r   r   r      s   cr   N)Zsos.report.pluginsr   r   r   r   r   r   r   r   <module>	   s   