Your IP : 216.73.216.172


Current Path : /lib/python3/dist-packages/sos/report/plugins/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/sos/report/plugins/__pycache__/ovn_central.cpython-38.pyc

U

-�_g�%�@sjddlZddlZddlZddlmZmZmZmZGdd�de�ZGdd�dee�Z	Gdd�deee�Z
dS)	�N)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginc@s\eZdZdZdZdZdZdZdZdZ	dZ
dZdZdZ
dd�Zgfdd	�Zd
d�Zdd
�ZdS)�
OVNCentralz
OVN NorthdZovn_central)ZnetworkZvirt)zovn-dbs-bundle.*Zovn_cluster_north_db_server�cCs�|�||�}|jr�|jd|��|jd�}|ddks@d|dkrT|�d|j���n8t�|�}|d�d�D]}|�|�rl|�||�Sql|S)Nzls )�	container�statusr�
�outputz=Could not retrieve ovn_controller socket path from container )�	path_join�container_name�exec_cmd�
_log_error�re�compile�split�match)�self�pathZ
regex_nameZ_sfile�res�pattern�filename�r�@/usr/lib/python3/dist-packages/sos/report/plugins/ovn_central.py�
_find_sock%s
�

zOVNCentral._find_sockc	
sz|jr�d|��}|j|dd|jd�}|ddkrF|�d|j���dSzt�|d�}Wn&tk
r~|�d	|���YdSXn�zj|�|�}t|d
dd��H}zt�|�}Wn2tk
r�|�d	|���YW5QR�WdSXW5QRXWn@t	k
�r,}z |�d
|�d|���WY�dSd}~XYnXz�fdd�t
�|d�D�WStk
�rt|�d|�d��YnXdS)z Get tables from schema zcat NT)�timeout�
foregroundrr	rz1Could not retrieve DB schema file from container rzCannot parse JSON file �rzUTF-8)�encodingzCould not open DB schema file z: csg|]}|�kr|�qSrr��.0�table��skiprr�
<listcomp>Ss�z5OVNCentral.get_tables_from_schema.<locals>.<listcomp>�tablesz
DB schema z has no 'tables' key)
r
rr�json�loads�	Exceptionr�open�load�IOError�dict�keys�AttributeError)	rrr$�cmdrZ	db_schema�fname�file�exrr#r�get_tables_from_schema6sB

�

"��
z!OVNCentral.get_tables_from_schemacs|r�fdd�|D�SdS)z Collect OVN database output csg|]}��d|���qS)z list rr ��ovn_cmdrrr%\sz2OVNCentral.add_database_output.<locals>.<listcomp>Nr)rr&r6rr5r�add_database_outputYszOVNCentral.add_database_outputc
CsF|�|jd�r$|�|jd�|_n|�|jd�|_tj�d�}dD]L}|�|�d|�|�d|�|�d|�|�d|�g�|rF|�|�||��qF|�	d	�r�|�d
�n
|�d�|�
|j|j�}|�
|j|j
�}d}g}|j}|�d
|j�d|�d�|�d
|j�d|�d�|�d|�d�|�d|�d�g}|j|d|jdd�|�spd}	|j|�d|�d|	��d|jdd�d}
|�d|
�d�|�d|
�d�|�d|
�d�g}|j|d|jdd�|�d|
�d�|�d|
�d�|�d|
�d�|�d|
�d�g}|j|d|jdd�dD]H}
|�|�|
d ���r
|�|�|
d ��}|�|�||�d|
�����q
dD]L}
|�|�|
d!���rX|�|�|
d!�d"g�}|�|�||�d|
�����qXtt|��}|j|d|jd#�|�d$�tj�d%�}d&D]V}d'D]2}
|�|
|�}|�|��r�|�|�|�|��q�|�r�|�|�||���q�|jd(d)�dS)*N�rZ
OVS_RUNDIR)zovnnb_db.pidzovnsb_db.pidzovn-northd.pid�/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch/�!/var/snap/microovn/common/run/ovnZall_logsz
/var/log/ovn/z/var/log/ovn/*.logzcluster/statuszovs-appctl -t � z OVN_Northboundz OVN_Southboundzovn-appctl -t z statusz connection-statusT�)rrrzdebug/chassis-features-listz--no-leader-onlyz
ovn-nbctl z showz get-sslz get-connectionz
ovn-sbctl z lflow-list)z/usr/share/openvswitchz/usr/share/ovnz /snap/microovn/current/share/ovnzovn-nb.ovsschemazovn-sb.ovsschemaZLogical_Flow)rrz/etc/sysconfig/ovn-northdZ	OVS_DBDIR)zovnnb_db.dbzovnsb_db.db)r9z/usr/local/etc/openvswitchz/etc/openvswitchz/var/lib/openvswitchz/var/lib/ovn/etcz/var/lib/ovnz)/var/snap/microovn/common/data/central/dbz
ovn-northd)Zunits)Zcontainer_exists�
containersZget_container_by_namer
�os�environ�getZ
add_copy_specrZ
get_optionr�
ovn_socket�ovn_controller_sock_regex�ovn_northd_sock_regex�pfx�ovn_nbdb_socket�ovn_sbdb_socketZadd_cmd_output�path_existsr4�extendr7�list�setZadd_dir_listingZadd_journal)rZ
ovs_rundirZpidfileZovn_controller_socketZ
northd_socketZcsZcmdsrDZappctl_cmdsZdflZnoloZ
nbctl_cmdsZ
sbctl_cmdsrZ	nb_tablesZ	sb_tablesZ	ovs_dbdirZdbfileZ
dbfilepathrrr�setup_s���



�

����������
�
��
�
�
	
zOVNCentral.setupN)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr=r
rErFrArBrCrDrr4r7rKrrrrrs#rc@s$eZdZdZdZdZdZdZdZdS)�RedHatOVNCentral)zopenvswitch-ovn-centralz
ovn.*-centralz!/var/run/openvswitch/ovnnb_db.ctlz!/var/run/openvswitch/ovnsb_db.ctlz/var/run/openvswitch�ovn-controller.*.ctl�ovn-northd.*.ctlN)	rLrMrN�packagesrErFrArBrCrrrrrO�srOcs(eZdZdZ�fdd�ZdZdZ�ZS)�DebianOVNCentral)zovn-centralZmicroovncsT|�d�r4d|_|j�d�|_|j�d�|_d|_nd|_d|_d|_t���dS)	Nz/snap/bin/microovnr:z
/ovnnb_db.ctlz
/ovnsb_db.ctlz	microovn.z/var/run/ovnz/var/run/ovn/ovnnb_db.ctlz/var/run/ovn/ovnsb_db.ctl)rGrArErFrD�superrK)r��	__class__rrrK�s
zDebianOVNCentral.setuprPrQ)rLrMrNrRrKrBrC�
__classcell__rrrUrrS�srS)r'r>rZsos.report.pluginsrrrrrrOrSrrrr�<module>sE