Sindbad~EG File Manager

Current Path : /lib/python3.6/site-packages/sos/report/plugins/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/sos/report/plugins/__pycache__/openvswitch.cpython-36.pyc

3

�fC�@sfddlmZddlZddlmZmZmZmZGdd�de�ZGdd�dee�Z	Gdd	�d	eee�Z
dS)
�)�environN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginc@sTeZdZdZdZdZdZdZdZdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�ZdS)�OpenVSwitchzOpenVSwitch networking�openvswitch�network�virtz
ovs-appctlFc,s��jd�}ddg}�jd�}|ddko4|djd��_t�fd	d
�dRD���_tjd
�rj|jtjd
��|s��j	�fdd�|D��n
�j	|��j	dddg��j	�j
dd��j
dd��j
dd�g�tjd�}|r�j	�j
|d���jddd���jdddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEg+��jdFdGdH��jdIdJdH��j
dKdL��j
dMdL��j
dNdL��j
dOdL��j
dPdL��j
dQdL��j��j��j�dS)SN�all_logsz/var/log/openvswitch/z/usr/local/var/log/openvswitch/z8ovs-vsctl -t 5 get Open_vSwitch . other_config:dpdk-init�statusr�outputz"true"c3s|]}�j|�VqdS)N)Zis_installed)�.0�p)�self��!/usr/lib/python3.6/openvswitch.py�	<genexpr>&sz$OpenVSwitch.setup.<locals>.<genexpr>�6windgate-fp�nuage-openvswitchZ
OVS_LOGDIRcsg|]}�j|d��qS)z*.log)�	path_join)rZld)rrr�
<listcomp>.sz%OpenVSwitch.setup.<locals>.<listcomp>z!/run/openvswitch/ovsdb-server.pidz!/run/openvswitch/ovs-vswitchd.pidz&/run/openvswitch/ovs-monitor-ipsec.pidz/usr/local/etc/openvswitchzconf.dbz/etc/openvswitchz/var/lib/openvswitchZ	OVS_DBDIRZopenvswitch_daemon_logZopenvswitch_server_log)z%/var/log/openvswitch/ovs-vswitchd.logz%/var/log/openvswitch/ovsdb-server.logzls -laZ /run/openvswitchzls -laZ /dev/hugepages/zls -laZ /dev/vfiozls -laZ /var/lib/vhost_socketszdpdk_nic_bind --statuszdpdk-devbind.py --statuszdriverctl list-deviceszdriverctl -v list-deviceszdriverctl list-overrideszdriverctl -v list-overrideszdriverctl list-persistedzovs-appctl bond/listzovs-appctl bond/showzovs-appctl lacp/showzovs-appctl lacp/show-statszovs-appctl coverage/showzovs-appctl ovs/route/showzovs-appctl tnl/arp/showzovs-appctl tnl/ports/show -vzovs-appctl upcall/showz ovs-vsctl -t 5 list Open_vSwitchzovs-vsctl -t 5 list interfacezovs-vsctl -t 5 list bridgezovs-vsctl -t 5 list datapathz+ovs-appctl dpif-netdev/pmd-rxq-show -secs 5z,ovs-appctl dpif-netdev/pmd-rxq-show -secs 30z#ovs-appctl dpif-netdev/pmd-rxq-showz%ovs-appctl dpif-netdev/pmd-stats-showz$ovs-appctl dpif-netdev/pmd-perf-showzovs-appctl ofproto/list-tunnelsz,ovs-appctl -t ovs-monitor-ipsec tunnels/showz*ovs-appctl -t ovs-monitor-ipsec xfrm/statez-ovs-appctl -t ovs-monitor-ipsec xfrm/policiesz-ovs-dpctl dump-flows --name -m type=offloadedz'ovs-dpctl dump-flows --name -m type=ovsz/ovs-appctl dpif-netdev/subtable-lookup-prio-getz$ovs-appctl dpif-netdev/dpif-impl-getz*ovs-appctl dpif-netdev/miniflow-parser-getz%ovs-appctl dpif-netdev/pmd-sleep-showzovs-appctl dpdk/lcore-listzovs-appctl dpdk/log-listz ovs-appctl dpdk/get-malloc-statsz'ovs-appctl netdev-dpdk/get-mempool-infoz.ovs-vsctl -t 5 get Open_vSwitch . other_configZopenvswitch_other_config)Ztagszovs-vsctl -t 5 showZovs_vsctl_showr)�unitszopenvswitch-nonetworkzovs-vswitchdzovsdb-serverzovs-configurationzopenvswitch-ipsec)rr)Z
get_option�collect_cmd_output�
startswith�
check_dpdk�any�check_6windr�get�append�
add_copy_specrZ
add_file_tags�add_cmd_output�add_journal�collect_ovs_info�collect_datapath�collect_ovs_bridge_info)rrZlog_dirsZdpdk_enabledZ	ovs_dbdirr)rr�setups�






