| Current Path : /usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ |
| Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/networking.cpython-38.pyc |
U
���b�+ � @ sZ d dl mZmZmZmZmZmZ G dd� de�ZG dd� dee�ZG dd� deee�Z dS ) � )�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate� PluginOptc s| e Zd ZdZdZdZdZeddde d�ed d
edd�ed
de dd�edddd�edddd�gZ
dZdZ� fdd�Z
� ZS )�
Networkingz,Network and networking devices configurationZ
networking)ZnetworkZhardware�systemzwww.example.com�
tracerouteFzcollect a traceroute to %s)�default�desc�namespace_pattern� zFSpecific namespace names or patterns to collect, whitespace delimited.)r Zval_typer �
namespacesNz0Number of namespaces to collect, 0 for unlimited�ethtool_namespacesTz;Toggle if ethtool commands should be run for each namespace�
eepromdumpz*Toggle collection of 'ethtool -e' for NICsz-WZacdgiklmPSTc s� t t| ��� | jD ]}| �d| d| i� q| �ddd�� | �dddd d
ddd
ddddddg� | �ddddddg� | jdddd� | jdddd� | �d� | jd | j d!d"� | �d#d$d%| j d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g� | �
d7��rL| �d8d9d:g� | �d;�}|d< d=k�rL|d> �� }|D ]}| �d?| � �q6d@}t
| dAgdB�}| j||dCdD� dE}t
| dFdGdHdIdJdKdLgdMdNidO�}| j||dCdD� dPdQ� | jD �} | jdRdQ� | D �dSdT� | jdUdVdWdXdYdZgdSdT� | �d[��rd\}
| �d]� | j|
dSdT� | �d^d_d`dag� | �db��r>| jdc| j ddde� | �df� dg}| �| �dh�| �di��}|�r�djdkdl�}
dmdkdl�}| j| t
| |
dn�do��r�t
| dkgdB�nd }| j| t
| |dn�do��r�t
| dkgdB�nd }|D �]}| jdp | }dq| }|| dr }| j|ds |d' |d3 |d+ |d, |d- |d | j |d$ |d%| j |d# g
dt|du� | j|dv g||dtdw� | j|dx g||dtdw� |dE }| j|||dy� | �dz��r�| j|dU |d{ |d| |d} g|dS dt|d~� �q�d S )Nzethtool -%s .*z ethool_%sZbondZhosts)z/proc/net/bonding/bond.*z
/etc/hostsz
/proc/net/z/etc/nsswitch.confz/etc/yp.confz/etc/inetd.confz/etc/xinetd.confz
/etc/xinetd.dz
/etc/host*�/etc/resolv.confz
/etc/network*z
/etc/dnsmasq*z!/sys/class/net/*/device/numa_nodez/sys/class/net/*/flagsz/sys/class/net/*/statistics/z
/etc/iproute2z/proc/net/rpc/use-gss-proxyz/proc/net/rpc/*/channelz/proc/net/rpc/*/flushz
/proc/net/cdpz/sys/net/cdpz/proc/net/eiconz
ip -o addrZip_addr)�root_symlinkZtagszroute -nZrouteZ
plotnetcfgznetstat %s -neopaZnetstat)r z
nstat -zasz
netstat -sznetstat %s -agnznetworkctl status -azip route show table allzip -6 route show table allzip -d route show cachezip -d -6 route show cachezip -4 rule listzip -6 rule listzip vrf showz
ip -s -d linkz
ip -d addresszifenslave -azip mroute showz
ip maddr showzip -s -s neigh showzip neigh show nud noarpzbiosdevname -dztc -s qdisc showz/sys/class/devlinkzdevlink dev param showzdevlink dev infozdevlink port showzdevlink devZstatusr �outputzdevlink dev eswitch show %szip -s macsec showZmacsec)�kmodsT)�predZchangeszss -peaonmiZtcp_diagZudp_diagZ inet_diagZ unix_diagZnetlink_diagZaf_packet_diagZxsk_diagr �all)r Zrequiredc S s g | ]}d | �qS )zethtool -%s� )�.0�optr r �?/usr/lib/python3/dist-packages/sos/report/plugins/networking.py�
<listcomp>� s z$Networking.setup.<locals>.<listcomp>c S s g | ]}|d �qS )z %(dev)sr )r Z_cmdr r r r � s Zethernet)�deviceszethtool %(dev)sz ethtool --phy-statistics %(dev)sz!ethtool --show-priv-flags %(dev)szethtool --show-eee %(dev)sztc -s filter show dev %(dev)sz%tc -s filter show dev %(dev)s ingressr zethtool -e %(dev)szwWARNING: collecting an eeprom dump is known to cause certain NIC drivers (e.g. bnx2x/tg3) to interrupt device operationzbridge -s -s -d link showzbridge -s -s -d -t fdb showzbridge -s -s -d -t mdb showzbridge -d vlan showr
z/bin/traceroute -n %s�d ��priorityzip netnszip netns exec r
r ziptables -VZ nf_tables)�cmdr zip6tables -V)Zcmd_outputs)r Znamespaced_networkz
namespaces/%s� zip -d address show�2 )r �subdirz
iptables-save)r r$ r zip6tables-save)r r$ r zethtool -i %(dev)szethtool -k %(dev)szethtool -S %(dev)s)r r r$ )�superr �setup�ethtool_shortoptsZadd_cmd_tagsZ
add_file_tags�
add_copy_specZadd_forbidden_path�add_cmd_output�ns_wideZ
path_isdirZcollect_cmd_output�
splitlinesr Zadd_device_cmd�
get_optionZ _log_warn�
trace_hostZget_network_namespacesZtest_predicater )�selfr ZdevlinksZ
devlinks_listZdevlinkZip_macsec_show_cmdZmacsec_predZss_cmdZss_predZ_ecmdsr! Z
cmd_prefixr �coZco6Ziptables_with_nftZip6tables_with_nft� namespaceZ_devsZ_subdirZ
ns_cmd_prefix�� __class__r r r&