Sindbad~EG File Manager
3
�f�1 � @ sZ d dl mZmZmZmZmZmZ G dd� de�ZG dd� dee�ZG dd� deee�Z dS ) � )�Plugin�RedHatPlugin�UbuntuPlugin�DebianPlugin�SoSPredicate� PluginOptc s� e Zd ZdZdZd(ZdZeddd e d
�edded
d�edde dd�edddd
�edddd
�gZ
dZdddddddgZdZ
� fd d!�Zd"d#� Zd$d%� Zd&d'� 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-W�tcp_diag�udp_diag� inet_diag� unix_diag�netlink_diag�af_packet_diag�xsk_diagZacdgiklmPSTc sb t � j� | jddd�� | jdddddd d
ddd
ddddg� | jddddddg� | jdddd� | jddddgd� | jd� | jd| j d d!� | jd"d#d$| j d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4g� | jd5��r,| jd6d7d8g� | jd9�}|d: d;k�r,|d< j � }x|D ]}| jd=| � �qW d>}t
| d?gd@�}| j||dAdB� | j� | j� d S )CNZbondZhosts)z/proc/net/bonding/bond.*z
/etc/hostsz
/etc/dnsmasq*z
/etc/host*z/etc/inetd.confz
/etc/iproute2z
/etc/network*z/etc/nsswitch.confz/etc/resolv.confz/etc/xinetd.confz
/etc/xinetd.dz/etc/yp.confz
/proc/net/z!/sys/class/net/*/device/numa_nodez/sys/class/net/*/flagsz/sys/class/net/*/statistics/z/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 addr�ip_addr)�root_symlinkZtagszip route show table allZip_routeZiproute_show_table_allZ
plotnetcfgznetstat %s -neopa�netstat)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)�pred�changes)
�super�setupZ
add_file_tags�
add_copy_specZadd_forbidden_path�add_cmd_output�ns_wideZ
path_isdirZcollect_cmd_output�
splitlinesr �collect_ss_ip_ethtool_info�collect_bridge_info)�selfZdevlinksZ
devlinks_listZdevlinkZip_macsec_show_cmdZmacsec_pred)� __class__� � /usr/lib/python3.6/networking.pyr# / s�
zNetworking.setupc C sD x$| j D ]}| jd| d| i� qW | jddddddd d
�� dS )z% Command tags for ip/ethtool/netstat zethtool -%s .*z ethool_%sZethtoolr Z
ip_neigh_showZ ip_s_linkr Znetstat_agnZ netstat_s)zethtool [^-].*z
ip -d addresszip -s -s neigh showz
ip -s -d linkznetstat.*-neopaz
netstat.*-agnz
netstat -sN)�ethtool_shortoptsZadd_cmd_tags)r* �optr, r, r- �add_command_tags� s zNetworking.add_command_tagsc C s | j ddddg� dS )zf Collect information about bridges (some data already collected via
"ip .." commands)
zbridge -s -s -d link showzbridge -s -s -d -t fdb showzbridge -s -s -d -t mdb showzbridge -d vlan showN)r% )r* r, r, r- r) � s
zNetworking.collect_bridge_infoc C sd d}t | | jddid�}| j||dd� dd� | jD �}| jd d� |D �d
d� | jdd
ddddgd
d� | jd�r�d}| jd� | j|d
d� | jd�r�| jd| j dd� | jd� d}| j| jd�| jd��}|�rXddd�}d dd�}| j | t | |d!�d"��rt | dgd#�nd$} | j | t | |d!�d"��r>t | dgd#�nd$}
�x|D �]}| j
d% | }d&| }
|| d' }| j|d( |d) |d* |d+ |d, |d- |d. |d/| j |d0 |d1| j |d2 gd3|
d4� | j|d5 g| |
d3d6� | j|d7 g|
|
d3d6� |d }| j|||
d8� | jd9��rJ| j|d |d: |d; |d< g|d
d3|
d=� �qJW | j� d$S )>z( Collect ss, ip and ethtool cmd outputs zss -peaonmir �all)r ZrequiredT)r r! c S s g | ]}d | �qS )zethtool -%sr, )�.0r/ r, r, r- �
<listcomp>� s z9Networking.collect_ss_ip_ethtool_info.<locals>.<listcomp>c S s g | ]}|d �qS )z %(dev)sr, )r2 Z_cmdr, r, r- r3 � 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 operationr z/bin/traceroute -n %s�d )�priorityzip netnszip netns exec r r ziptables -VZ nf_tables)�cmdr zip6tables -V)Zcmd_outputs)r )r NZnamespaced_networkz
namespaces/%s� zip -d address showzip route show table allzip -s -s neigh showzip -4 rule listzip -6 rule listzip vrf showz sysctl -aznetstat %s -neopaz
netstat -sznetstat %s -agnz
nstat -zas�2 )r6 �subdirz
iptables-save)r r: r6 zip6tables-save)r r: r zethtool -i %(dev)szethtool -k %(dev)szethtool -S %(dev)s)r4 r6 r: )
r �ss_kmodsr% r. Zadd_device_cmdZ
get_optionZ _log_warn�
trace_hostZget_network_namespacesZtest_predicater4 r&