zOpenVSwitch.setupcCs�ddddddddd	d
ddd
ddddddg}|jr�|j|�|jddddddddddddd d!d"d#d$d%d&d'd(d)d*g�|jd+d,�xd:D]}|jd1|g�q�W|jd2�}|d3d4kr�x>|d5j�D].}tjd6|�}|r�|jd7�}|jd8|g�q�Wd9S);z  Collect output of OVS commands z?/etc/systemd/system/multi-user.target.wants/openvswitch.servicez./etc/sysctl.d/60-6wind-system-auto-reboot.confz/etc/openvswitch/system-id.confz/etc/openvswitch/*.dbz*/etc/ld.so.conf.d/linux-fp-sync-fptun.confz$/etc/NetworkManager/conf.d/fpn0.confz/etc/default/openvswitchz/etc/logrotate.d/openvswitchz/etc/linux-fp-sync.envz/etc/fp-daemons.envz/etc/fp-vdev.iniz/etc/fpm.envz/etc/6WINDGate/fp.configz/etc/6WINDGate/fpnsdk.configz/etc/dms.d/fp-dms.confz/etc/dms.d/fpmd-dms.confz/etc/dms.d/fpsd-dms.confz/etc/fast-path.envz/etc/fps-fp.envzfp-cli fp-vswitch-statszfp-cli dpdk-core-port-mappingzfp-cpu-usagezfp-cli fp-vswitch-maskszfp-cli fp-vswitch-flowsz
fp-shmem-dpvizfp-cli stats non-zerozfp-cli statszfp-cli dpdk-cp-filter-budgetz ovs-appctl vm/port-detailed-showzovs-appctl upcall/showzfp-cli nfct4z ovs-appctl vm/port-vip-list-showzfp-shmem-ports -szovs-dpctl show -szfpcmd fp-vswitch-flowszfp-cli fp-vswitch-ports percorezfp-cli dpdk-debug-poolzfp-cli dump-sizezfp-cli conf runtimezfp-cli conf compiledzfp-cli ifacezovs-appctl memory/showzvirtual-accelerator)r�filter�mangle�raw�natzfpcmd nf4-rules %szfp-cli fp-vswitch-portsrrr
z^([\d]+):[\s]+([^\s]+)�zfp-cli dpdk-cp-filter-budget %sN)r'r(r)r*)	rr r!r"r�
splitlines�re�match�group)rZfiles_6wind�tableZ	port_list�portZmportZ	port_namerrrr#�sp



