File: //usr/lib/python3.6/site-packages/sos/report/plugins/__pycache__/networking.cpython-36.pyc
3
3��d>/ � @ sZ d dl mZmZmZmZmZmZ G dd� de�ZG dd� dee�ZG dd� deee�Z dS ) � )�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate� PluginOptc s| e Zd ZdZdZdZdZeddd e d
�edded
d�edde dd�edddd
�edddd
�gZ
dZdZ� fdd�Z
� ZS )�
Networkingz,Network and networking devices configurationZ
networking�network�hardware�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| �j� x$| jD ]}| jd| d| i� qW | jddd�� | jdddd d
ddd
ddddddg� | jddddddg� | jdddd� | jddddgd� | jd � | jd!| j d"d#� | jd$d%d&| j d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g� | j
d7��rV| jd8d9d:g� | jd;�}|d< d=k�rV|d> j� }x|D ]}| jd?| � �q>W d@}t
| dAgdB�}| j||dCdD� dE}t
| dFdGdHdIdJdKdLgdMdNidO�}| j||dCdD� dPdQ� | jD �} | jdRdQ� | D �dSdT� | jdUdVdWdXdYdZgdSdT� | jd[��rd\}
| jd]� | j|
dSdT� | jd^d_d`dag� | jdb��rH| jdc| j ddde� | jdf� dg}| j| jdh�| jdi��}|�r�djdkdl�}
dmdkdl�}| j| t
| |
dn�do��r�t
| dkgdB�nd }| j| t
| |dn�do��r�t
| dkgdB�nd }�x|D �]}| jdp | }dq| }|| dr }| j|ds |d |d3 |d+ |d, |d- |dt |d!| j |d% |d&| j |d$ gdu|dv� | j|dw g||dudx� | j|dy g||dudx� |dE }| j|||dz� | jd{��r�| j|dU |d| |d} |d~ g|dS du|d� �q�W | jd�d�d�d�d�d�d�d�dd�d�d"d�d�d��� 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*z/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_symlinkZtagszip route show table allZip_routeZiproute_show_table_allZ
plotnetcfgznetstat %s -neopaZnetstat)r z
nstat -zasz
netstat -sznetstat %s -agnznetworkctl status -azip -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.6/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 showz sysctl -a�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$ ZethtoolZ ethtool_SZ ethtool_TZ ethtool_aZ ethtool_cZ ethtool_gZ ethtool_iZ ethtool_kZ
ip_neigh_showZ ip_s_linkZnetstat_agnZ netstat_s)zethtool [^-].*zethtool -S.*zethtool -T.*zethtool -a.*zethtool -c.*zethtool -g.*zethtool -i.*zethtool -k.*z
ip -d addresszip -s -s neigh showz
ip -s -d linkznetstat.*-neopaz
netstat.*-agnz
netstat -s)�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&