zOpenVSwitch.collect_ovs_infoc	Csv|jd�}|ddkrrxZ|dj�D]J}|jd|j|fd|j|fd|j|fd|j|fd	|j|fg�q$Wd
S)z3 Gather the datapath information for each datapath zovs-appctl dpctl/dump-dpsrrr
z%s dpctl/show -s %sz%s dpctl/dump-flows -m %sz%s dpctl/dump-conntrack -m %sz%s dpctl/ct-stats-show -m %sz%s dpctl/ipf-get-status %sN)rr,r!�actl)rZdp_list_resultZdpsrrrr$�s
zOpenVSwitch.collect_datapathcCs�|jd�}|ddkrdS�x�|dj�D�]x}|jd|j|fd|j|fd|j|fd	|j|fd
|j|fd|d|d
|d|d|d|d|g�|j|�|j|�|jr�|jd|�}|ddkr�x"|dj�D]}|jd|�q�W|jr*|jd|j|fd|j|fd|j|fd|j|fd|j|fg�|jd|j|f�}|ddk�r�|dj	�dd�}x$|D]}|jd|j|fg��q�W|jd|�}|ddkr*|dj	�dd�}	x�|	D]�}
|j|j�d|
��|j�d|
��|j�d|�d |
��|j�d!|�d |
��|j�d"|�d |
��|j�d#|�d |
��|j�d$|�d |
��|j�d%|�d |
��|j�d&|�d |
��|j�d'|�d |
��g
��q�Wq*WdS)(z; Gather additional output for each OVS bridge on the host. zovs-vsctl -t 5 list-brrrNr
z'%s bridge/dump-flows --offload-stats %sz%s dpif/show-dp-features %sz%s fdb/show %sz%s fdb/stats-show %sz%s mdb/show %szovs-ofctl dump-flows %szovs-ofctl dump-ports-desc %szovs-ofctl dump-ports %szovs-ofctl queue-get-config %szovs-ofctl queue-stats %szovs-ofctl show %szovs-ofctl dump-groups %szovs-vsctl -t 5 list-ifaces %sz*ovs-appctl netdev-dpdk/get-mempool-info %sz%s evpn/vip-list-show %sz$%s bridge/dump-conntracks-summary %sz%%s bridge/acl-table ingress/egress %sz%s bridge/acl-table %sz%s ofproto/show %sz%s vrf/list %s�z%s vrf/route-table %szovs-appctl evpn/list %sz evpn/mac-table z evpn/arp-table z evpn/dump-flows � z evpn/dhcp-pool-show z evpn/dhcp-relay-show z evpn/dhcp-static-show z evpn/dhcp-table-show z evpn/proxy-arp-filter-list z evpn/show z port/dscp-table )
rr,r!r2�get_flow_versions�
get_port_listr�exec_cmdr�split)rZbr_list_resultZbriZiface_list_resultZifaceZvrf_listZvrfsZvrfZ	evpn_listZevpnsZevpnrrrr%�sr






z#OpenVSwitch.collect_ovs_bridge_infocCs�ddddddg}ddddddd�}|jd�}|jd	|���}g}xJ|d
j�D]:}d|krN||jd�d
|jd��}|jdd�jd�}qNW|dgko�|d
�r(|d
j�}	g}
xN|	D]F}d|kr�|jd�}|d
jd�}tt|dd�t|d
d�d
�}
q�Wx&|
D]}
|
|k�r|j||
��qWxv|D]n}||k�r.|jd|�d|��d|�d|��d|�d|��d|�d|��d|�d|��d|�d|��g��q.WdS)z* Collect flow version of the given bridge Z
OpenFlow10Z
OpenFlow11Z
OpenFlow12Z
OpenFlow13Z
OpenFlow14Z
OpenFlow15)r3r+����zovs-ofctl -t 5 --versionzovs-vsctl -t 5 list bridge r
Z	protocols�[r3�]�"�z, zOpenFlow versionszOpenFlow versions �:r�z
ovs-ofctl -O z show z
 dump-groups z dump-group-stats z dump-flows z dump-tlv-map z  dump-ports-desc N)	rr,�find�replacer8�range�intrr!)r�bridgeZ
flow_versionsZofp_versionsZofp_ver_resultZbr_infoZ	br_protos�lineZbr_protos_lnZofp_version_rangeZ	ver_rangeZver_spZverZprotocolZflowrrrr5?sP






zOpenVSwitch.get_flow_versionscCsl|jd|���}|ddkrhxJ|dj�D]:}|jd|d|d|d|g�|jr*|jd	|�q*Wd
S)z' Collect port list of the given bridge zovs-vsctl -t 5 list-ports rrr
zovs-appctl cfm/show %szovs-appctl qos/show %szovs-appctl bond/show %sz"ovs-vsctl get Interface %s optionsz*ovs-appctl netdev-dpdk/get-mempool-info %sN)r7r,r!r)rrGZport_list_resultr1rrrr6~szOpenVSwitch.get_port_listN)r	r
)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr2rrr&r#r$r%r5r6rrrrrsE
I?rc@seZdZdZdS)�RedHatOpenVSwitchr�openvswitch[2-9].*�openvswitch-dpdk�nuage-openvswitch6windgate-fpN)rrMrNrO)rIrJrK�packagesrrrrrL�srLc@seZdZdZdS)�DebianOpenVSwitch�openvswitch-switch�nuage-openvswitchN)rRrS)rIrJrKrPrrrrrQ�srQ)�osrr-Zsos.report.pluginsrrrrrrLrQrrrr�<module>s

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists